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

CPU/显卡/打印机/USB设备等硬件问题
回复
fuhuizn
帖子: 948
注册时间: 2006-01-06 22:55
系统: ubuntu
联系:

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

#1

帖子 fuhuizn » 2022-06-24 17:16

上个月我入手一台因特尔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

完成上面几步后重启,就能听到声音了!
thzzy
帖子: 2
注册时间: 2010-05-05 14:13

Re: 解决ubuntu22.04上因特尔11代JasperLake芯片搭配音频芯片顺芯ESSX8336驱动问题的办法

#2

帖子 thzzy » 2023-07-28 18:09

请问6.1的内核这个位置/etc/modprobe.d/没有alsa-base.conf文件,6.1内核上怎么操作呢?
回复