Gisland 发表于 2003-4-22 20:59:17

Linux下安装ALSA驱动

有不足之处,请高手多多指点。我的电脑配置:
        主板:LEGEND QDI K7E-A
        声卡:VIA VT82C686B(不是686A,我困惑的地方)芯片集成 AC’97
        系统:Redhat 8.0

    起初,我用Redhat自带的声卡检测工具(redhat-config-soundcard)检测,可以测到是型号为VT82C686 AC97 Audio Controller ,模块为via82cxxx-audio ,但就是没有声音,没有办法,后来我在网上搜索到关于ALSA可支持很多包括VIA686在内的芯片声卡驱动。于是到其官方网站下载最新的ALSA声卡驱动,它包括3个压缩包,分别是:
    alsa-dirver-0.9.2.tar.bz2
    alsa-lib-0.9.2.tar.bz2
    alsa-util-0.9.2.tar.bz2
另外再下载一个aslaconf-0.4.3b.tar.gz,这个干什么用到后面我再说。

    我把它们放在Window下的D盘,转到Linux下,进入一个终端,在/mnt/下新建一个目录D:
        mkdir /mnt/D

    挂载Windows下的D盘到/mnt/D下:
        mount –t vfat /dev/hda7 /mnt/D

拷贝ALSA驱动到/tmp目录下:
        cp/mnt/D/ALSA-* /tmp/

转到/tmp/,执行:
        bunzip2 alsa-driver.0.9.2.tar.bz2
        tar xvf ALSA-driver-0.9.2.tar

然后转到alsa-driver-0.9.2目录下,执行:
        ./configure(后我在www.alsa-project.org下看到关于VIA82XX的说明,是用./configure –-with-cards=via82xx -–with-sequence=yes来代替./configure其具体请参照ALSA-driver-xxx下的INSTALL文件或输入命令./configure –-help查看)
        make install

如果不出什么差错的话,你将会看到下面一段英文:

WARNING!!! The mixer channels for the ALSA driver are muted by default!!!
**************************************************************************
You would use some ALSA or OSS mixer to set the appropriate volume.

大概的意思是现在所有的音量处于mute状态,即无声状态,需要用ALSA 或OSS工具来打开音量.我们可用amixer 、gnome-volume-control或用alsamixer 等工具.

然后再执行:
        ./snddevices
    这个命令将在/dev/下创建相关的声卡设备。这个操作是用root创建的,为了使所有的用户都可以用,请输入命令:
        chmoda+rw/dev/dsp/dev/mixer/dev/sequencer/dev/midi

现在到了最为关键的一步了,要修改(/etc/modules.conf)文件.但是由于手工修改容易出错,不适合像我这样的菜鸟,不怕,我用alsaconf这个工具来修改,这就是我们刚才下载的alsaconf-0.4.3b.tar.gz。将它拷贝到/tmp目录下,解压:
         tar xvfz alsaconf-0.4.3b.tar.gz

转到alsaconf-0.4.3b目录下,执行
        ./alsaconf       

    按照里面的步骤配置,我选择VIA686A芯片的声卡,接着一路回答Yes,然后又回到第一个画面,因我没有第二块声卡,就选择第一项(No_more_cards),最后会问是否修改/etc/modules.conf,当然是YES啰。我的modules.conf文件是这样的:

# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 0.4.3b ---
alias char-major-116 snd
alias snd-card-0 snd-via82xx
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0666 snd_device_gid=0 snd_device_uid=0
options snd-card-x snd_index=0 snd_id=CARD_0 snd_mpu_port=0x300 snd_joystick=0x300
# --- END: Generated by ALSACONF, do not edit. ---

这是用ALSACONF工具编辑的,注意第四行的snd-via82xx,原来是snd-card-x(我也不知道是什么原因),于是在启动时就没有加载声卡,后我用
      modprobe snd-card-via82xx
说不能加载,再试
      modprobe snd-via82xx
成功了!修改第四行为
alias snd-card-0 snd-via82xx
重启,用root权限进去,输入命令:
        lsmod |grep snd
可在我电脑下看到所有相关的声卡模块:

snd-seq-midi            5248   0(unused)
snd-seq-midi-event      5672   0
snd-seq                46928   0
snd-via82xx            15692   0
snd-pcm                82336   0
snd-timer            19592   0
snd-page-alloc          8376   0
snd-ac97-codec         44320   0
snd-mpu401-uart         5136   0
snd-rawmidi            18592   0
snd-seq-device          6284   0
snd                  43652   0
soundcore               6500   2

    lsmod可以看到所有的模块。在Linux下硬件应该是用模块来驱动的,模块可以被集成在Kernel里;也可以单独放置,到使用时再加载。
   
    到了这里,基本上差不多了,不过,不要着急,接着把
alsa-lib-0.9.2和alsa-util-0.9.2也一起装上去,注意先安装alsa-lib,后再装alsa-util。和上面一样,输入命令:
      cd alsa-lib-0.9.2和cd alsa-util-0.9.2
      ./configure
      make install
输入命令:
      amxier(amixer和下面的alsamixer都是alsa-util-0.9.2附带的)

出现
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 63
Front Left: Playback 63
Front Right: Playback 63
Simple mixer control 'Master Mono',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 31
Mono: Playback 31
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Front Left: Playback 0
Front Right: Playback 0
…………………
………………….
…………………
    后面还有一大串,本可以用amixer命令手工配置音量,但这么长的一大串,我自己都受不,不要紧,有另一个办法,输入命令:
        alsamixer

    出现一个图形界面,用上下左右键把Master和PCM音量打开,Escape键退出。现在试一下,Yeah!我的声卡可以发声了!等等,还没保存呢,如果不保存,下次重启后,又会恢复到无声状态,执行:
        alsactl store 来保存。("alsactl"也是alsa-util的附带软件)

如果你要恢复,请输入:
        alsactl restore 来恢复。

    好了,就到此结束吧!有不足之处,请各位指点指点。如果你有何问题,我将尽我所能帮你。






                                                                                              作者:Gisland
页: [1]
查看完整版本: Linux下安装ALSA驱动