I’m going to post this in case anyone else has this problem.
On Thinkpad T480s, you can install Li
breboot. The information about general compatibility with Libreboot is on this page: Libreboot – Install Libreboot on Lenovo ThinkPad T480 and/or T480s
Note that there is a section about using the headphone jack. It says that there is a bug, however it works fine, as long as you use pulseaudio
; it specifically notes that it doesn’t work for pipewire
.
Unfortunately, as of Qubes r4.2, dom0 comes with pipewire
installed, and it’s not recommended to install different packages. And so, the headphone jack doesn’t work properly. To be specific:
- Plugging into the headphone jack results in audio playing on speakers to halt
- However, (as also noted on the Libreboot page),
pavucontrol
doesn’t automatically switch from Speakers to Headphones. - Although it doesn’t switch automatically, and there is no sound coming out of either speakers or headphones, the playback indicator in
pavucontrol
continues to move in response to the audio signal. - Manually switching to
Headphones (Undetected)
inpavucontrol
causes audio to play very briefly in the headphones, then it goes silent. The playback indicator also stops moving. - With
Headphones
selected inpavucontrol
, if you runspeaker-test
in dom0, it will fail with the error:unable to set hw params for playback: Input/output error
The solution I found is this:
- Switch
pavucontrol
back to Speakers - Start
alsamixer
- Press
F6
and instead of- (default)
pick the second option that readsdefault:0 HDA Intel PCH
. This will cause additional sliders to appear in the interface - Unmute the slider called
Headphone
, by clicking on theMM
label below it. Also adjust the volume
This fixed the problem for me. The parts I don’t understand are:
- why the headphones are muted in the first place
- why
alsamixer
displays different sliders when selecting the second entry in theF6
menu; it’s not like there are actually different sound cards in the laptop. Plus, both entries in the menu have the keyworddefault
anyway. It seems like the second entry activates a more advanced view of the first one? - I also don’t get why the same settings don’t seem to be exposed by
pavucontrol