HP Pavilion 15 上适用于 Ubuntu 的 B&O 音频驱动程序或引脚重新映射

HP Pavilion 15 上适用于 Ubuntu 的 B&O 音频驱动程序或引脚重新映射

我最近在我的 HP 笔记本电脑(型号 Pavilion 15-ck000nb,带 B&O 音频)上安装了 Ubuntu 20.04 进行试用。到目前为止一切正常,只是与 Windows 10 相比,音质非常差。是否有一个低音炮无法正常工作,需要特定的 Bang & Olufsen 驱动程序?此外,当我通过耳机插孔播放任何声音或音乐时,我会听到左声道发出轻微的噼啪声。我之前在这台笔记本电脑上尝试过 PopOS 18.04,它有同样的声音问题。编解码器是 Realtek ALC295。

先感谢您。

答案1

有一个关于此问题的内核错误报告(以及修复程序):https://bugzilla.kernel.org/show_bug.cgi?id=195457#c11

诀窍是将声卡设置从 Windows 复制到 Linux。以下是上述错误报告评论的内容:

我的 ASROCK X370 Gaming K4 (ALC1220) 也遇到了同样的问题:

第一种情况:启动第一个 Linux:声音有噪音/噼啪声。
第二种情况:启动第一个 Windows 和第二个 Linux:声音完美。

通过比较两种情况下的 Coeff 值并在启动时在脚本中分配第二种情况的值,我成功解决了该问题。如何:

  • 安装 alsa-tools。
  • 在这两种情况下,您都必须运行:echo 1 > /sys/module/snd_hda_codec/parameters/dump_coefs
  • 那么,在第一种情况下, alsa-info --no-upload --output infos_bad
  • 那么,在第二种情况下,alsa-info --no-upload --output infos_good
  • 最后,比较系数值:diff infos_bad infos_good | grep Coeff

要更改每个不同 Coeff 的值,需要按以下步骤操作:例如,将 Coeff 0x67 更改为值 0x3000

hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x67
hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x3000

您必须按照 Coeff 的递增顺序执行此操作。请注意,hwC0D0 指的是您的声卡。如果像我一样有 HDMI 输出,我的声卡是 hwC1D0。

这是一个快速脚本:


#!/bin/bash

coeffs=($(echo 0x{16,43,44,5d,5e,63,67}))
values=($(echo 0x{8020,3405,fa10,0606,0000,e430,3000}))

for i in `seq 0 $(( ${#coeffs[@]} - 1 ))`
do
  hda-verb /dev/snd/hwC1D0 0x20 SET_COEF_INDEX ${coeffs[$i]} && hda-verb /dev/snd/hwC1D0 0x20 SET_PROC_COEF ${values[$i]}
done

只需将数组“coeffs”中的系数更改为更改,将数组“values”中的新值更改为更改,然后执行此脚本。注意,虽然我没有关闭电源,但我的音频芯片组会保留这些值。这就是为什么您需要先执行第一种情况(第一个……),然后再执行第二种情况。然后,您可以测试它是否仅在您关闭主板电源然后直接启动 Linux 时才有效。

我正在为内核准备一个补丁,但对于那些遇到问题的人,您能否发布需要更改的系数/值。

希望这可以帮助。

相关内容