Skip to content

Instantly share code, notes, and snippets.

@joske
Last active November 7, 2024 20:07
Show Gist options
  • Save joske/45386018b6b5cc04d0390dc96ce402af to your computer and use it in GitHub Desktop.
Save joske/45386018b6b5cc04d0390dc96ce402af to your computer and use it in GitHub Desktop.
Speakers on Yoga Slim 7x

Speakers on Yoga Slim 7x

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!

TPLG

  • 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

UCM

  • 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.

@powpingdone
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment