So I had zero audio on Tails 7.14 with my ThinkPad X9-15 Gen 1 (Core Ultra 226V). Took me a whole evening, but I finally got the speakers working, so I figured I’d post this in case someone else has the same laptop.
The card showed up fine (sof-soundwire, CS42L43 codec + two CS35L56 amps), but nothing played. Turned out to be three problems stacked on top of each other:
- The SOF firmware shipped in Tails (2025.12) seems too new for the 6.12 kernel. dmesg was full of
failed to create module drc.100.1 and then DSP panic!, and after that nothing worked until a reboot.
- Tails doesn’t ship alsa-ucm-conf, so none of the mixer routing gets set up.
- Even with an older firmware (sof-bin v2025.01.1, which doesn’t crash), the speaker audio comes in on SoundWire port DP6, but UCM routes DP5. I only figured that out by routing the codec’s speaker outputs directly to DP5, DP6 and DP7 while a test tone was playing. Only DP6 made noise.
What I ended up doing:
- I put the sof-bin 2025.01.1 files (
sof-ipc4/lnl, sof-ipc4-lib/lnl, sof-ipc4-tplg) on the Tails USB boot partition. It’s FAT, so you have to copy with cp -rL. Then I added firmware_class.path=/usr/lib/live/mount/medium/x9-firmware to the kernel line in the boot config, so the kernel loads those instead of the stock ones.
- A small script in Dotfiles autostart sets the routing at login:
cs42l43 ASPTX1/2 Input to 15/16 (DP6)
AMPL/AMPR ASP1 TX Source to 9
cs42l43 Speaker L/R Input 1 to 7/8
- all the speaker volumes to 0dB
- I also put a WirePlumber rule in Dotfiles so it stops auto-probing the card, plus a manual PipeWire sink on
hw:sofsoundwire,2. Don’t install alsa-ucm-conf with this setup, it puts the routing back to DP5.
Now the speakers just work on every boot, no admin password needed. The internal mic, headphone jack and HDMI aren’t set up though, and a Tails update will probably overwrite the boot config so I’ll have to redo that part. Also obviously messing with the boot partition isn’t supported, so do it at your own risk.
If anyone from the Tails team reads this: a SOF firmware that actually matches the kernel, shipping alsa-ucm-conf, and that DP5/DP6 thing are probably what needs looking at for Lunar Lake laptops with this codec. I can share full logs if that helps.