我的 Debian 11 安装恢复到 3.5mm 模拟音频输出时遇到问题,尽管 HDMI 已插入并且我希望音频从哪里出来。Debian GUI 没有常用的方法来禁用输出设备。通常声音区域中的设置会保持不变,但最近并非总是如此。
通过 alsa 或 pulse 工具使用 CLI 执行此操作甚至很棘手,因为我们没有处理不同的声卡,正如大多数在线示例所处理的那样,但 HDMI 输出和模拟输出都是一个 HDA Intel PCH 设备的不同设备。
这是 aplay -l 的结果
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
我解决这个问题的方法是禁用与 ALC662 设备相关的模块/驱动程序,幸运的是,这在保持 HDMI 声音正常工作的同时有效。
首先,我尝试了您会发现许多示例的方法,即将“blacklist [module_name]”添加到 /etc/modprobe.d/ 中的 .conf 文件中
我发现这适用于声音模块的某个级别,但不是全部。它在 snd_hda_codec_realtek 上工作,但这还不够,因为随后 ALC662 恢复为 Generic,并且将黑名单 snd_hda_codec_generic 放入不起作用。
诀窍是也阻止在 .conf 中使用此行加载 snd_hda_codec_generic。
或者只是重命名 /lib/modules/5.10.0-8-amd64/kernel/sound/pci/hda/snd-hda-codec-generic.ko (由 /usr/sbin/modinfo snd_hda_codec_generic 找到)有效,但上面似乎如果有人想知道为什么模拟声音在需要时无法正常工作,那么将来会变得不那么野蛮并且更容易找到。