Cannot Detect Headset Microphone (jack 3.5mm) Fedora 39 SOLUTION

Introduction words

I am a newbie Linux user, and this is my first post. If you have any additions or criticism, feel free to comment, I will be pleased to “consume” your experience.


Problem

On the newly installed Fedora 39, there was a problem with detecting the external microphone of the HyperX Cloud headset (jack 3.5mm) with one jack. Neither pavucontrol nor alsamixer showed any sign of a headset microphone. Only Internal Microphone worked (but with alien noises instead of voice, I’ll post an issue on that)


My Laptop Configuration

Model: Acer Nitro 5 AN515-57 V1.17
OS: Windows 10 + Fedora 39 (Workstation Edition)
SSD: 512Gb (40GiB on Fedora)
RAM: 2 plates of Samsung 8Gb DDR4
CPU: 11th Gen Intel i5-11400H (12) @ 4.500Ghz
GPU: NVIDIA GeForce RTX 3060 Mobile / Max-Q
GPU: Intel TigerLake-H GT1 [UHD Graphics]
Kernel: 6.6.8-200.fc39.x86_64
DE: Gnome 45.2
Sound Server: PipeWire


Cause

(Modprobe) “snd_hda_intel model” cannot automatically detect Headset-like devices. (presumably an old ones)


Related Issues

Bugzilla report:

Fedora Discussions:

Reddit:

Other:


Solution

It may depend on your device and sound server that you use. Fedora 39 Workstation has PipeWire sound server out of the box, so if you have the same setup, quick solution might help you.


At First, just check

Before beginning fixing the problem, run the following commands:

arecord -l
aplay -l

Before the solution I had:

arecrod -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC295 Analog [ALC295 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0

aplay -l
*** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC295 Analog [ALC295 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0


After the “quick solution”, “Subdevices” line changed to “Subdevices: 1/1”.


Quick solution

echo 'options snd-hda-intel model=dell-headset-multi' | sudo tee /etc/modprobe.d/alsa-base.conf

Explanation

I think my snd-hda-intel model was set on “auto” and couldn’t detect type of my device. headset-mic didn’t work for me but dell-headset-multi did work.

Don’t worry if …/alsa-base.conf doesn’t exist, it’s just a config file and can be named however you what, alsa-base.conf name is just for you to understand what it is.

Your problem also can be in the non-existing kernel modules, try run this

sudo dnf install kernel-modules

Helpful commands

  • If you want to switch from PipeWire to pulseaudio

Disable pipewire services deamons

systemctl --user --now disable pipewire  pipewire-pulse pipewire-media-session

Swap pipewire to pulseaudio

sudo dnf swap --allowerasing pulseaudio pipewire-pulseaudio

Double check whether pulseaudio daemons are running

systemctl --user --now enable pulseaudio.service pulseaudio.socket

Reboot your PC, just in case.

To switch back do it in reverse


  • To check your current audio devices
alsamixer

Do not forget to select proper audio driver (F3) and show all devices (F5)


  • To check your current audio codec (audio cards)
cat /proc/asound/card*/codec* | grep Codec

If you are here, probably you want to find a Realtek one. In my case it is Realtek ALC295.


  • Graphical audio controller for pipewire-pulseaudio
pavucontrol

Here you need to make sure that your Built-in-Audio profile is set on “Analog Stereo Duplex”


Another solution

If the first solution didn’t help you, then try follow instructions in this video (notice that it didn’t help me)

Thanks for the guide. I hope that others will find it helpful, but at the moment, I think it’s not a good fit for the Common Issues category, so I’ll move it to Ask Fedora instead. As Common Issues, we only document specific issues which impact a lot of people and are well defined (this particular bug can be worked around this particular way). General guides “if your mic doesn’t work, try some of these steps” are not a good fit for the category (it would be nice to place them somewhere, but I currently don’t have a good recommendation on where).