很长一段时间以来,我的 Alienware x17 R1 的低音炮一直存在问题。这个问题与 Kubuntu 本身无关,因为我在 Manjaro 和 Fedora 上也遇到过同样的问题。
我的笔记本电脑配备了 Realtek ALC3281 音频控制器,它有两个功放,分别用于不同的扬声器。主扬声器使用 ALC3281 芯片,低音炮使用 Realtek ALC1309 芯片。Linux 系统默认没有低音炮,唯一检测到的芯片似乎是 ALC3281(名为 ALC289)。为了解决这个问题,我做了两处修改,最终成功解决了这个问题。
将其添加到 GRUB_CMDLINE_LINUX_DEFAULT:
snd_intel_dspcfg.dsp_driver=1
使用 HDAJackRetask 覆盖 Pin ID 0x17并将其设置为 LFE 或后置扬声器。
通过上述调整,低音炮扬声器根据选择被检测为低音炮或后置扬声器,并且通过声音配置进行测试可以工作,但不能完全工作。
音质几乎完美,接近 Windows 音效,但音量控制仅限于“前置”扬声器,两个低音炮始终保持最大音量。我用 alsamixer 做了一些测试,发现前置扬声器有音量控制,但低音炮没有。
我还注意到,主音量和扬声器音量控制正在改变前置扬声器的音量,而低音炮扬声器仍处于最大音量,而 PCM 音量能够同时修改所有四个扬声器的音量。
这里我理解解决问题的方法有两种:
- 修复低音炮的音量控制
- 将音量控制改为管理 PCM 音量,而不是主音量。我可以用 AlsaMixer 来实现,但操作起来不太方便,而且 KDE 控件会覆盖某些事件(例如睡眠恢复)中的更改。
我该如何解决这个问题?我被屏蔽了,搜索也没有结果,所以我不知道该怎么办。
编辑:在 Gemini 的帮助下,我找到了一种解决方法,可以将音量控制改为基于软件的,而且似乎有效。我不知道这是否是最好的选择,所以我会在解决方案发布后等几天看看是否有更好的选择。
它仍然运行良好,所以以下是我在 Kubuntu 24.04 上尝试的步骤。这些步骤适用于所有 Ubuntu 版本,类似的步骤也适用于其他发行版,例如 Fedora。
首先,我们必须编辑 grub 配置文件
/etc/default/grub
:在此文件中,我们将修改条目
GRUB_CMDLINE_LINUX_DEFAULT
并在末尾添加以下内容:现在我们必须使用以下命令重新生成 grub 配置:
我们将重新启动计算机。
计算机重新启动后,我们必须使用以下命令安装 HDAJackRetask:
安装完成后,我们将打开HDAJackRetask程序并进行如下配置:
将
Show unconnected pins
显示所有引脚,包括使其工作所需的 0x17。现在我们必须
Apply Now
先按下 来测试这些更改是否适用于我们的系统,然后我们才能更改声音配置,以选择 2.1 和 4.0 之间的配置。使用此配置,我们将能够使用test
按钮检查扬声器是否正常工作:如果一切正常,我们将必须按下
Install Boot Override
HDAJackRetask 程序上的按钮才能使其永久生效。此时,我们可以启用低音炮的声音,但音量会达到最大(这也是我开这个帖子的原因)。为了解决这个问题,我们需要修改 wireplumber 中的 Alsa 配置,以便使用软件混音器。只需将当前配置文件复制到您的配置文件文件夹中即可:
如果该文件夹不存在,则创建它:
编辑新创建的文件:
并取消注释该
api.alsa.soft-mixer
行,将其值更改为true
。重新启动并最终享受具有正确声音的 Alienware x17 r1。
此致。