![Hdajackretask:如果不劫持耳机,就无法让内置扬声器工作](https://linux22.com/image/923719/Hdajackretask%EF%BC%9A%E5%A6%82%E6%9E%9C%E4%B8%8D%E5%8A%AB%E6%8C%81%E8%80%B3%E6%9C%BA%EF%BC%8C%E5%B0%B1%E6%97%A0%E6%B3%95%E8%AE%A9%E5%86%85%E7%BD%AE%E6%89%AC%E5%A3%B0%E5%99%A8%E5%B7%A5%E4%BD%9C.png)
编辑:已解决,见下文。
我已经在配备 Realtek ALC1220 声卡的 MSI 笔记本电脑“Leopard GP73-8RE”上安装了 Ubuntu 20.04。
我有以下问题:默认情况下,内置扬声器不工作。但是,耳机可以工作。由于我对 Linux 上的声音问题比较熟悉,所以我调查了常见的问题,例如 中的静音条alsamixer
或 中的错误输出设备pavucontrol
。这方面没有什么可报告的。
因此,我经常hdajackretask
重新分配引脚。默认情况下,它们看起来像这。检查未连接的引脚和高级覆盖后,我得到以下信息:屏幕 1 屏幕 2。
我尝试依次将每个未连接的引脚切换到“内置扬声器”、“内置扬声器 (LFE)”和“内置扬声器 (背面)”,但无济于事。
最终,当我将 0x14“黑色耳机,后侧”引脚切换为“内置扬声器”时,我取得了进展。现在,扬声器工作正常,太棒了。要实现该功能,0x1b 也必须保持设置为“内置扬声器”。
但是,我不再有耳机和扬声器的独立输出,因为它们都通过同一个引脚。因此,插入耳机不会禁用扬声器,但耳机仍会输出声音。
事实上,我只能假设,当拔下耳机时,系统会尝试通过空插孔输出声音。
我尝试返回alsamixer
检查自动静音,但此选项与耳机音量条一起消失了。事实上,由于扬声器和耳机现在使用标记为“内置扬声器”的相同引脚,因此 alsa 一定不再看到任何特定的耳机通道。
作为一种解决方法,我搜索了允许使用耳机的引脚(包括未连接的引脚),但只有两个:0x14 和 0x1b - 而这些是扬声器所必需的。
虽然我可以接受这一点,但我还是希望得到一些建议来最终解决这个问题:我希望扬声器可以正常工作,而不需要“劫持”耳机。在理想情况下,扬声器可以正常工作,耳机也可以正常工作,插入耳机会禁用扬声器。
提前致谢
解决方案
我觉得自己很蠢,我花了很多时间在错误的方向研究这个问题(hdajackretask
一般来说),而其他人在类似的 MSI 笔记本电脑上也遇到了同样的问题。以下是Bugzilla 线程确定了问题并找到了解决方案。 和以下是上述解决方案的实现(对我有用):
MSI GL73 显然使用相同的 ALC1220 声音编解码器,并且也需要与 Clevo P950 相同的声音路由修复。大胆猜测,您可以尝试添加一个名为
/etc/modprobe.d/sound-fixup.conf
以下内容的文件:options snd-hda-intel model=clevo-p950
然后
update-initramfs -u
以 root 身份运行以确保更改在早期启动时也有效,然后重新启动并查看是否会带来改进。如果 MSI 已将您的型号与 GL73 连接在一起,这可能会解决问题。如果没有,请删除该/etc/modprobe.d/sound-fixup.conf
文件并再次运行update-initramfs -u
以完全摆脱该选项。