我全新安装了 Ubuntu 22.04。Bang & Olufsen 扬声器无法播放声音。
我经历过https://help.ubuntu.com/stable/ubuntu-help/sound-nosound.html.en但没有任何帮助。
我可以在耳机上听到声音,但是当我拔出耳机时,声音就消失了,即使音量设置为最大。
Speaker - sof-hda-dsp
在设置中显示已识别,但未被使用。当我拔出耳机时,开关Output device
。
sudo lspci -v
给出:
00:1f.3 Multimedia audio controller: Intel Corporation Device 51ca (rev 01)
Subsystem: Hewlett-Packard Company Device 8bdd
Flags: bus master, fast devsel, latency 32, IRQ 204, IOMMU group 15
Memory at 601d1d0000 (64-bit, non-prefetchable) [size=16K]
Memory at 601d000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [50] Power Management version 3
Capabilities: [80] Vendor Specific Information: Len=14 <?>
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: sof-audio-pci-intel-tgl
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
同样地,我有一台较旧的笔记本电脑,其设置几乎相同,它实际上是可以工作的:
lspci -v | fgrep -m1 -A19 '00:1f.3'
给出
00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS
Subsystem: Hewlett-Packard Company Comet Lake PCH-LP cAVS
Flags: bus master, fast devsel, latency 32, IRQ 154
Memory at b431c000 (64-bit, non-prefetchable) [size=16K]
Memory at b4000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [50] Power Management version 3
Capabilities: [80] Vendor Specific Information: Len=14 <?>
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_sof_pci_intel_cnl
也许切换正在使用的内核驱动程序是关键?我该怎么做,如果有帮助的话?
声卡未检测到命令sudo apt-get install build-essential linux-headers-
uname -ralsa-base alsa-firmware-loaders alsa-oss alsa-source alsa-tools alsa-tools-gui alsa-utils alsamixergui
不能解决问题。
如何为 HP 笔记本电脑安装 Bang and Olufsen 音频驱动程序?没能解决我的问题。
在 ubuntu(及其变体)上带有 sof-hda-dsp 音频的耳机没有声音也失败了。
连接或断开耳机时音频输出不切换也没什么帮助。
cat /proc/asound/cards
产生以下输出:
0 [sofhdadsp ]: sof-hda-dsp - sof-hda-dsp
HP-HPEnvyLaptop17_cw0xxx-Type1ProductConfigId-8BDD
sudo gedit /etc/modprobe.d/alsa-base.conf
并添加
options snd-hda-intel model=generic
按照建议Ubuntu 20.04——没有声音也失败了。
按照建议使用 sof-bin未检测到声卡 - Ubuntu 20.04 - sof-audio-pci也失败了。
我也得到了
[ 0.475866] pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
[ 0.476486] pci 0000:00:07.2: DPC: RP PIO log size 0 is invalid
在启动过程中。这与我的扬声器不工作有关吗?
我也按照标准做了sudo apt update && sudo apt upgrade
,但无济于事。
当我在以下位置 grep 音频时dmesg
:
[ 0.116257] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 7.147645] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 7.147677] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[ 7.147696] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 7.148080] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 8.341717] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 8.407947] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 8.441644] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[ 8.441649] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 8.441653] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 8.442691] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 8.442695] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:21:0
[ 8.442697] sof-audio-pci-intel-tgl 0000:00:1f.3: FW ABI is more recent than kernel
[ 8.442701] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[ 8.538642] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 8.538647] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:21:0
[ 8.538649] sof-audio-pci-intel-tgl 0000:00:1f.3: FW ABI is more recent than kernel
[ 8.555720] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:21:0
[ 8.555726] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: topology ABI is more recent than kernel
[ 8.585014] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC245: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[ 8.585021] snd_hda_codec_realtek ehdaudio0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 8.585023] snd_hda_codec_realtek ehdaudio0D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 8.585025] snd_hda_codec_realtek ehdaudio0D0: mono: mono_out=0x0
[ 8.585026] snd_hda_codec_realtek ehdaudio0D0: inputs:
[ 8.585028] snd_hda_codec_realtek ehdaudio0D0: Mic=0x19
[ 8.634984] snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
[ 8.634992] snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten
我也尝试过添加snd-intel-dspcfg.dsp_driver=1
但/boot/grub/grub.cfg
没有任何改变https://bbs.archlinux.org/viewtopic.php?id=275737
cat /proc/asound/cards
给出输出:
0 [sofhdadsp ]: sof-hda-dsp - sof-hda-dsp
HP-HPEnvyLaptop17_cw0xxx-Type1ProductConfigId-8BDD
sudo aplay -l
给出输出:
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
如何才能让我的扬声器发出声音?
答案1
更新
根据此评论,Linux 内核 6.9 或更高版本应该可以解决这个问题。因此,只要有可能,请尝试将内核更新到 6.9 或更高版本。
事实证明,这是一个众所周知的问题,目前还没有简单的解决办法。参见这里了解详情。该帖子中提到的笔记本电脑是 HP ENVY x360 15-ey0xxx,它也使用 Bang & Olufsen 扬声器。这个问答帖子非常活跃,最新回复截至本文撰写之日(2023 年 7 月 25 日)。我对此进行了一些研究,似乎您有两个选择:
- 按照提示将 Linux 内核版本更新至 6.3.2此回复。为此,您可以按照说明这里。但是,正如这些答案中所解释的那样,不建议这样做。因此,您可能希望安装非 LTS 版本的 Ubuntu,例如 23.04 或 23.10(当它们发布时)。
- 正如所指出的此回复,您可以按照说明安装可修复此问题的 DKMS 模块这里。但是,对于此选项,请务必注意回复下方的以下警告:
Thanks for the patch, but note that this change can't be taken.
It's dangerous and may burn speakers on other machines that don't use
this configuration.
For now, those info relies on the BIOS ACPI setup with _DSD entry, and
vendors should fix it with BIOS updates.
There have been already discussions how to deal with vendors who don't
cooperate well.
我认为这两个选项都不理想,我个人会等到这个问题在 Ubuntu 的未来版本中得到修复。
答案2
您可以安装 Linux 内核 6.8 或 6.9-rc1,在 BIOS 中禁用安全启动,扬声器可能会开始工作。使用本指南https://itsfoss.com/upgrade-linux-kernel-ubuntu/
安装 Xubuntu 23.1 后我的扬声器没有发出任何声音。安装这些较新的内核后,扬声器才有声音。
编辑:在带有未签名主线内核 6.9-rc1 的开发者版本 Xubuntu Noble Numbat 上,笔记本电脑扬声器也可以工作。