openKylin论坛

 找回密码

解决ubuntu22.04上因特尔11代JasperLake芯片搭配音频芯片顺芯ESSX8336驱动问题的办法 [复制链接]

本帖最后由 rocket049 于 2022-6-24 17:24 编辑


上个月我入手一台因特尔11代处理器N5100的笔记本电脑,搭载的音频处理芯片是顺芯ESSX8336,装上ubuntu22.04后我发现没有声音,多方求助无果。最后求助yangxiaohua2009@github.com,经过多次提交内核log数据和alsa调试数据,这位高人yangxiaohua2009@github.com帮我找到了解决问题的办法。不少廉价笔记本都采用了这个芯片组合,所以我共享一下这个解决方案。

一、内核版本

我使用的内核是官方源提供的5.17,通过安装linux-oem-22.04a,其他版本也许不行。安装方法:

sudo apt install --install-recommends linux-oem-22.04a

二、固件

要安装来自https://github.com/yangxiaohua2009/custom-kernel的最新固件。

下载方法: git clone https://github.com/yangxiaohua2009/custom-kernel

安装过程:

cd custom-kernel
cp ./tplg/* /lib/firmware/intel/sof-tplg/
cp sof-jsl.ri  /lib/firmware/intel/sof/
cp -r sof-essx8336 /usr/share/alsa/ucm2

三、复制 sof-jsl-es8336.tplg(关键之一)

因为linux 5.17内核驱动模块的错误,无法加载正确的alsa固件,我们只能把该芯片对应的固件文件sof-jsl-es8336-ssp1.tplg复制为sof-jsl-es8336.tplg。具体做法是:

cd /lib/firmware/intel/sof-tplg
cp sof-jsl-es8336-ssp1.tplg sof-jsl-es8336.tplg

四、修改驱动模块加载参数(关键之二)

经过yangxiaohua2009@github.com的研究,linux 5.17内核驱动模块错误识别了ESSX8336的驱动参数quirk,必须在加载驱动模块时指定该参数值为1,具体做法是修改/etc/modprobe.d/alsa-base.conf文件,增加一行:

options snd_soc_sof_8336 quirk=0x01

完成上面几步后重启,就能听到声音了!
楼主
发表于 2022-6-24 17:18:17
回复

使用道具 举报

解决ubuntu22.04上因特尔11代JasperLake芯片搭配音频芯片顺芯ESSX8336驱动问题的办法 [复制链接]

没有这个文件,怎么搞?
/etc/modprobe.d/alsa-base.conf文件
沙发
发表于 2023-6-4 15:39:04
回复

使用道具 举报

解决ubuntu22.04上因特尔11代JasperLake芯片搭配音频芯片顺芯ESSX8336驱动问题的办法 [复制链接]

zhazhiyou 发表于 2023-6-4 15:39
没有这个文件,怎么搞?
/etc/modprobe.d/alsa-base.conf文件

sudo apt install alsa-base
板凳
 楼主| 发表于 2023-6-7 13:01:55
回复

使用道具 举报

解决ubuntu22.04上因特尔11代JasperLake芯片搭配音频芯片顺芯ESSX8336驱动问题的办法 [复制链接]

rocket049 发表于 2023-6-7 13:01
sudo apt install alsa-base

执行完,还是找不到。
另外,执行git clone https://github.com/yangxiaohua2009/custom-kernel
提示bash:git:未找到命令。
地板
发表于 2023-7-11 10:21:27
回复

使用道具 举报

openKylin

GMT+8, 2024-4-27 04:47 , Processed in 0.023828 second(s), 18 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表