Headphone jack not detected in fedora 34

My headphone jack/mic dual jack on my Dell Latitude 5289 doesn’t seem to be to be detected. i have checked in alsa-mixer and pavucontrol and they don’t see that i have a headphone jack. Any ideas on how to fix it?

I had a similar problem with my surround sound not being detected properly on my Fedora Linux 34 PC. I found the following old fedoraforum.org post extremely helpful:

Excerpted from Missing surrounnd71 profile in sound:

Wrong model auto detection maybe?

Is your sound card driver using the right model?

  • Add manually your sound card model to sound.conf in /etc/modprobe.d

    FIX ME there must be a better way to identify and correct wrong model identification in the driver modules.

  • Getting the audio module in use:

    lspci -v | grep -iA10 audio | grep modules

  • Getting the driver’s codec name:

    cat /proc/asound/Intel/codec#0 | grep -i codec

    1. The path used in cat depends on your sound card, one can look inside /proc/asound to find out the exact path.
  • Find the model list on http://git.alsa-project.org/ → alsa-kmirror.git(tree) → Documentation(tree) → HD-Audio-Models.txt and check what model your hardware is compatible with.

  • Create the file:

    $ su -
    # echo 'options snd-hda-intel model=[model here]' > /etc/modprobe.d/sound.conf
    

---------- Post added at 08:01 PM CDT ---------- Previous post was at 07:47 PM CDT → --------

You want to be looking for something like “7 stack” a.k.a. “7 jacks”

If you hardware is the ACL882 I don’t think it has 7 jacks, did you count them?

http://git.alsa-project.org/?p=alsa-kmirror.git;a=blob;f=Documentation/HD-Audio-Models.txt;h=1d38b0dfba95f6138038716f215991c0f7fd6be9;hb=HEAD#l117

---------- Post added at 08:09 PM CDT ---------- Previous post was at 08:01 PM CDT ----------

Brief explanation of what the model parameter can do for you.

http://git.alsa-project.org/?p=alsa-kmirror.git;a=blob;f=Documentation/HD-Audio.txt;h=bdafdbd32561afa6e85ada5bef103085af94dbd7;hb=HEAD#l139

The above guide combined with the tip in the following post allowed me to finally get my 7.1 surround sound working on my Fedora Linux 34 system. Also, my headphone and microphone jacks detect properly.

https://forum.kodi.tv/showthread.php?tid=259533&pid=2242319#pid2242319

Screenshots of my sound settings in GNOME control center (and they all work :slightly_smiling_face: ):

I had to ditch PipeWire and run directly on ALSA though :confused: . I didn’t uninstall pipewire. Rather, I stopped, disabled, and masked it (don’t forget to add --user to systemctl when doing so).

Below are what the to files I added to my /etc/modprobe.d directory look like (your’s will likely be different):

[/home/gregory]$ cat /etc/modprobe.d/sound.conf 
options snd-hda-intel model=dual-codecs
[/home/gregory]$ cat /etc/modprobe.d/alsa.conf 
options snd_hda_codec_hdmi static_hdmi_pcm=1

And this is what my global alsa configuration file looks like:

[/home/gregory]$ cat /etc/asound.conf 
pcm.!default {
	type asym
	playback.pcm "hdmi:CARD=HDMI,DEV=0"
	capture.pcm "plug:rnnoise"
}

ctl.!default {
	type hw
	card 1
}

As can be seen above, I also installed the ALSA RNNoise filter for my microphone.

All in all, it was quite an ordeal, but it can be done!

Blockquote

  • Find the model list on http://git.alsa-project.org/ → alsa-kmirror.git(tree) → Documentation(tree) → HD-Audio-Models.txt and check what model your hardware is compatible with.

i looked here but i couldn’t find the documentation(tree) to find it. so i’m stuck at this step

Is it here?: models.rst - Documentation/sound/hd-audio/models.rst - Linux source code (v5.11.15) - Bootlin

Ok i got it to work!
What i ended up doing was:

  1. Create /etc/modprobe.d/alsa-base.conf with the right options

cat /etc/modprobe.d/alsa-base.conf

options snd-hda-intel model=dell-headset-multi
  1. install alsa-tools
sudo dnf install alsa-tools
  1. open up hda
hdajackretask
  1. set correct options. Other posts i found didn’t include that you had to “show unconnected pins” and you have to do advanced override because the default outputs to both the speakers and head phone. Change pin id 0x19 to device: microphone connectivity jack and nothing else should need to be changed

and pin id 0x21 like this including device: headphone, connectivity: jack and it defaults i think to channel (in groups) with two different channels change it as shown to front.

Now it works perfect for me. it will also show a dialog when plugging a headphone into the jack afterward asking if its headphones, headset or microphone. (Though as i type this this dialog crashed not allowing me to select it but its been working otherwise)

thanks for the help!

1 Like

Update!

i rebooted today and now when i switch to the headphone jack in sound settings i get sound out both the headphone jack and the speakers at the same time. Any ideas on what to do?

I have the same problem with my PC – audio on line out while the headphone is connected. It isn’t really a problem for me though because I normally toggle between HDMI out and headphone out and I don’t normally use the line out. The only info I could find online with a little searching was the following:

Excerpted from More Notes on HD-Audio Driver — The Linux Kernel documentation


Another related problem is the automatic mute of speaker output by headphone plugging. This feature is implemented in most cases, but not on every preset model or codec-support code.

In anyway, try a different model option if you have such a problem. Some other models may match better and give you more matching functionality. If none of the available models works, send a bug report. See the bug report section for details.

Update:
looks like i may have fixed it. I tried a few different models and nothing work. I did some more searching and found this bug

The last comment has a different set of settings for hdajackretask:

- /etc/modprobe.d/alsa-base.conf
options snd-hda-intel model=dell-headset-multi

- hdajackretask (Advanced override)
Pin ID: 0x19
Connectivity: Jack
Device: Microphone
Jack detection: Not Present
Channel group: 3
Channel (in group): Channel 24 & 25

Pin ID: 0x1a
Connectivity: Not connected

Pin ID: 0x21
Connectivity: Jack
Device: Headphone
Jack detection: Present
Channel group: 3
Channel (in group): Channel 30 & 31

i have rebooted and it still works only sending audio out the headphone (in sound settings it even switches automatically to “headphones” with this setup.

1 Like

It looks like this has been a bug since 2017