答案1
将耳机麦克风增强增益设置为 10dB。任何其他值似乎都会导致耳机中出现令人烦恼的背景噪音。这可以通过以下方式实现amixer
:
amixer -c0 sset 'Headphone Mic Boost' 10dB
为了使这种情况在每次连接耳机时自动发生,请安装acpid
.
通过运行启动它:
sudo systemctl start acpid.service
通过运行启用它:
sudo systemctl enable acpid.service
创建以下事件脚本/etc/acpi/headphone-plug
event=jack/headphone HEADPHONE plug
action=/etc/acpi/cancel-white-noise.sh %e
然后创建动作脚本/etc/acpi/cancel-white-noise.sh
:
#! /bin/bash
amixer -c0 sset 'Headphone Mic Boost' 10dB
现在,每次连接耳机时,耳机麦克风增强都会设置为 10dB。要使其生效,您需要重新启动笔记本电脑。
答案2
我该如何预防?
此问题是由 Linux 高清音频驱动程序中的错误引起的,现已修复。所有内核版本 5.7 及更高版本都将包含此修复程序,并且它还被向后移植到多个稳定内核中,分别出现在版本 5.6.5、5.5.18、5.4.33 和 4.19.116 中。升级到已修复的内核应该可以使问题消失,而无需额外的配置或解决方法。
内核中的修复在几个方面比其他答案的解决方法更好:
- 耳机中的音频明显更大声并且更清晰。
- 编解码器挂起/恢复时耳机中不再出现爆音。
- “耳机麦克风增强”控件实际上达到了其预期目的——在 3.5 毫米插孔配置为麦克风输入时设置增益。当插孔配置为耳机或耳麦时,它不再有任何影响。
问题出在哪里?
事实证明,一些 Realtek HD 音频编解码器(包括 XPS 13 9350 和 9360 中的编解码器)可以以通常用于配置 HD 音频编解码器的自记录“节点图”未公开的方式路由音频。由于多个错误的汇集,内核一直在配置 XPS 13至少从 2015 年开始从 3.5 毫米插孔捕获信号,就像插入麦克风一样,将其放大,然后将其路由回插孔。
正如您可能想象的那样,这种反馈回路会产生不良影响,最明显的是白噪声,其特征取决于信号在反馈之前放大的量(“耳机麦克风增强”控制)。其中一个增益电平恰好导致几乎没有噪音,这似乎是一个幸运的意外。然而,由于反馈循环仍然存在,您仍然会听到比预期更安静、质量更低的音频,并且在编解码器挂起/恢复时弹出声音。
有关更多信息,请参阅我的补丁系列实施了修复。该系列中的提交消息以及逆向工程文档它添加了控制隐藏音频路由的 Realtek 寄存器,提供了问题、历史记录和修复的详细说明。