解决华硕灵耀X双屏Linux下扬声器不工作的问题
解决华硕灵耀X双屏Linux下扬声器不工作的问题
- 系统信息
- 解决方法
- 0. 备份系统
- 1. 修改内核启动参数,使用HDA驱动
- 2. 测试修复方案
- 3. 持久化修复方案
系统信息
我的电脑是:华硕灵耀X双屏Pro UX5100HM
电脑声卡为:ALC294
操作系统为:Manjaro Linux
详细信息:
██████████████████ ████████ adinlead@zenbook ██████████████████ ████████ ---------------- ██████████████████ ████████ OS: Manjaro Linux x86_64 ██████████████████ ████████ Host: ZenBook Pro Duo UX582HM_UX5100HM1.0████████ ████████ Kernel:6.18.26-1-MANJARO ████████ ████████ ████████ Uptime:2days,4hours,21mins ████████ ████████ ████████ Packages:1552(pacman),7(flatpak)████████ ████████ ████████ Shell:zsh5.9████████ ████████ ████████ Resolution: 1920x1080 ████████ ████████ ████████ DE: Plasma6.6.4 ████████ ████████ ████████ WM: kwin ████████ ████████ ████████ Theme: Breeze[GTK2/3]████████ ████████ ████████ Icons: breeze[GTK2/3]████████ ████████ ████████ Terminal: konsole CPU: 11th Gen Intel i7-11800H(16)@4.600GHz GPU: NVIDIA GeForce RTX3060Mobile / Max-Q GPU: Intel TigerLake-H GT1[UHD Graphics]Memory: 11455MiB / 15677MiB问题表现:
- 之前安装Kubuntu时,扬声器不工作,但是插耳机有声音
- 后安装Manjaro,扬声器不工作,插耳机也不工作
解决方法
0. 备份系统
使用timeshift,拍摄快照,防止后续修改对系统产生无法挽回的影响
使用timeshift,拍摄快照,防止后续修改对系统产生无法挽回的影响
使用timeshift,拍摄快照,防止后续修改对系统产生无法挽回的影响
1. 修改内核启动参数,使用HDA驱动
先使用lspci命令确认当前音频驱动模式
[adinlead@zenbook ~]$ lspci-nnk|grep-A3Audio 0000:00:1f.3 Multimedia audio controller[0401]: Intel Corporation Tiger Lake-H HD Audio Controller[8086:43c8](rev11)Subsystem: ASUSTeK Computer Inc. Device[1043:1b42]Kernel driverinuse: snd_hda_intel Kernel modules: snd_soc_avs, snd_sof_pci_intel_tgl, snd_hda_intel -- 0000:01:00.1 Audio device[0403]: NVIDIA Corporation GA106 High Definition Audio Controller[10de:228e](rev a1)Subsystem: ASUSTeK Computer Inc. Device[1043:1b42]Kernel driverinuse: snd_hda_intel Kernel modules: snd_hda_intel注意输出中是否包含了Kernel driver in use: snd_hda_intel,如果包含了则说明系统当前音频驱动方案为HDA,可以跳过本步骤。
编辑配置文件
sudovim/etc/default/grub找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,在引号内添加:
snd-intel-dspcfg.dsp_driver=1我的完整配置为:
# GRUB boot loader configuration GRUB_DEFAULT=saved GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR='Manjaro' GRUB_CMDLINE_LINUX_DEFAULT='quiet splash udev.log_priority=3 snd-intel-dspcfg.dsp_driver=1' GRUB_CMDLINE_LINUX="" ...more...这行参数会强制使用 HDA 驱动方案。
保存后更新 GRUB并重启:
sudoupdate-grubsudoreboot重启成功后,运行下列命令确认是否成功切换到了HDA驱动方案:
[adinlead@zenbook ~]$ lspci-nnk|grep-A3Audio 0000:00:1f.3 Multimedia audio controller[0401]: Intel Corporation Tiger Lake-H HD Audio Controller[8086:43c8](rev11)Subsystem: ASUSTeK Computer Inc. Device[1043:1b42]Kernel driverinuse: snd_hda_intel Kernel modules: snd_soc_avs, snd_sof_pci_intel_tgl, snd_hda_intel -- 0000:01:00.1 Audio device[0403]: NVIDIA Corporation GA106 High Definition Audio Controller[10de:228e](rev a1)Subsystem: ASUSTeK Computer Inc. Device[1043:1b42]Kernel driverinuse: snd_hda_intel Kernel modules: snd_hda_intel注意输出中是否包含了Kernel driver in use: snd_hda_intel,包含了则说明切换成功。
2. 测试修复方案
尝试运行下列方案,每个方案运行完后都要测试扬声器是否能跟正常工作。
方案1:
hda-verb /dev/snd/hwC0D0 0x20 0x500 0xf hda-verb /dev/snd/hwC0D0 0x20 0x400 0x7774# 测试无效后还原hda-verb /dev/snd/hwC0D0 0x20 0x500 0x0 hda-verb /dev/snd/hwC0D0 0x20 0x400 0x0方案2:
hda-verb /dev/snd/hwC0D0 0x20 0x500 0x45 hda-verb /dev/snd/hwC0D0 0x20 0x400 0x5289# 测试无效后还原hda-verb /dev/snd/hwC0D0 0x20 0x500 0x0 hda-verb /dev/snd/hwC0D0 0x20 0x400 0x0方案3:
hda-verb /dev/snd/hwC0D0 0x1 0x5 0x03 hda-verb /dev/snd/hwC0D0 0x2 0x5 0x03# 测试无效后还原hda-verb /dev/snd/hwC0D0 0x1 0x5 0x00 hda-verb /dev/snd/hwC0D0 0x2 0x5 0x00方案4:
hda-verb /dev/snd/hwC0D0 0x20 0x500 0x1b hda-verb /dev/snd/hwC0D0 0x20 0x477 0x4a4b# 测试无效后还原hda-verb /dev/snd/hwC0D0 0x20 0x500 0x0 hda-verb /dev/snd/hwC0D0 0x20 0x477 0x0方案5:
hda-verb /dev/snd/hwC0D0 0x20 0x500 0xf hda-verb /dev/snd/hwC0D0 0x20 0x477 0x74# 测试无效后还原hda-verb /dev/snd/hwC0D0 0x20 0x500 0x0 hda-verb /dev/snd/hwC0D0 0x20 0x477 0x0如果上述方案没有生效,可以尝试使用DeepSeek寻找其他方案,如果尝试了多个方案都不行,那么请使用timeshift还原快照,尝试其他修复教程。
3. 持久化修复方案
编写修复脚本/usr/local/bin/asus-audio-fix.sh
sudotouch/usr/local/bin/asus-audio-fix.shsudochmod+x /usr/local/bin/asus-audio-fix.shsudovim/usr/local/bin/asus-audio-fix.sh内容为:
#!/bin/bash# 修复华硕灵耀X双屏Pro (ALC294) 音频问题# 等待声卡设备就绪,最多等待10秒foriin{1..10};doif[-e/dev/snd/hwC0D0];thenecho"Device found: /dev/snd/hwC0D0"breakfiecho"Waiting for /dev/snd/hwC0D0... (attempt$i)"sleep1done# 如果设备还是不存在,尝试查找其他设备if[!-e/dev/snd/hwC0D0];thenecho"Error: /dev/snd/hwC0D0 not found, checking available devices:"ls-la/dev/snd/hwC*2>/dev/null||echo"No hwC devices found"exit1fi# 注意!用有效的修复方案替换下方的内容/usr/sbin/hda-verb /dev/snd/hwC0D0 0x20 0x500 0x45 /usr/sbin/hda-verb /dev/snd/hwC0D0 0x20 0x400 0x5289修复脚本可以放到其他位置
创建systemd服务
sudovim/etc/systemd/system/asus-audio-fix.service内容为:
[Unit] Description=Fix ASUS ZenBook Pro Duo audio (ALC294) After=sound.target [Service] Type=oneshot # 注意替换为正确的脚本路径 ExecStart=/usr/local/bin/asus-audio-fix.sh [Install] WantedBy=multi-user.target启用systemd服务:
sudosystemctlenableasus-audio-fix.service重启系统验证效果:
sudoreboot