When I installed Kubuntu 18.04 on my Dell Latitude 5289 the audio combo jack didn't work. Luckily thanks to this comment on Launchpad I was able to make the headphones work by overriding pin 0x21 to "Headphone" using the HDAJackRetask utility.
The problem is, this didn't make the microphone on the headset work. I've tried various things for around two days and now it's time to ask for help since I don't want to become a level 3 Linux audiomancer.
- How to get microphone on the headset working?
- Is this a problem with BIOS/UEFI? I would like to get another opinion before I go complaining on Dell forums that their BIOS is broken for an OS which isn't supported by them.
I verified that the headset itself was working on another computer using the splitter (TRRS to TRS and TS; 4-pin connector to 3-pin and 2-pin). I was testing the earphone mic by tapping with a finger on the mic and expecting a sound spike and for comparison I was tapping near the laptop's built-in mic as well.
I tried what was suggested in some other questions and added to the file
/etc/modprobe.d/alsa-base.conf the following lines (one at a time) with restart before testing.
options snd-hda-intel model=dell-headset-multi
options snd-hda-intel model=headset-mic
options snd-hda-intel model=laptop-amic
options snd-hda-intel index=0 model=dell-headset-multi
Maybe also (didn't write down, don't remember):
options snd-hda-intel model=laptop-dmic
Also I tried running the newest mainline kernel version via Ukuu tool (5.11 maybe? Sorry didn't write down). No noticeable difference.
Also I tried some slight fiddling around with
alsamixer. I hope I didn't break anything, but everything else is working.
Also throughout it all I tried a lot of overriding combinations of the unconnected pins of Realtek ALC3253. This syntax is from my own notes and indicates which pin was overridden to which device/function (disregard pin 0x21 which was needed for headphones output):
0x12=internal mic; 0x19=microphone; 0x1a=microphone; 0x21=headphones;
0x12=internal mic; 0x13=internal mic; 0x16=headphones; 0x17=headphones; 0x18=internal mic; 0x19=microphone; 0x1a=microphone; 0x1b=microphone; 0x1d=internal mic; 0x21=headphones;
0x12=internal mic; 0x16=headphones; 0x17=headphones; 0x19=microphone; 0x1a=microphone; 0x1b=microphone; 0x21=headphones;
0x12=internal mic; 0x13=internal mic; 0x16=headphones; 0x17=headphones; 0x18=internal mic; 0x1d=internal mic; 0x21=headphones;
0x12=internal mic; 0x13=internal mic; 0x18=internal mic; 0x19=microphone; 0x1a=microphone; 0x1b=microphone; 0x1d=internal mic; 0x21=headphones;
0x19=microphone; 0x1a=microphone; 0x1b=microphone; 0x21=headphones;
0x19=microphone; 0x1a=microphone; 0x21=headphones;
0x19=microphone; 0x1b=microphone; 0x21=headphones;
0x1a=microphone; 0x1b=microphone; 0x21=headphones;
I got the impression from this machine and another one that having an excessive pin overridden or missing one pin from overriding might be the difference between certain sound input or output working or not working. Since the combinatorics of this are too numerous to try out manually so I gave up.
In the above examples I was only meddling around with pins that had some kind of microphone output (without the extra possibilities of the "Advanced override" option) and I preferred "Microphone" over "Internal mic". The only other override I tried was "Headphones". Also I didn't see any "Headset mic" or "Headphone mic". I didn't try any "Dock Microphone" because it seemed irrelevant (and too many combinations!).
If you want me to list what all the possible overriding devices/functions were for each pin I can list them here as well.
I also have the poor descriptions of most of the results of pin overriding experiments displayed above. But for that I would need to make tables somehow...
Let me know what command outputs might be useful.