我最近在我的 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 时才有效。
我正在为内核准备一个补丁,但对于那些遇到问题的人,您能否发布需要更改的系数/值。
希望这可以帮助。