LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 8536|回复: 8

声卡驱动用snd-hda-intel模块的,不出声的给我进来。

[复制链接]
发表于 2007-6-9 16:31:55 | 显示全部楼层 |阅读模式
首先,确定你的主板上的codecs芯片是什么。这没有什么好的办法。要么,你打开机箱自己看;要么,到windows下用everest软件,在“windows音频”里面可以看到。在linux下查看codecs芯片型号方法,我暂时没有找到。

然后,修改你的/etc/modprob.conf文件。
  1. alias snd-card-0 snd-hda-intel
复制代码
后面添加
  1. options snd-hda-intel model=[color=red]3stack-dig[/color]
复制代码
其中红字部分,是codecs芯片的运行模式。codecs芯片支持的运行模式,到内核源代码中的/Documentation/sound/alsa/ALSA-Configuration.txt文件查找,一般每个codecs芯片会列出好几个支持的运行模式,一个一个试试就能找到适合自己主板的。

配置好以后,重启,就可以有声音了。
=============分隔线,路过- -===============
以下是$kernel/Documentation/sound/alsa/ALSA-Configuration.txt关于snd-hda-intel模块的有关说明。在此贴出来,大家不用费神自己找ALSA-Configuration.txt文件了。
  1.     Module snd-hda-intel
  2.     --------------------
  3.     Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8),
  4.     ATI SB450, SB600, RS600,
  5.     VIA VT8251/VT8237A,
  6.     SIS966, ULI M5461
  7.     model - force the model name
  8.     position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
  9.     single_cmd - Use single immediate commands to communicate with
  10.     codecs (for debugging only)
  11.     enable_msi - Enable Message Signaled Interrupt (MSI) (default = off)
  12.     This module supports one card and autoprobe.
  13.     Each codec may have a model table for different configurations.
  14.     If your machine isn't listed there, the default (usually minimal)
  15.     configuration is set up. You can pass "model=" option to
  16.     specify a certain model in such a case. There are different
  17.     models depending on the codec chip.
  18.     Model name Description
  19.     ---------- -----------
  20.     ALC880
  21.     3stack 3-jack in back and a headphone out
  22.     3stack-digout 3-jack in back, a HP out and a SPDIF out
  23.     5stack 5-jack in back, 2-jack in front
  24.     5stack-digout 5-jack in back, 2-jack in front, a SPDIF out
  25.     6stack 6-jack in back, 2-jack in front
  26.     6stack-digout 6-jack with a SPDIF out
  27.     w810 3-jack
  28.     z71v 3-jack (HP shared SPDIF)
  29.     asus 3-jack (ASUS Mobo)
  30.     asus-w1v ASUS W1V
  31.     asus-dig ASUS with SPDIF out
  32.     asus-dig2 ASUS with SPDIF out (using GPIO2)
  33.     uniwill 3-jack
  34.     F1734 2-jack
  35.     lg LG laptop (m1 express dual)
  36.     lg-lw LG LW20/LW25 laptop
  37.     tcl TCL S700
  38.     clevo Clevo laptops (m520G, m665n)
  39.     test for testing/debugging purpose, almost all controls can be
  40.     adjusted. Appearing only when compiled with
  41.     $CONFIG_SND_DEBUG=y
  42.     auto auto-config reading BIOS (default)
  43.     ALC260
  44.     hp HP machines
  45.     hp-3013 HP machines (3013-variant)
  46.     fujitsu Fujitsu S7020
  47.     acer Acer TravelMate
  48.     basic fixed pin assignment (old default model)
  49.     auto auto-config reading BIOS (default)
  50.     ALC262
  51.     fujitsu Fujitsu Laptop
  52.     hp-bpc HP xw4400/6400/8400/9400 laptops
  53.     benq Benq ED8
  54.     basic fixed pin assignment w/o SPDIF
  55.     auto auto-config reading BIOS (default)
  56.     ALC882/885
  57.     3stack-dig 3-jack with SPDIF I/O
  58.     6stck-dig 6-jack digital with SPDIF I/O
  59.     arima Arima W820Di1
  60.     auto auto-config reading BIOS (default)
  61.     ALC883/888
  62.     3stack-dig 3-jack with SPDIF I/O
  63.     6stack-dig 6-jack digital with SPDIF I/O
  64.     3stack-6ch 3-jack 6-channel
  65.     3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
  66.     6stack-dig-demo 6-jack digital for Intel demo board
  67.     acer Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
  68.     auto auto-config reading BIOS (default)
  69.     ALC861/660
  70.     3stack 3-jack
  71.     3stack-dig 3-jack with SPDIF I/O
  72.     6stack-dig 6-jack with SPDIF I/O
  73.     3stack-660 3-jack (for ALC660)
  74.     uniwill-m31 Uniwill M31 laptop
  75.     auto auto-config reading BIOS (default)
  76.     CMI9880
  77.     minimal 3-jack in back
  78.     min_fp 3-jack in back, 2-jack in front
  79.     full 6-jack in back, 2-jack in front
  80.     full_dig 6-jack in back, 2-jack in front, SPDIF I/O
  81.     allout 5-jack in back, 2-jack in front, SPDIF out
  82.     auto auto-config reading BIOS (default)
  83.     AD1981
  84.     basic 3-jack (default)
  85.     hp HP nx6320
  86.     thinkpad Lenovo Thinkpad T60/X60/Z60
  87.     AD1986A
  88.     6stack 6-jack, separate surrounds (default)
  89.     3stack 3-stack, shared surrounds
  90.     laptop 2-channel only (FSC V2060, Samsung M50)
  91.     laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J)
  92.     AD1988
  93.     6stack 6-jack
  94.     6stack-dig ditto with SPDIF
  95.     3stack 3-jack
  96.     3stack-dig ditto with SPDIF
  97.     laptop 3-jack with hp-jack automute
  98.     laptop-dig ditto with SPDIF
  99.     auto auto-config reading BIOS (default)
  100.     STAC9200/9205/9220/9221/9254
  101.     ref Reference board
  102.     3stack D945 3stack
  103.     5stack D945 5stack + SPDIF
  104.     STAC9227/9228/9229/927x
  105.     ref Reference board
  106.     3stack D965 3stack
  107.     5stack D965 5stack + SPDIF
  108.     STAC9872
  109.     vaio Setup for VAIO FE550G/SZ110
  110.     vaio-ar Setup for VAIO AR
  111.     If the default configuration doesn't work and one of the above
  112.     matches with your device, report it together with the PCI
  113.     subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
  114.     ML (see the section "Links and Addresses").
  115.     Note 2: If you get click noises on output, try the module option
  116.     position_fix=1 or 2. position_fix=1 will use the SD_LPIB
  117.     register value without FIFO size correction as the current
  118.     DMA pointer. position_fix=2 will make the driver to use
  119.     the position buffer instead of reading SD_LPIB register.
  120.     (Usually SD_LPLIB register is more accurate than the
  121.     position buffer.)
  122.     NB: If you get many "azx_get_response timeout" messages at
  123.     loading, it's likely a problem of interrupts (e.g. ACPI irq
  124.     routing). Try to boot with options like "pci=noacpi". Also, you
  125.     can try "single_cmd=1" module option. This will switch the
  126.     communication method between HDA controller and codecs to the
  127.     single immediate commands instead of CORB/RIRB. Basically, the
  128.     single command mode is provided only for BIOS, and you won't get
  129.     unsolicited events, too. But, at least, this works independently
  130.     from the irq. Remember this is a last resort, and should be
  131.     avoided as much as possible...
  132.     The power-management is supported.
复制代码

附:关于如何阅读ALSA-Configuration.txt文件。
ALSA-Configuration.txt文件被分成了很多小节,每个小节看起来想这个样子。
  1.     ALC883/888
  2.     3stack-dig 3-jack with SPDIF I/O
  3.     6stack-dig 6-jack digital with SPDIF I/O
  4.     3stack-6ch 3-jack 6-channel
  5.     3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
  6.     6stack-dig-demo 6-jack digital for Intel demo board
  7.     acer Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
  8.     auto auto-config reading BIOS (default)
复制代码
其中,第一行ALC883/888是codecs的名字;
下面每一行是一个该codecs支持的运行模式;
3stack-dig 3-jack with SPDIF I/O
其中红字部分是模式名字,是我们需要写道mode=后面的东西;绿色部分是对该模式的解释说明。

追加:关于“Realtek ALC883 在 F7 中自动有声了!”
我也发现,在安装F7的时候,对于使用snd-hda-intel驱动的声卡,在进行“首次运行配置(first boot)”的时候,侦测声卡可以出声,但是重启以后就没有声音了。不过,安装我的方法配置一遍,应该能就可以了。
发表于 2007-6-11 10:55:27 | 显示全部楼层
Realtek ALC883 在 F7 中自动有声了!
回复 支持 反对

使用道具 举报

发表于 2007-6-13 13:50:21 | 显示全部楼层
太感谢了,终于出声了。
回复 支持 反对

使用道具 举报

发表于 2007-6-14 01:26:28 | 显示全部楼层
太感谢啦,我都快哭了,费尽心思,终于把驱动装齐了
原来改过modprobe.conf后还要重启,汗........
回复 支持 反对

使用道具 举报

发表于 2007-6-20 16:11:46 | 显示全部楼层
我测试了一下,ALC 883 FC6 无效!
回复 支持 反对

使用道具 举报

发表于 2007-7-15 14:47:02 | 显示全部楼层
系统:Gentoo
声卡芯片: Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)
从楼主贴出的文档来看,叫hda的声卡(High Definition Audio)分好几种:intel, ati, via, sis, nvidia,其中nvidia的比较特别,alsa直到版本1.0.13rc3才开始支持这种声卡,而linux内核直到2.6.19才开始支持这种声卡,在2.6.19的Changelog上面我找到了相关的说明,即增添了mcp61的pci id. 我在最新内核的源码中也看到了两行相关的代码。按理说,应该可以驱动的,但我没有成功,alsamixer页面显示我的声卡芯片的codec是Realtek alc880,但主板上芯片上写的是alc860,但在内核的alsa文档中目前还没有alc860的记录(我的内核版本是最新的2.6.22), alc880的选项我逐一试了,即modprobe snd_hda_intel 后面加上model参数,一个个试,不好使.

--------------------------------------------------

补充:
我在Debian中搞定了alsa驱动:
到alsa站点下载最新版 alsa-driver-1.0.14rc2.tar.bz2 (不用内核自带的), 直接编译 ./configure && make && make install , 安装中没有加任何model参数。
回复 支持 反对

使用道具 举报

发表于 2007-8-13 20:52:42 | 显示全部楼层
多谢楼主。
我用的系统是gentoo。
回复 支持 反对

使用道具 举报

发表于 2007-8-14 18:42:40 | 显示全部楼层
呵呵,我说怎么这么狂,原来真有本事。
回复 支持 反对

使用道具 举报

发表于 2007-8-15 21:24:21 | 显示全部楼层
查不到codecs芯片怎么办?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表