我最近一直在使用 ubuntu 20.04,有一台带 B&O 扬声器的 HP pavillion 笔记本电脑。但是我听不到任何声音。不过,蓝牙工作正常。
我尝试过很多解决方案,例如:
*sudo apt purge timidity-daemon
*sudo alsa force-reload
*sudo apt install pavucontrol
并且正在运行pavucontrol
。
没有任何这些解决方案对我来说都是有用的。
编辑:后来我认为这是一个内核错误,并使用以下命令找到解决方案:
sudo add-apt-repository ppa:kaihengfeng/fix-lp1869819
sudo apt-get update
之后我尝试重新安装 pulseaudio。现在蓝牙设备刚连接上就自动断开连接,也不播放任何声音。
EDIT2:我想提出以下输出
1.1. cat /proc/asound/cards
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xb4000000 irq 17
1.2. lsmod | grep snd
snd_soc_hdac_hdmi 36864 0
snd_hda_codec_realtek 122880 0
snd_hda_codec_generic 81920 1 snd_hda_codec_realtek
snd_soc_dmic 16384 0
snd_sof_pci 20480 0
snd_sof_intel_hda_common 69632 1 snd_sof_pci
snd_soc_hdac_hda 24576 1 snd_sof_intel_hda_common
snd_sof_intel_hda 20480 1 snd_sof_intel_hda_common
snd_sof_intel_byt 20480 1 snd_sof_pci
snd_sof_intel_ipc 20480 1 snd_sof_intel_byt
snd_sof 106496 4 snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_byt,snd_sof_intel_ipc
snd_sof_xtensa_dsp 16384 1 snd_sof_pci
snd_hda_ext_core 28672 4 snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_soc_acpi_intel_match 32768 2 snd_sof_pci,snd_sof_intel_hda_common
snd_soc_acpi 16384 2 snd_sof_pci,snd_soc_acpi_intel_match
ledtrig_audio 16384 3 snd_hda_codec_generic,snd_hda_codec_realtek,snd_sof
snd_soc_core 245760 5 snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_dmic
snd_hda_codec_hdmi 61440 1
snd_compress 24576 1 snd_soc_core
ac97_bus 16384 1 snd_soc_core
snd_pcm_dmaengine 16384 1 snd_soc_core
snd_hda_intel 53248 3
snd_intel_dspcfg 24576 3 snd_hda_intel,snd_sof_pci,snd_sof_intel_hda_common
snd_hda_codec 131072 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
snd_hda_core 90112 10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 106496 9 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,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 1 snd_seq_midi
snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer 36864 2 snd_seq,snd_pcm
snd 90112 19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
soundcore 16384 1 snd
1.3. lsmod |查看 snd_hda_intel 的帮助
snd_hda_intel 53248 3
snd_intel_dspcfg 24576 3 snd_hda_intel,snd_sof_pci,snd_sof_intel_hda_common
snd_hda_codec 131072 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
snd_hda_core 90112 10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_pcm 106496 9 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd 90112 19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
1.4. inxi -SA(您可能必须安装 inxi)
System: Host: jarvis Kernel: 5.4.0-42-generic x86_64 bits: 64 Desktop: Gnome 3.36.3
Distro: Ubuntu 20.04.1 LTS (Focal Fossa)
Audio: Device-1: Intel Cannon Lake PCH cAVS driver: sof-audio-pci
Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel
Sound Server: ALSA v: k5.4.0-42-generic
1.5. lspci -nnk | grep -n -A 4 音频
47:00:1f.3 Audio device [0403]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10)
48- Subsystem: Hewlett-Packard Company Cannon Lake PCH cAVS [103c:8478]
49- Kernel driver in use: sof-audio-pci
50- Kernel modules: snd_hda_intel, snd_sof_pci
51-00:1f.4 SMBus [0c05]: Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323] (rev 10)
--
62:01:00.1 Audio device [0403]: NVIDIA Corporation GP107GL High Definition Audio Controller [10de:0fb9] (rev a1)
63: Subsystem: Hewlett-Packard Company GP107GL High Definition Audio Controller [103c:8478]
64- Kernel driver in use: snd_hda_intel
65- Kernel modules: snd_hda_intel
66-02:00.0 Unassigned class [ff00]: Alcor Micro AU6625 PCI-E Flash card reader controller [1aea:6625]
67- Subsystem: Hewlett-Packard Company AU6625 PCI-E Flash card reader controller [103c:8478]
1.6. uname -a
Linux jarvis 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
1.7. aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
1.8. sudo lshw -C interactive (如果不能,可以不用 sudo)
*-multimedia
description: Audio device
product: GP107GL High Definition Audio Controller
vendor: NVIDIA Corporation
physical id: 0.1
bus info: pci@0000:01:00.1
version: a1
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:17 memory:b4000000-b4003fff
*-usb:1
description: Video
product: HP Wide Vision HD Camera
vendor: Chicony
physical id: 5
bus info: usb@1:5
version: 32.48
capabilities: usb-2.00
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-multimedia
description: Audio device
product: Cannon Lake PCH cAVS
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 10
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=sof-audio-pci latency=32
resources: irq:16 memory:b451c000-b451ffff memory:b4100000-b41fffff
1.9. dpkg -l | grep alsa
ii alsa-base 1.0.25+dfsg-0ubuntu5 all ALSA driver configuration files
ii alsa-topology-conf 1.2.2-1 all ALSA topology configuration files
ii alsa-ucm-conf 1.2.2-1ubuntu0.1 all ALSA Use Case Manager configuration files
ii alsa-utils 1.2.2-1ubuntu1 amd64 Utilities for configuring and using ALSA
ii gstreamer1.0-alsa:amd64 1.16.2-4 amd64 GStreamer plugin for ALSA
1.10. dpkg -l | grep linux- | grep $(uname -r)
ii linux-headers-5.4.0-42-generic 5.4.0-42.46 amd64 Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii linux-image-5.4.0-42-generic 5.4.0-42.46 amd64 Signed kernel image generic
ii linux-modules-5.4.0-42-generic 5.4.0-42.46 amd64 Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii linux-modules-extra-5.4.0-42-generic 5.4.0-42.46 amd64 Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii linux-modules-nvidia-440-5.4.0-42-generic 5.4.0-42.46 amd64 Linux kernel nvidia modules for version 5.4.0-42
1.11. modprobe --show-depends snd_hda_intel
insmod /lib/modules/5.4.0-42-generic/kernel/sound/soundcore.ko
install /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
insmod /lib/modules/5.4.0-42-generic/kernel/sound/core/snd-timer.ko
install /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
insmod /lib/modules/5.4.0-42-generic/kernel/sound/core/snd-hwdep.ko
insmod /lib/modules/5.4.0-42-generic/kernel/sound/hda/snd-hda-core.ko
insmod /lib/modules/5.4.0-42-generic/kernel/sound/pci/hda/snd-hda-codec.ko
insmod /lib/modules/5.4.0-42-generic/kernel/sound/hda/snd-intel-dspcfg.ko
insmod /lib/modules/5.4.0-42-generic/kernel/sound/pci/hda/snd-hda-intel.ko
1.12. grep intel /etc/modprobe.d/alsa-base.conf
options snd-intel8x0m index=-2
答案1
编辑: 避免在更新内核时丢失内核 linux-modules-extra-XX-generic 在某些情况下可能有助于避免将来出现问题。
这个答案可能更像是评论,但不太合适。所以这是我的五分钱,希望能有所帮助。
我最近遇到了 20.04 中的声音问题,解决起来很痛苦。 Ubuntu 20.04 重启后只有“虚拟输出”(声音)-驱动程序/模块损坏 在这个问题的底部我列出了我读过的一些资料来源。
根据这一经验(见我自己的答案),建议您添加以下信息:
输出
1.1.
cat /proc/asound/cards
1.2.
lsmod | grep snd
1.3.
lsmod | grep snd_hda_intel
1.4.
inxi -SA
(您可能必须安装inxi
)1.5.
lspci -nnk | grep -n -A 4 Audio
1.6.
uname -a
1.7.
aplay -l
1.8.
sudo lshw -C multimedia
(sudo
如果你不能,则无需)1.9.
dpkg -l | grep alsa
1.10.
dpkg -l | grep linux- | grep $(uname -r)
1.11.
modprobe --show-depends snd_hda_intel
1.12.
grep intel /etc/modprobe.d/alsa-base.conf
详情
2.1. 声音是否一直有效? 似乎有效,但我不确定。
2.2. 如果您有一个“类似”的工作系统#2可用。
第 2.2 点对我来说很重要。如果您有该选项,我建议您使用它。
如果没有,您可以考虑安装另一个 Ubuntu 20.04。我花了(大约)6 个小时(甚至更多)来解决这个问题。如果没有我的第二个,我可能还要花 6 个小时。所以安装另一个 Ubuntu 是一种竞争性的尝试。
例如,您可以通过压缩当前分区并添加另一个 Ubuntu 来实现这一点。您可能需要的空间不超过 30Gb。您甚至可以使用旧的,/home
如果它位于自己的分区中(推荐做法)。
注意:我不确定您尝试的修复是否“污染”了您的基础系统。
答案2
最后,在网上搜索并阅读了有关 NVIDIA 控制器的 alsa 选项后,我得到了以下解决方案
有 2 个文件需要更改
/etc/modprobe.d/blacklist.conf
和/etc/modprobe.d/alsa-base.conf
文件 1 中的变化。
- 使用 root 打开文件
- 将以下内容添加到行底部
blacklist snd_soc_skl
- 保存并退出文件。
文件 2 中的变化。
- 使用 root 打开文件
- 将以下行添加到文件底部
options snd-hda-intel dmic_detect=0
- 保存并退出文件
重新启动并享受恢复的声音!