[deepin exploration] 联想拯救者Y9000X(2022版)扬声器不能外放的解决办法 Resolved
Tofloor
poster avatar
robinyao
deepin
2024-10-04 23:33
Author

注意,本文只针对Y9000X(2022版)出现的问题(Y9000P 2022貌似也可以,没有试过),其他机型可以参考

问题具体表现为:

Deepin/Ubuntu系统下,能看到正确的音频设备,麦克风能正常工作(能录音),但任何音乐、声音都无法通过扬声器外放,插入3.5mm耳机收听又是正常的;

Win下没有问题。

image.png

这个问题困扰了我将近1年,期间不断的搜索,尝试了N种方案,包括但不限于:

  • 重装系统
  • 升级Linux内核(最新升级到6.10.x)
  • 在 /etc/modprobe.d/ 下增加相关音频设备配置选项
  • 修改grub启动参数
  • alc287 patch补丁
  • 打DSDT补丁。。。

直到看到某位大神的这篇文章,才意识到这个是属于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系统内进行)

虽然但是,编译和安装过程也踩了不少坑,我把尽量把过程完整记录下来:

  • 安装编译所需的工具、库等:
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
然后按菜单提示保存:

image.png

  • 增加内核版本号后缀(可跳过,会使用默认的后缀):
./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 ''
  • 编译内核(此步骤用时较久,大概10几20分钟左右,可以干点别的):
make -j20
  • 构建和安装 modules,并缩小 initrd.img的尺寸(此步骤重要,否则编译出的内核文件会把你的/boot分区塞满。。。):
sudo make O=\$KERNEL\_OUT INSTALL\_MOD\_STRIP=1 modules\_install -j20
  • 构建headers_install:
sudo make headers\_install
  • 最终安装新内核:
sudo make install
  • 如果make install时报dkms错误,导致新内核不能正确安装,则**:**
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的默认启动项,在GRUB菜单中进入Advanced Options,选择对应的内核启动即可

image.png

如果一切顺利,启动时应该可以听到悦耳的Deepin启动音乐了

收尾:使用dkms为新的内核安装(同步)N卡驱动:

第二步安装编译的内核时,make install过程中,dmks同步已有的N卡驱动到新内核module时,大概率会失败,导致新的内核不能正确使用N卡驱动(我的机器上表现为启动时,内置显示器“卡死”在启动界面,但是在雷电口外接一个type-c显示器,能够进入到登录界面并正确进入);

因此在使用新内核启动系统后,需要手动运行dkms,来同步N卡驱动到新内核(我安装Deepin时选择了“集成闭源显卡驱动”):

首先:

sudo apt install dkms (非必须)

然后:

ls -l /usr/src/

可以看到有一个nvidia的文件夹,比如 nvidia-current-535.161.08

最后使用dkms重新安装适合内核的驱动:

sudo dkms install -m nvidia-current -v 535.161.08

May the Force be with you. Enjoy !!!

Reply Favorite View the author
All Replies
robinyao
deepin
2024-10-04 23:59
#1

补充一下:这个方法同样适用于Ubuntu等Linux系统。

Reply View the author
阿尼樱奈奈
Moderator
2024-10-05 06:44
#2

like

Reply View the author
小鱼贝壳
deepin
2024-10-05 21:24
#3

like

Reply View the author
Oli
deepin
2024-10-05 21:34
#4

棒棒的

Reply View the author
Oli
deepin
2024-10-05 21:35
#5

like

Reply View the author