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),
pavucontroldoesn’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
pavucontrolcontinues to move in response to the audio signal. - Manually switching to
Headphones (Undetected)inpavucontrolcauses audio to play very briefly in the headphones, then it goes silent. The playback indicator also stops moving. - With
Headphonesselected inpavucontrol, if you runspeaker-testin dom0, it will fail with the error:unable to set hw params for playback: Input/output error
The solution I found is this:
- Switch
pavucontrolback to Speakers - Start
alsamixer - Press
F6and 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 theMMlabel 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
alsamixerdisplays different sliders when selecting the second entry in theF6menu; it’s not like there are actually different sound cards in the laptop. Plus, both entries in the menu have the keyworddefaultanyway. 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