Linux Mint 18.1 上的 Realtek ALC1220 音频芯片组

ver*_*man 5 kernel audio linux-mint realtek

我刚刚为自己组装了一台带有支持 Intel Kaby Lake 处理器的全新主板的新计算机。该主板具有用于音频的Realtek ALC1220 (S1220A)芯片组。安装 Linux Mint 18.1 后,我不幸注意到声音不起作用。无论我尝试什么,都没有检测到声卡。声音配置只显示一个虚拟设备。

user@linux-mint ~ $ aplay -l
   aplay: device_list:268: no soundcards found...

user@linux-mint ~ $ lspci -knn | grep -i -A4 Audio
   00:1f.3 Audio device [0403]: Intel Corporation Device [8086:a2f0]
   Subsystem: ASUSTeK Computer Inc. Device [1043:8723]
   Kernel driver in use: snd_hda_intel
   Kernel modules: snd_hda_intel
   00:1f.4 SMBus [0c05]: Intel Corporation Device [8086:a2a3]
Run Code Online (Sandbox Code Playgroud)

主板: Asus ROG STRIX H270I GAMING
音频芯片组: ROG SupremeFX 8 通道高清音频编解码器 S1220A
Linux 发行版: Linux Mint 18.1
当前内核: 4.11.6

我尝试了什么?

根据 https://bbs.archlinux.org/viewtopic.php?id=226579Linux Mint 18.1 下的 Realtek S1220A,Linux Kernel 4.11 中引入了对 S1220A 芯片组的支持。Linux Mint 18.1 附带内核 4.4,但可以选择通过更新管理器升级到内核 4.9。然而,这样做并在之后重新安装所有 ALSA 的东西都没有效果,仍然没有检测到音频设备。然后我决定使用 UKUU 安装内核 4.11.6。安装似乎没有错误地完成,升级 GRUB 后,我的系统使用新内核启动 Mint:

user@linux-mint ~ $ uname -r
   4.11.6-041106-generic
Run Code Online (Sandbox Code Playgroud)

还有报道称有人让 ALC1220 音频芯片组在内核 4.9 上工作。

我还发现了一些可能与 UEFI 设置有关的提示。作为这方面的非专家,我尝试在启动系统之前禁用 UEFI 和兼容性/旧设置,但是这似乎没有任何影响。

有人知道如何使用此芯片组在 Linux Mint 上获得声音吗?

更新 1:

dmesg | grep snd 返回以下内容:

[    4.951807] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[    4.951966] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.079301] snd_hda_intel 0000:00:1f.3: CORB reset timeout#1, CORBRP = 0
[    5.080811] snd_hda_intel 0000:00:1f.3: no codecs found!
Run Code Online (Sandbox Code Playgroud)

更新 2:

跟进@dirkt 建议检查probe_mask,我尝试过:

sudo modprobe -r snd_hda_intel
sudo modprobe snd_hda_intel probe_mask=0x1ff
Run Code Online (Sandbox Code Playgroud)

然后检查dmesg它看起来没有什么变化:

[  374.653091] snd_hda_intel 0000:00:1f.3: codec_mask forced to 0xff
[  374.653126] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[  374.763149] snd_hda_intel 0000:00:1f.3: CORB reset timeout#1, CORBRP = 0
[  374.764764] snd_hda_intel 0000:00:1f.3: no codecs found!
Run Code Online (Sandbox Code Playgroud)

dir*_*rkt 1

部分答案:

我查看了ALC 1220 补丁,它只是添加了与 ALC 882 相同的修复程序(很多编解码器都使用它)。

但你的问题似乎是与编解码器芯片的通信根本不起作用。声卡驱动程序加载,出现一个超时错误,但不是第二个超时错误,所以有些东西可以工作,但随后找不到任何编解码器。因此它永远不会达到补丁相关的阶段。snd_hda_intel

想法:

1)查看BIOS中是否有声卡的设置。也许在这里改变一些东西将使编解码器通信正常工作。

2) HD-Audio.txt表示如果 BIOS 损坏,您可以强制探测:

在 BIOS 损坏的计算机上,有时您需要强制驱动程序探测硬件未报告使用的编解码器插槽。在这种情况下,请打开probe_mask选项的位 8 (0x100)。然后其余 8 位作为编解码器插槽传递以无条件探测。例如,probe_mask=0x103无论硬件报告什么,都将强制探测编解码器插槽 0 和 1。

所以尝试以root身份

modprobe -r snd_hda_intel
modprobe snd_hda_intel probe_mask=0x1ff
Run Code Online (Sandbox Code Playgroud)

看看会发生什么dmesg

3) 如果没有任何帮助,请向 ALSA 开发人员提交错误,看看他们是否有任何想法。