如何通过黑名单禁用内置扬声器?

如何通过黑名单禁用内置扬声器?

我正在运行该microsoft-teams-for-linux应用程序,聊天功能正常。VoIP麦克风功能正常。

声音似乎被传送到内置扬声器而不是耳机(我已将GNOME桌面音量控制中的音量调低,但声音显然来自内置扬声器而不是耳机)。

我倾向于完全禁用内置扬声器,因为无论如何我都不会使用它。

在选项之间切换时,我短暂地听到了声音,但无法复制。扬声器测试工作正常。(这款耳机只有一个扬声器。)

我如何禁用通过 modprobe 调用内置扬声器?

nicholas@mordor:~$ 
nicholas@mordor:~$ sudo modprobe -r pcspkr
nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep sound
soundwire_intel        40960  1 snd_intel_dspcfg
soundwire_generic_allocation    16384  1 soundwire_intel
soundwire_cadence      32768  1 soundwire_intel
soundwire_bus          77824  3 soundwire_intel,soundwire_generic_allocation,soundwire_cadence
snd_soc_core          294912  1 soundwire_intel
snd_pcm               118784  11 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
soundcore              16384  1 snd
nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep speaker
nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep spk
nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep audio
snd_usb_audio         299008  3
snd_usbmidi_lib        36864  1 snd_usb_audio
mc                     57344  1 snd_usb_audio
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_hwdep              16384  2 snd_usb_audio,snd_hda_codec
snd_pcm               118784  11 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd                    94208  31 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_compress,snd_soc_core,snd_pcm,snd_rawmidi
nicholas@mordor:~$ 
nicholas@mordor:~$ uname -a
Linux mordor 5.11.0-25-generic #27-Ubuntu SMP Fri Jul 9 23:06:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
nicholas@mordor:~$ 

声音youtube可以通过耳机正常播放,或者按照设置中的选择GUI在内置扬声器上播放。

顺便说一句,这些模块似乎已被禁用,因为:

nicholas@mordor:~$ 
nicholas@mordor:~$ cat /etc/modprobe.d/blacklist.conf | grep pcsp
blacklist snd_pcsp
blacklist pcspkr
nicholas@mordor:~$ 

因此我期望(?)一个更新的模块可以控制内置扬声器。这些模块是否可能在较新的 Ubuntu 版本中被弃用了?

确认

nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep pcspkr
nicholas@mordor:~$ 
nicholas@mordor:~$ 
nicholas@mordor:~$ lsmod | grep snd
snd_usb_audio         299008  3
snd_usbmidi_lib        36864  1 snd_usb_audio
mc                     57344  1 snd_usb_audio
snd_hda_codec_hdmi     65536  1
snd_hda_codec_realtek   143360  1
snd_hda_codec_generic    81920  1 snd_hda_codec_realtek
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_hda_intel          53248  6
snd_intel_dspcfg       28672  1 snd_hda_intel
soundwire_intel        40960  1 snd_intel_dspcfg
snd_hda_codec         147456  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core           94208  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep              16384  2 snd_usb_audio,snd_hda_codec
snd_soc_core          294912  1 soundwire_intel
snd_compress           28672  1 snd_soc_core
ac97_bus               16384  1 snd_soc_core
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_pcm               118784  11 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd_seq_midi           20480  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            36864  2 snd_seq_midi,snd_usbmidi_lib
snd_seq                73728  2 snd_seq_midi,snd_seq_midi_event
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer              40960  2 snd_seq,snd_pcm
snd                    94208  31 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_compress,snd_soc_core,snd_pcm,snd_rawmidi
soundcore              16384  1 snd
nicholas@mordor:~$ 

然而,youtube音频或仅仅是哔哔声将通过系统扬声器播放(如果通过声音设置进行了配置)。

答案1

blacklist snd-hda-intel

blacklist snd-hda-codec

感谢 IRC 上的 damo22。

我仍然很好奇如何从 alsa 或 pulseaudio 执行此操作,同时保持驱动程序完好无损。

正如其他答案中所建议的,其他驱动程序已经按照问题中所述被禁用。

很想知道,由于驱动程序被禁用,为什么扬声器仍然处于启用状态,直到删除这些特定的驱动程序才将其禁用。

欢迎提供其他答案和解释。

相关内容