红联Linux门户
Linux帮助

Linux下的声卡问题

发布时间:2007-05-26 10:20:13来源:红联作者:Collection
  之前在机器上安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 查看一下声卡相关的设备是什么设备打开的,杀掉即可。
文章评论

共有 1 条评论

  1. ary104 于 2007-05-28 16:32:12发表:

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

    谢谢