问题具体表现为:
Deepin/Ubuntu系统下,能看到正确的音频设备,麦克风能正常工作(能录音),但任何音乐、声音都无法通过扬声器外放,插入3.5mm耳机收听又是正常的;
Win下没有问题。
这个问题困扰了我将近1年,期间不断的搜索,尝试了N种方案,包括但不限于:
直到看到某位大神的这篇文章,才意识到这个是属于Y9000X使用的功放芯片(Cirrus CSC3551)未能正确的驱动导致的,虽然按照文章的指引尝试了也没有解决问题,但是给我提示了正确的方向:
修复华硕笔记本在 Linux 上扬声器无声音的问题:https://yadom.in/archives/asus-notebook-cirrus-amp-in-linux-fix.html
后来又发现一位大神(xuwd1@github)给出的解决方案(真正的大神,能给linux提交补丁那种,膜拜膜拜),终于尝试成功:
解决无外放声音的问题:https://github.com/xuwd1/lenovo-legion-slim7i-gen7-knowledges/wiki/%E8%A7%A3%E5%86%B3%E6%97%A0%E5%A4%96%E6%94%BE%E5%A3%B0%E9%9F%B3%E7%9A%84%E9%97%AE%E9%A2%98
虽然又折腾了N次(主要是安装自编译的内核后显卡又无法正确工作了),最终总算成功了,
这里趁着国庆假期,将我之前折腾的一些步骤总结分享给大家:
按照大神的说法,需要在较新内核版本上打补丁,于是我下载了多版本的内核,最终发现stable的 6.5.9 版本内核,是我能照葫芦画瓢修改的最高版本,再往上,由于Cirrus logics的内核维护者把对应的驱动程序进行了大改,超出了我的画瓢能力,只能作罢。
虽然但是,编译和安装过程也踩了不少坑,我把尽量把过程完整记录下来:
sudo apt install bc binutils bison dwarves flex gcc git gnupg2 gzip libelf-dev libncurses5-dev libssl-dev make openssl pahole perl-base rsync tar xz-utils sudo apt install console-setup
sudo cp /boot/config-\$(uname -r) .config
(其实都不用修改,这一步只需要make一下并保存即可)
make menuconfig 或 make nconfig 然后按菜单提示保存:
./scripts/config --file .config --set-str LOCALVERSION "-amd64-desktop-y9kx"
./scripts/config --file .config --set-str SYSTEM\_TRUSTED\_KEYS '' ./scripts/config --file .config --set-str SYSTEM\_REVOCATION\_KEYS ''
make -j20
sudo make O=\$KERNEL\_OUT INSTALL\_MOD\_STRIP=1 modules\_install -j20
sudo make headers\_install
sudo make install
sudo update-initramfs -k 6.5.9-amd64-desktop-rolling -usudo update-grub2
sudo ls -l /boot -rw-r--r-- 1 root root 328543 10月 3日 22:56 config-6.5.9-amd64-desktop-y9kx -rw-r--r-- 1 root root 339793 7月23日 12:11 config-6.9.6-amd64-desktop-rolling drwxr-xr-x 4 root root 4096 1970年 1月 1日 efi drwxr-xr-x 6 root root 4096 10月 4日 01:31 grub -rw-r--r-- 2 root root 107101776 10月 3日 22:57 initrd.img-6.5.9-amd64-desktop-y9kx -rw-r--r-- 1 root root 158495312 10月 4日 01:33 initrd.img-6.9.6-amd64-desktop-rolling drwx------ 2 root root 16384 10月 3日 20:41 lost+found drwx------ 4 root root 4096 10月 4日 01:31 snapshot -rw-r--r-- 1 root root 8079034 10月 3日 22:56 System.map-6.5.9-amd64-desktop-y9kx -rw-r--r-- 1 root root 8275008 7月23日 12:11 System.map-6.9.6-amd64-desktop-rolling -rw-r--r-- 2 root root 13383232 10月 3日 22:56 vmlinuz-6.5.9-amd64-desktop-y9kx -rw-r--r-- 3 root root 13774152 7月23日 12:11 vmlinuz-6.9.6-amd64-desktop-rolling
内核安装时有一定概率会导致新的内核不是GRUB的默认启动项,在GRUB菜单中进入Advanced Options,选择对应的内核启动即可
如果一切顺利,启动时应该可以听到悦耳的Deepin启动音乐了
第二步安装编译的内核时,make install过程中,dmks同步已有的N卡驱动到新内核module时,大概率会失败,导致新的内核不能正确使用N卡驱动(我的机器上表现为启动时,内置显示器“卡死”在启动界面,但是在雷电口外接一个type-c显示器,能够进入到登录界面并正确进入);
因此在使用新内核启动系统后,需要手动运行dkms,来同步N卡驱动到新内核(我安装Deepin时选择了“集成闭源显卡驱动”):
首先:
sudo apt install dkms (非必须)
sudo apt install dkms
然后:
ls -l /usr/src/
可以看到有一个nvidia的文件夹,比如 nvidia-current-535.161.08
nvidia-current-535.161.08
最后使用dkms重新安装适合内核的驱动:
sudo dkms install -m nvidia-current -v 535.161.08
May the Force be with you. Enjoy !!!
补充一下:这个方法同样适用于Ubuntu等Linux系统。
棒棒的
Popular Ranking
Popular Events
注意,本文只针对Y9000X(2022版)出现的问题(Y9000P 2022貌似也可以,没有试过),其他机型可以参考
问题具体表现为:
Deepin/Ubuntu系统下,能看到正确的音频设备,麦克风能正常工作(能录音),但任何音乐、声音都无法通过扬声器外放,插入3.5mm耳机收听又是正常的;
Win下没有问题。
这个问题困扰了我将近1年,期间不断的搜索,尝试了N种方案,包括但不限于:
直到看到某位大神的这篇文章,才意识到这个是属于Y9000X使用的功放芯片(Cirrus CSC3551)未能正确的驱动导致的,虽然按照文章的指引尝试了也没有解决问题,但是给我提示了正确的方向:
修复华硕笔记本在 Linux 上扬声器无声音的问题:https://yadom.in/archives/asus-notebook-cirrus-amp-in-linux-fix.html
后来又发现一位大神(xuwd1@github)给出的解决方案(真正的大神,能给linux提交补丁那种,膜拜膜拜),终于尝试成功:
解决无外放声音的问题:https://github.com/xuwd1/lenovo-legion-slim7i-gen7-knowledges/wiki/%E8%A7%A3%E5%86%B3%E6%97%A0%E5%A4%96%E6%94%BE%E5%A3%B0%E9%9F%B3%E7%9A%84%E9%97%AE%E9%A2%98
虽然又折腾了N次(主要是安装自编译的内核后显卡又无法正确工作了),最终总算成功了,
这里趁着国庆假期,将我之前折腾的一些步骤总结分享给大家:
前提:Deepin系统安装好(V20.9、V23均可),除扬声器外其它都工作正常。
第一步:下载Linux内核并修改相关驱动配置文件
按照大神的说法,需要在较新内核版本上打补丁,于是我下载了多版本的内核,最终发现stable的 6.5.9 版本内核,是我能照葫芦画瓢修改的最高版本,再往上,由于Cirrus logics的内核维护者把对应的驱动程序进行了大改,超出了我的画瓢能力,只能作罢。
第二步:编译内核源码(需要在Deepin系统内进行)
虽然但是,编译和安装过程也踩了不少坑,我把尽量把过程完整记录下来:
(其实都不用修改,这一步只需要make一下并保存即可)
第三步:重启并使用新的内核:
内核安装时有一定概率会导致新的内核不是GRUB的默认启动项,在GRUB菜单中进入Advanced Options,选择对应的内核启动即可
如果一切顺利,启动时应该可以听到悦耳的Deepin启动音乐了
收尾:使用dkms为新的内核安装(同步)N卡驱动:
第二步安装编译的内核时,make install过程中,dmks同步已有的N卡驱动到新内核module时,大概率会失败,导致新的内核不能正确使用N卡驱动(我的机器上表现为启动时,内置显示器“卡死”在启动界面,但是在雷电口外接一个type-c显示器,能够进入到登录界面并正确进入);
因此在使用新内核启动系统后,需要手动运行dkms,来同步N卡驱动到新内核(我安装Deepin时选择了“集成闭源显卡驱动”):
首先:
sudo apt install dkms
(非必须)然后:
可以看到有一个nvidia的文件夹,比如
nvidia-current-535.161.08
最后使用dkms重新安装适合内核的驱动:
May the Force be with you. Enjoy !!!