
联想拯救者 Y9000P 2025 Linux 音频音质问题解决
问题
这类机型音质干瘪,刺耳,跟 Windows 下没法比。经过研究之后发现,这类笔记本配有两个高音扬声器和两个低音扬声器,两个高音扬声器位于开机键附近,低音扬声器位于键盘一面底部的两个角(在 Windows 下播放音乐,低音扬声器会振动的,可以用这个方法来找)。问题在于只有高音扬声器工作,这类机型比较新,Linux 内核没有做适配。
思路
根据16iax10h-linux-sound-saga给出的补丁为自己的内核打补丁,使其支持你的内核。这个补丁只适用于特定机型,所以你需要对你的操作负责。
给内核打补丁
获取补丁仓库
git clone https://github.com/nadimkobeissi/16iax10h-linux-sound-saga确认你的内核版本
uname -r补丁只支持 6.18,6.19。如果你的内核版本不是这些,需要你自己阅读源码给自己的版本打补丁。
提取固件
你可以使用补丁仓库中的文件,但是最好提取一遍。我提取出来的和补丁仓库中的文件是一模一样的
下载你机型对应的声卡驱动,我的是 驱动列表 中的 Realtek Audio Driver 声卡驱动。保存为 a.exe。之后运行
innoextract a.exe这个工具需要使用系统包管理器安装。
之后复制到固件目录
cp "code\$GetExtractPath\$/Source/5Awinic_smart_amp_1012_WHQL/AWDZ8399.bin" /lib/firmware/aw88399_acf.bin下载 Linux 源代码
前往 kernel.org 下载你对应内核版本的源代码,并为其打补丁。补丁文件在补丁仓库中,自行替换目录。
patch -p1 < 16iax10h-audio-linux-<YOUR_KERNEL_VERSION>.patch配置编译参数
把工作目录切换到 Linux 源码目录下:
cd linux-6.18.10先获取当前系统使用的参数
zcat /proc/config.gz > .config然后添加进特定的参数:
echo "CONFIG_SND_HDA_SCODEC_AW88399=m
CONFIG_SND_HDA_SCODEC_AW88399_I2C=m
CONFIG_SND_SOC_AW88399=m
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
CONFIG_SND_SOC_SOF_INTEL_MTL=m
CONFIG_SND_SOC_SOF_INTEL_LNL=m" >> .config编译
make -j24
make modules -j24
make bzImage -j24
sudo make module_install -j24
sudo cp -f arch/x86/boot/bzImage /boot/vmlinuz-linux-12 # 这个是版本号,可以自定义配置初始化内存盘
cp /etc/mkinitcpio.d/linux.preset /etc/mkinitcpio.d/linux12.preset然后编辑 linux12.preset,改成 12 或你的版本
...
ALL_kver="/boot/vmlinuz-linux12"
...
default_image="/boot/initramfs-linux12.img"
...
fallback_image="/boot/initramfs-linux12-fallback.img"生成:
sudo mkinitcpio -p linux12更新 GRUB 配置
sudo grub-mkconfig -o /boot/grub/grub.cfg指定内核参数
在 /etc/modprobe/ 文件夹下新建一个 conf 文件,输入:
options snd_intel_dspcfg dsp_driver=1配置 ALSA
sudo cp -f fix/ucm2/HiFi-analog.conf /usr/share/alsa/ucm2/HDA/HiFi-analog.conf
sudo cp -f fix/ucm2/HiFi-mic.conf /usr/share/alsa/ucm2/HDA/HiFi-mic.conf重启
reboot现在重启之后在 PulseAudio 音量控制里看看有没有模拟环绕4.0。如果没有,说明没有指定内核参数。然后在KDE系统设置里播放声音,看看四个方向是否都有声音
如果有就正常,但是播放音乐还是干瘪。还需要创建一个虚拟设备把高音扬声器串流到低音扬声器使其支持4声道。一般软件只支持2声道
创建虚拟设备
创建 /etc/pipewire/pipewire.conf.d/11-virtual-device.conf,输入:
context.modules = [
{
name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = "Audio/Sink"
node.name = "loopback-sink"
node.description = "Loopback Virtual Sink"
# Make it selectable in desktop audio controls
device.description = "Loopback Virtual Sink"
device.class = "sound"
device.icon-name = "audio-card"
node.virtual = false
}
playback.props = {
# 你的节点名称,可以通过 pw-link -i 获取
node.name = "alsa_output.pci-0000_80_1f.3.analog-surround-40"
node.passive = true
channelmix.upmix = true
channelmix.upmix-method = "simple" # 也可以选 psd,具体去看文档
}
}
}
]注意更改注释中的内容
把默认输出设备切换为这个虚拟设备,最后在KDE系统设置里把原来的设备的音量调整为100%。