EDIT: solved, see below.
I have installed Ubuntu 20.04 on an MSI laptop 'Leopard GP73-8RE' with a Realtek ALC1220 sound card.
I have the following issues: by default, internal speakers do not work. However, headphones work. As I'm somewhat customary with sound issues on Linux, I investigated the usual suspects, such as muted bars in
alsamixer or wrong output device in
pavucontrol. Nothing to report on that front.
I tried switching to 'Internal Speaker', 'Internal Speaker (LFE)' and 'Internal Speaker (Back)' each unconnected pin in turn, to no avail.
Eventually, I made progress when I switched the 0x14 'Black Headphone, Rear Side' pin to 'Internal Speaker'. Now, speakers work, great. For that work, 0x1b has to stay set to 'Internal Speaker' as well.
However, I no longer have dissociated output for headphones and speakers since they both go through the same pin. As a consequence, plugging headphones in doesn't disable speakers, though headphones do still output sound.
In fact, I can only assume that, when headphones are unplugged, the system tries to output sound through an empty jack.
I tried going back to
alsamixer to check Auto-Mute, but this option has disappeared along with headphone volume bars. Indeed, as speakers and headphones now use the same pin labelled as 'Internal Speaker', alsa must not be seeing any specific channel for headphones anymore.
As a workaround, I searched for pins that allow headphones (including unconnected pins), but there were only two: 0x14 and 0x1b - and those are required by speakers.
Though I could live with that, I'd appreciate some advice to finally sort that out: I'd like speakers to work without needing to "hijack" headphones. In an ideal world, speakers work, headphones work, and plugging headphones disables speakers.
Thanks in advance
I feel dumb, I spent a lot of time researching the matter in the wrong direction (
hdajackretask in general), while other people encountered the same issue on similar MSI laptops. Here's the Bugzilla thread which pinned down the problem and found a solution. And here's an implementation of said solution (worked for me):
MSI GL73 apparently uses the same ALC1220 sound codec and also needed the same fix in sound routing as Clevo P950. As a wild guess, you might try adding a file named
/etc/modprobe.d/sound-fixup.confwith the following content:
options snd-hda-intel model=clevo-p950
update-initramfs -uas root to make sure the change will be effective in early boot also, then reboot and see if it results in an improvement. If MSI has wired your model the same as the GL73, this might fix it. If not, delete the
/etc/modprobe.d/sound-fixup.conffile and run
update-initramfs -uagain to fully get rid of the option.