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=226579和Linux 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)
部分答案:
我查看了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 开发人员提交错误,看看他们是否有任何想法。