DISCLAIMER: I'm not responsible for broken speakers! Use this at your own risk. It works on my system but that doesn't mean it will work on yours!
- clone this repo: https://github.com/joske/audioreach-topology
- cd into it
cmake .
cmake --build .
sudo cp qcom/x1e80100/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin /lib/firmware/qcom/x1e80100/X1E80100-LENOVO-Yoga-Slim7x-tplg.bin
- reboot
- check there's no more error loading the tplg.bin file in dmesg
- clone https://github.com/joske/alsa-ucm-conf/tree/master
- copy the new files into
/usr/share/alsa/ucm2
- in particular alsa is searching for
/usr/share/alsa/ucm2/conf.d/x1e80100/LENOVO-83ED-YogaSlim714Q8X9-LNVNB161216.conf
(should be a symlink to the actual ucm file) - reboot again
The digital volume in default ucm settings is set to 84, that is way too high, I set them to 5 check /usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro/four-speakers/init.conf and /usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro/init.conf
You should now see the speakers in GNOME (or whatever desktop you use). Note that it will sound very distorted. I have not yet been able to fix this. Somewhere there is too much gain applied, no idea why, I've set all values low. That said, if you set the volume in the app playing sound very low and turn up the speaker volume, it sounds quite nice.
If the speakers don't show up, try using sudo alsaucm reload
, it may complain about some control that is not present on the machine.
Note: I've not tested the internal microphone yet.
Heads up, the TPLG main repo has the firmware now, so you can directly use https://github.com/linux-msm/audioreach-topology instead of the TPLG fork above.