我正在运行该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 执行此操作,同时保持驱动程序完好无损。
正如其他答案中所建议的,其他驱动程序已经按照问题中所述被禁用。
很想知道,由于驱动程序被禁用,为什么扬声器仍然处于启用状态,直到删除这些特定的驱动程序才将其禁用。
欢迎提供其他答案和解释。