购买了 Dell XPS 15 9530 笔记本电脑后,我立即将其与 Ubuntu 23.04 进行了双启动。除了声音比 Windows 11 差很多之外,其他一切都很好。我在网上搜索了无数次解决这个问题的方法,但都无济于事。在我看来,问题在于系统只检测到高音扬声器。
有人能告诉我改善音质的解决方法吗?我见过好几个类似的投诉,但都没找到解决办法。
答案1
你确实是对的 - 只检测到推特,而不是低音炮。
TL:DR;
目前还在开发中,但通过重建内核,今天你就能让所有 4 个扬声器正常工作,我描述了最新的这里是 github 问题. 更多开发和总结可参见不和谐
详细分析:
XPS 9500/9510/9520/9530 使用 x4 扬声器,两个高音扬声器直接连接到 Realtek 音频编解码器,两个低音扬声器(朝下,提供大部分音量)连接到同一编解码器至同一频道通过放大器。
具体来说,9530(子系统1028:0beb
)使用 Cirrus Logic CS35L41 放大器,需要上传固件才能运行。此设备通过 SPI 与笔记本电脑通信,基于 BIOS 的 ACPI 表中定义的必需参数(应该有)。在 Windows 上,Realtek 驱动程序负责所有这些。在 Linux 上,这有点麻烦:
- 就像 9500/9510/9520 一样,需要启用 Realtek 编解码器的内核怪癖,将高音扬声器的输出连接到低音扬声器通道的输入(因此,两个左扬声器连接到一个 L 通道,右扬声器也是如此),以便系统能够识别还有两个扬声器
- 需要通过另一个内核怪癖来为 CS35L41 amp 启用 SPI 模块加载,x2
=> 这两个合并为一个 quirk,并且已经合并到上游
- 需要添加 CS35L41 缺少的固件才能加载,如果没有它们,它将使用默认设置,这确实会使底部扬声器工作,但播放效果不佳。
- 通常,BIOS 的 ACPI 会具有设备特定属性 (_DSD) 和 SPI 的芯片选择 gpios(用于 Cirrus 放大器),但在戴尔的情况下,它们完全缺失。因此需要添加 .dsl 表补丁来添加 _DSD 和 CS 引脚,或者添加内核补丁来添加 _DSD 和较小的 .dsl 补丁来添加 CS 引脚。将来,CS 引脚也可能添加到内核补丁中,但这必须首先得到支持
我和 Discord 服务器上的其他几个人一直在努力寻找这些问题的解决方案。目前并非所有问题都可以被上行,您可以在 Github/Discord 上获取更多信息。不过现在,您可以应用临时补丁(上面的 github 链接,Discord 开发摘要),这将使所有扬声器立即无延迟地工作 :)
答案2
XPS 使用 Waves Maxxaudio 程序来增强声音,而 Linux 则没有这种程序。如果没有它,Linux 在这些笔记本电脑上基本上是无用的。