我不知怎么弄乱了我的内核(可能是在尝试 igpu 传递时,但这只是猜测),现在它无法识别最新内核(6.8.0-31-generic)上的“AMD Family 17h/19h HD Audio Controller”。使用相同的 /etc/modprobe.d/ 配置,音频控制器可以由较旧的 6.8.0-28 内核正确加载。
这是两个内核上的 snd_hda_intel 相关模块列表:
6.8.0-28-通用模块:
snd_intel_dspcfg 36864 1 snd_hda_intel
snd_hda_codec 217088 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 151552 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_pcm 200704 5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd 147456 26 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_ump,snd_pcm,snd_rawmidi
6.8.0-31-通用模块:
snd_hda_intel 61440 1
snd_intel_dspcfg 36864 1 snd_hda_intel
snd_hda_codec 217088 2 snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core 151552 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_pcm 200704 5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd 147456 20 snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,snd_ump,snd_pcm,snd_rawmidi
如您所见,6.8.31 缺少一些模块,但即使我手动加载它们,设备也不会显示,即使在重新启动 pipewire 后也是如此。我检查了 6.8.31 附带的实时 USB,设备在那里被识别。我搜索了 dmesg,但找不到任何相关信息。我还能做些什么来使用最新的 6.8.31 内核恢复声音?
以下是有问题的设备的 lspci 输出:
lspci -nnkvs 19:00.6
19:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
Subsystem: ASRock Incorporation Family 17h/19h HD Audio Controller [1849:6899]
Flags: fast devsel, IRQ 255
Memory at fca80000 (32-bit, non-prefetchable) [disabled] [size=32K]
Capabilities: <access denied>
Kernel modules: snd_hda_intel