For a little while I used the model=dell-headset-multi
solution from this post to get the headset mic working. But having “Headset Mic” and “Headphone Mic” devices, only one of which worked, annoyed me. So I read some docs and played around with hdajackretask
and came up with something that seems to work somewhat better.
- First, make sure your kernel is compiled with
CONFIG_SND_HDA_PATCH_LOADER=y
. - Create a patch file in
/lib/firmware/hda-audio-patch.fw
(the exact filename doesn’t matter), with contents[codec] 0x10ec0295 0xf1110001 0 [pincfg] 0x19 0x03a1112c
- Create a file in
/etc/modprobe.d/hda-audio-patch.conf
(again, the specific filename doesn’t matter) with contents
If you didn’t name the file in step 2# Patch the sound card. # https://01.org/linuxgraphics/gfx-docs/drm/sound/hd-audio/notes.html # # Note this refers to /lib/firmware/hda-audio-patch.fw. options snd-hda-intel patch=hda-audio-patch.fw
hda-audio-patch.fw
, change the references in there of course.
When you reboot (or unload and reload the snd-hda-intel kernel module), you should see lines in the kernel logs like
snd_hda_intel 0000:00:1f.3: Applying patch firmware 'hda-audio-patch.fw'
snd_hda_intel 0000:00:1f.3: firmware: direct-loading firmware hda-audio-patch.fw
and your mixer should then show controls for both “Internal Mic” and “Mic”.
I also found a few other things:
- If you add a line
0x1b 0x908001f0
to that hda-audio-patch.fw file, you’ll get a “Line” input alongside “Internal Mic” and “Mic”. This is something of a loopback, it lets you record the audio as it’s being output. - While BIOS can beep through the sound card, probably via a hardware pin, it doesn’t seem that there’s a “beep generator audio widget” on the Realtek ALC295 codec for Linux to use. Or if there is, it needs some magic (that no one seems to know about) to make it show up.