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:
- Audio devices not detected after fedora 39 update
- Headset mic not working/not recognized by Fedora 38
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)