之前在机器上安Gentoo,声卡模块加载了去没有正常工作,查了些资料终于搞定。总结一下。
-1. 安装alsa驱动,内核带的alsa驱动可能版本不够,可先不做这个,还是不工作可尝试这个。
0. 重启让udev自动检测或运行alsaconf检测声卡。用
lsmod |grep snd
查看声卡模块是否被加载,如果没有跳至-1步,如果还没有就搜索或去BBS/IRC/论坛问。
1. 安装alsa-utils。
2. 运行alsamixer,查看芯片型号,即Chip后面的内容。
3. 从 http://www.alsa-project.org/ 下载alsa-driver,找到 ALSA-Configuration.txt,从中用Chip型号中的关键字,一般是最后一段搜索,或lsmod得到的声卡模块名搜索,再用Chip型号定位。查出可用的参数。如我的声卡: Chip: Analog Devices AD1986A ,模块是snd-hda-intel。
4. 尝试里面的参数,加在 /etc/modprobe.conf 或 /etc/modprobe.d/options 中,具体取决于发行版,一般说来前一个总是可用的,如在gentoo中,在ubuntu里后面的是标准的位置,别的发行版可能略有不同。
如我的声卡,在ALSA-Configuration.txt中相关的内容:
model - force the model name
position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO siz
e)
single_cmd - Use single immediate commands to communicate with
codecs (for debugging only)
enable_msi - Enable Message Signaled Interrupt (MSI) (default = off)
AD1986A
6stack 6-jack, separate surrounds (default)
3stack 3-stack, shared surrounds
laptop 2-channel only (FSC V2060, Samsung M50)
laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J)
经过测试知道,以下的参数是可以工作的。
options snd-hda-intel single_cmd=1 model=laptop-eapd
测试时可杀掉占用声卡的程序,重新加载声卡模块。
有些系统的/etc/init.d/ 或 /etc/rc.d 下有alsas相关的init脚本,可直接使用,如果没有可用 lsof /dev 查看一下声卡相关的设备是什么设备打开的,杀掉即可。


ary104 于 2007-05-28 16:32:12发表:
楼主在么?
在的话麻烦您给我发邮件csarmy@foxmail.com
把你安装声卡驱动的步骤告诉我
我的也是ADI 1986A的声卡 至今还是不知道怎么处理这个问题
谢谢