SDB:Intel-HDA声音问题

跳转到:导航搜索


症状

声卡看起来已通过 YaST 正确配置,但您听不到任何声音,无法使用混音器,或者通道分配不正确。如果您的笔记本电脑在插入耳机时没有关闭扬声器,这可能也有帮助。在这种情况下,您应该能够在更改后独立控制音量(扬声器和耳机)。

如果您遇到的唯一问题是在插入耳机时没有声音,请查看下面的“耳机没有声音”部分

原因

市面上有很多不同的 hda-intel 声卡,不幸的是,YaST 无法始终自动正确配置它们。

解决方案

重要提示

在 openSUSE 11.2 中,/etc/modprobe.d/ 中配置文件命名方案已更改。

如果您运行的是 openSUSE 11.2 之前的版本,则相应的文件将命名为 /etc/modprobe.d/sound

如果您运行的是 openSUSE 11.2 或更高版本,则该文件将命名为 /etc/modprobe.d/50-sound.conf

简而言之,对于 openSUSE 11.2 及更高版本,/etc/modprobe.d/ 中的所有配置文件都必须以 .conf 结尾,否则将被忽略。

打开一个像 konsole 这样的终端并以 root 用户身份登录。找出您的声卡使用的编解码器类型

head -n 1 /proc/asound/card0/codec*

Note: 
If for some reason you don't have a /proc/asound directory, then you are either not using ALSA, or your ALSA config is corrupt.  
Possibly restoring /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) described below to its original condition may at least get ALSA starting again.

这是一个示例输出

  ==> /proc/asound/card0/codec#0 <==
  Codec: Realtek ALC883
  
  ==> /proc/asound/card0/codec#1 <==
  Codec: Conexant ID 2c06

在此示例中,卡的编解码器是 codec#0,ALC883。

模块的选项在 kernel-source.rpm 中可用,如果您的系统上尚未安装,请安装它。

/usr/src/KERNEL_VERSION/Documentation/sound/alsa/ALSA-Configuration.txt 文件中搜索编解码器,在此示例中再次是 ACL883。

  ALC883/888
	  3stack-dig	3-jack with SPDIF I/O						
	  6stack-dig	6-jack digital with SPDIF I/O					
	  3stack-6ch    3-jack 6-channel						
	  3stack-6ch-dig 3-jack 6-channel with SPDIF I/O				
	  6stack-dig-demo  6-jack digital for Intel demo board				
	  acer		Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)		
	  medion	Medion Laptops							
	  medion-md2	Medion MD2							
	  targa-dig	Targa/MSI							
	  targa-2ch-dig	Targs/MSI with 2-channel					
	  laptop-eapd   3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)		
	  lenovo-101e	Lenovo 101E							
	  lenovo-nb0763	Lenovo NB0763							
	  lenovo-ms7195-dig Lenovo MS7195						
	  6stack-hp	HP machines with 6stack (Nettle boards)				
	  3stack-hp	HP machines with 3stack (Lucknow, Samba boards)			
	  auto		auto-config reading BIOS (default)

您必须将选项输入到 /etc/modprobe.d/sound (openSUSE <= 11.1) 或 /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2)。您可以通过 Yast 的声音模块使用高级配置来控制此文件中的值。以下显示直接编辑配置文件。

原始文件应如下所示

  options snd-hda-intel enable=1 index=0
  # u1Nb.jN8_s9AC_37:82801H (ICH8 Family) HD Audio Controller
  alias snd-card-0 snd-hda-intel

更改后

  options snd-hda-intel model=6stack-dig enable=1 index=0
  # u1Nb.jN8_s9AC_37:82801H (ICH8 Family) HD Audio Controller
  alias snd-card-0 snd-hda-intel

仅添加或更改配置的 model= 部分。现在转到下面的“重启声音服务器”部分。

警告! 不要创建 'sound' 在 /etc/modprobe.d/ 中的备份文件,因为这也会被读取!

使用 snd-hda-intel 驱动程序的 Intel Broadwell CPU 和主板芯片组的问题

问题:(使用 Opensuse Leap 42.2)背板上的音频部分在 Linux 播放音频时保持静音。您可以为该插孔在 YAST 音频配置中生成测试音。但是,无论配置的两个音频设备的顺序如何,此测试音始终出现在较低条目(第二个接口)中。这表明 YAST 生成的配置实际上并不影响接口的顺序,并且主板芯片组始终保持第二个接口,从而使 HDMI 音频成为默认输出。

还有一个

aplay -ll

显示 HDMI 配置为 card0,PCH 配置为 card1,无论在 YAST 中做什么操作。


解决方案

步骤 1) 找出您的音频控制器的确切 ID。查看方括号中的冒号后的部分

lspci -nn |grep -i audio
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 0a)
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]

步骤 2) 编辑文件 /etc/modprobe.d/sound.conf,该文件通常由 YAST 维护,将默认/第一个声音设备分配给主板芯片组,将第二个设备分配给 Broadwell 芯片组。

options snd-hda-intel index=0 model=auto vid=8086 pid=8ca0 
options snd-hda-intel index=1 model=auto vid=8086 pid=160c

重启后,音频信号应在背板上的音频输出上,而不是默认设置为 HDMI 接口。此外,接口很可能在 YAST 中看起来未配置。忽略这一点,因为在 YAST 中重新配置接口会撤消您对 sound.conf 所做的更改。

耳机没有声音

如果您拥有需要 snd-hda-intel 驱动程序的 Intel 声卡,但插入耳机时没有声音,您就在正确的章节。YaST2 应该已经创建了 /etc/modprobe.d/sound (openSUSE <= 11.1) 或 /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) 文件,并且它应该包含以下内容(或非常相似的内容)

options snd slots=snd-hda-intel
# u1Nb.Iok8MET6hsF:82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
alias snd-card-0 snd-hda-intel

驱动程序问题发生在每个发行版中,因此这是正常的。无论如何,您将需要通过直接编辑文件或使用 Yast 的声音模块 - 高级配置来修改 options 行。新的文件应如下所示(以井号 # 开头的行是注释)

options snd-hda-intel model=z71v position_fix=1
# u1Nb.Iok8MET6hsF:82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
alias snd-card-0 snd-hda-intel

这应该可以解决问题。现在转到下面的“重启声音服务器”部分。

如果重启声音后仍然没有耳机输出,请确保使用 alsamixer(在命令行中)或您最喜欢的图形混音器(例如 KMix)取消耳机静音。

注意!在 Sony Vaio FZ21M 上,您必须插入以下选项

options snd-hda-intel model=vaio enable=1 index=0 position_fix=1

在 Dell Adamo 13 上,options 行应该是

options snd-hda-intel model=dell-m6 position_fix=1

在 Dell Studio 17 上,您必须使用

options snd-pcsp index=-2
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel model=dell-m6-amic

重启声音服务器

在重启之前,请确保更改 ALSA 设置,使麦克风通道静音,以防止声音回路和尖叫声。不这样做可能会导致高而持续的蜂鸣声。您可以使用 alsamixer 执行此操作。

alsamixer

更改后保存文件 /etc/modprobe.d/sound (openSUSE <= 11.1) 或 /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2),并以 root 用户身份重启声音系统。

rcalsasound restart

您必须重启您使用的混音器,因此以用户身份启动 kmix 或 gmix,具体取决于您使用的窗口管理器。打开混音器并将所有通道设置为中等,然后检查是否可以听到声音。

如果您单击鼠标左键启动 KMix,您将仅看到主音量滑块。单击混音器以查看所有通道。
SigmaTel STAC9271D:确保主音量几乎达到最大值。否则,您可能听不到声音。您应该使用扬声器通道来控制音量。

如果这不成功,请在 /etc/modprobe.d/sound (openSUSE <= 11.1) 或 /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) 中使用另一个选项,然后重新启动该过程。

<keyword>sound,hda-intel,ICH8,ICH7,ICH6,headphone</keyword>