Microphone not working Ubuntu 19.10
I have an Acer Swift 3 SF314-56 with Ubuntu 19.10 installed (the card is a Realtek ALC256).
My microphone does not work. I've tried lot of thing such as put the line "options snd-hda-intel model=acer-headset-multi" at the botton of the file "/etc/modprobe.d/alsa-base.conf". I've also installed HDAJackRetask and connected pin 012 and 013 to internal mic and bot ovveride. I've set Mic_Boost on alsamixer equal to zero.
Well, nothing worked. The mic is now not dectected at all. Could someone help me?
I missed an infornation. Ubuntu is installed in dual boot alongside windows 10 (which I use rarely). On windows the microphone is detected and works well.
I have been struggling through this issue for months. Apparently this is a recognized issue with devices using the Realtek ALC256 card (which includes the Acer Swift 3). There is a long thread on something similar on bugzilla.
I finally stumbled across a workaround to enable use of headset mics here: acer swift 3: microphone not working with ubuntu 18.04, to add options snd-hda-intel model=dell-headset-multi
to the alsa-base.conf
. You can follow the steps mentioned there (I did however have to restart my computer as alsa force-reload
did not do the trick for me). This worked for me on Acer Swift 3 and Ubuntu 20
Please note however, the onboard mic will still not work.
EDIT: Kernels 5.14-rc5 onwards, 5.13.10 onwards, 5.10.58 onwards have the following fix already applied, enjoy :D
So! Just made my headset microphone work on my Acer SF314-56 on Ubuntu 21.04. Happy happy happy :)
Looks like when you are using SOF driver the options snd-hda-intel ...
over at /etc/modprobe.d/*
have no effect. Thus (from my understanding) why HDAJackRetask won't help.
Also! Checkout this out! As 5.14-rc1 there is no patch for our lovely SF314-56.. hmmm...
So based on these findings here is the fix...
For custom-kernel people that is easy: Just add the following line and compile.
SND_PCI_QUIRK(0x1025, 0x1300, "Acer SWIFT SF314-56", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
over at struct snd_pci_quirk alc269_fixup_tbl[]
at sound/pci/hda/patch_realtek.c
. For the brave ones that don't know how-to compile a custom kernel but willing to here is a cool guide. If you are using secureboot then you gotta also sign it. If you are using ZFS then iirc you also need zfs-dkms.
For people who aren't willing to compile a custom-kernel nor have a time machine or just want to experiment fast on some other device
Then you gotta disable SOF and rollback to legacy driver in order to make options snd-hda-intel ...
have effect, however! this results with disabling DMIC. So add options snd-intel-dspcfg dsp_driver=1
to /etc/modprobe.d/alsa-base.conf
.
Afterwards you gotta create a patch over at /lib/firmware/
, lets name it alc256-sound-patch.fw
. Based on this documentation and the observation over at /sound/pci/hda/patch_realtek.c
that device Acer TravelMate B311R-3
has the patch we need we paste the following code. If you are using some other device this is a place for some experimentation.
[codec]
0x10ec0256 0x10251300 0
[subsystem_id]
0x10251430
Finally enable the patch by also adding options snd-hda-intel patch=alc256-sound-patch.fw
to /etc/modprobe.d/alsa-base.conf
. Then restart.
If you want also add options snd-hda-codec dyndbg=+p
in order to have some more info over at dmesg.
If anyone know how to use options snd-hda-intel
with SOF please let us know how-to!