Audio

禁用模擬音頻,強制預設 HDMI 音頻 - 禁用/黑名單 snd_hda_intel 模組

  • October 4, 2021

我的 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 聲音正常工作的同時有效。

首先,我嘗試了您會發現許多範例的方法,即添加“黑名單”

$$ module_name $$" 到 /etc/modprobe.d/ 中的 .conf 文件中 我發現這適用於聲音模組的某個級別,但不是全部。它在 snd_hda_codec_realtek 上工作,但這還不夠,因為隨後 ALC662 恢復為 Generic,並且將黑名單 snd_hda_codec_generic 放入不起作用。

訣竅是也阻止在 .conf 中使用此行載入 snd_hda_codec_generic。

blacklist snd_hda_codec_generic
install snd_hda_codec_generic /bin/false

或者只是重命名 /lib/modules/5.10.0-8-amd64/kernel/sound/pci/hda/snd-hda-codec-generic.ko (由 /usr/sbin/modinfo snd_hda_codec_generic 找到)有效,但上面似乎如果有人想知道為什麼模擬聲音在需要時無法正常工作,那麼將來會變得不那麼野蠻並且更容易找到。

引用自:https://unix.stackexchange.com/questions/671758