Skip to content

Enabling sound on the HP Omnibook X14, Lenovo Thinkbook 16

Jens Glathe edited this page Apr 20, 2025 · 1 revision

Having a laptop with Linux is way more fun with working audio. Can confirm. After a lot of hesitation I finally managed to enable audio via internal speakers on the HP Omnibook X14. which is nice 🎶 I used the setup from the Thinkpad T14s and referenced it where it seems to make sense. This kind of setup also works on other Snapdragon X 2-speaker designs. I have successfully replicated it on the Lenovo ThinkBook 16. It is worth taking a look at the PRs in audioreach-topology and alsa-ucm-conf.

Caution, destroying your hardware is a real possible outcome

The WSA8884 amplifiers have some SOA config which is missing on Linux, so it is possible to fry your built-in speakers. Beware. Therefore, on Ubuntu Concept X1E kernels, you additionally need to set snd_soc_x1e80100.i_accept_the_danger as boot parameter in the kernel command line.

As a cautionary tale, one fellow adventurer managed to kill some chip by playing around with alsamixer, resulting in a constant power drain. It needed repairs. You have been warned.

Components required

The files required are not yet upstream, I hope they will eventually be there.

Setup of the topology file

The topology file must be built with cmake. Fortunately it is quite easy, as documented by @joske.

git clone https://github.com/jglathe/audioreach-topology.git
cd audioreach-topology
git checkout jg/hp-omnibook-x14
cmake .
cmake --build .

This should do without errors. The resulting .tplg.bin file should be copied over to the right location in the firmware directory.

sudo cp qcom/x1e80100/hp/omnibook-x14/X1E80100-HP-OMNIBOOK-X14-tplg.bin /lib/firmware/updates/qcom/x1e80100/

There is another possible setup where you place the .tplg.bin file into the firmware directory where all other device-specific firmware is located, and creating a symlink.

Setup of the alsa ucm files

The alsa ucm setup is also based on the Thinkpad T14s setup, only the detection of the device has been added. It doesn't need to be built, though. Only copied over. Since it can be that your version of alsa-ucm-conf is older, I recommend installing the newest one first. We need the Qualcomm/x1e80100/ and the codecs/wsa884x/ paths populated. Version 1.2.12 seems to have it.

git clone https://github.com/jglathe/alsa-ucm-conf.git
git checkout jg/hp-omnibook-x14
sudo cp ucm2/Qualcomm/x1e80100/* /usr/share/alsa/ucm2/Qualcomm/x1e80100/
cd /usr/share/alsa/ucm2/conf.d/x1e80100/
sudo ln -s ../../Qualcomm/x1e80100/x1e80100.conf x1e80100.conf

Volume safety measures

As described by @joske the gain(?) on the speaker volume is way too high (default is 84). After some experimenting I settled for the value of 5, too. I put this into a separate commit. You should copy this over to the qcom-lpass directory.

<still in alsa-ucm-conf repository>
git checkout jg/wsa8884-pa
sudo cp ucm2/codecs/qcom-lpass/wsa-macro/init.conf /usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro/

Wrap-up

After these steps, a reboot should give you sound.

Known issues

I noticed dropouts / metallic sound after a while, issues seem to center around firefox.