| 
 | 
 
有不足之处,请高手多多指点。我的电脑配置: 
        主板: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创建的,为了使所有的用户都可以用,请输入命令: 
        chmod  a+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-midi] 
snd-seq                46928   0  [snd-seq-midi snd-seq-midi-event] 
snd-via82xx            15692   0  
snd-pcm                82336   0  [snd-via82xx] 
snd-timer              19592   0  [snd-seq snd-pcm] 
snd-page-alloc          8376   0  [snd-via82xx snd-pcm] 
snd-ac97-codec         44320   0  [snd-via82xx] 
snd-mpu401-uart         5136   0  [snd-via82xx] 
snd-rawmidi            18592   0  [snd-seq-midi snd-mpu401-uart] 
snd-seq-device          6284   0  [snd-seq-midi snd-seq snd-rawmidi] 
snd                    43652   0  [snd-seq-midi snd-seq-midi-event snd-seq snd-via82xx snd-pcm snd-timer snd-ac97-codec snd-mpu401-uart snd-rawmidi snd-seq-device] 
soundcore               6500   2  [snd] 
 
    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 [100%] [on] 
  Front Right: Playback 63 [100%] [on] 
Simple mixer control 'Master Mono',0 
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined 
  Playback channels: Mono 
  Limits: Playback 0 - 31 
  Mono: Playback 31 [100%] [off] 
Simple mixer control 'Headphone',0 
  Capabilities: pvolume pswitch pswitch-joined 
  Playback channels: Front Left - Front Right 
  Limits: Playback 0 - 31 
  Front Left: Playback 0 [0%] [off] 
  Front Right: Playback 0 [0%] [off] 
  ………………… 
  …………………. 
  ………………… 
    后面还有一大串,本可以用amixer命令手工配置音量,但这么长的一大串,我自己都受不,不要紧,有另一个办法,输入命令: 
        alsamixer 
 
    出现一个图形界面,用上下左右键把Master和PCM音量打开,Escape键退出。现在试一下,Yeah!我的声卡可以发声了!等等,还没保存呢,如果不保存,下次重启后,又会恢复到无声状态,执行: 
        alsactl store 来保存。("alsactl"也是alsa-util的附带软件) 
 
如果你要恢复,请输入: 
        alsactl restore 来恢复。 
 
    好了,就到此结束吧!有不足之处,请各位指点指点。如果你有何问题,我将尽我所能帮你。 
 
 
 
 
 
 
                                                                                              作者:Gisland |   
 
 
 
 |