10

After upgrading from Linux 5.3 to Linux v5.4.2 on Arch Linux, all of my audio stopped working. The only thing I see in Gnome 3’s Sound settings is “Dummy Output” and aplay --list-pcm says: “No card(s) found.” and running alsactl init says: “alsactl: init:1759: No soundcards found.”

I’ve tried many solutions already.

hopeseekr
  • 1,622
  • 5
  • 17
  • 24

8 Answers8

26

Here is how I was able to resolve this:

  1. sudo vim /etc/default/grub
  2. Find GRUB_CMDLINE_LINUX_DEFAULT and add snd_hda_intel.dmic_detect=0 to the end of it. (ex: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 snd_hda_intel.dmic_detect=0")
  3. sudo grub-mkconfig -o /boot/grub/grub.cfg
  4. Reboot the system.
hopeseekr
  • 1,622
  • 5
  • 17
  • 24
  • 1
    Any explanation about that option? – Biswapriyo Dec 11 '19 at 18:45
  • 6
    HOW DO I UPVOTE THIS A BILLION TIMES? NOTHING OUT THERE WORKED AND I HAVE BEEN TO GOOGLE'S SECOND PAGE. THIS DID. THAT HOPE IN YOUR NAME MEANS SOMETHING SIR – figs_and_nuts Mar 21 '20 at 20:01
  • this comment tho ^ – Aviad Apr 07 '20 at 12:45
  • After adding this option, do you still have microphone working? – wij Apr 21 '20 at 14:54
  • 1
    I had to scour the internet for over 3 days before i found all this and painstakingly pieced it all together. It was excruciating!! – hopeseekr May 26 '20 at 06:51
  • Please don't forget to upvote my question, too, as i did this just to save you guys my utter frustration. – hopeseekr May 26 '20 at 06:52
  • @Biswapriyo I have no explanation. This is an arcane magick incarnation I pieced together from scouring the entire Internet, including kernel emails :-/ – hopeseekr May 26 '20 at 06:54
  • 2
    Works for me, but some people report they put the option in `/etc/modprobe.d/alsa-base.conf` instead, which seems less invasive than changing the grub configuration? – Bram Oct 05 '20 at 01:50
  • This saved my butt again on 20 October 2020. – hopeseekr Oct 20 '20 at 19:05
  • I don't know why but this didn't work for me. The problem popped up after Jun 15 2022 update. as mentioned above I had to change alsa-base.conf as in https://askubuntu.com/questions/1169798/i-still-get-dummy-output-for-audio-after-installing-alsa-base-and-pulseaudio. – steven smith Jul 15 '22 at 23:52
9

The option snd_hda_intel.dmic_detect=0 is deprecated on newer kernels, you may use snd-intel-dspcfg.dsp_driver=1 instead. But be aware, it's slightly different meaning.

CyclingSir
  • 91
  • 1
  • 1
  • Still no mic after this, only speakers. Any clue? – RubenCaro Jun 26 '20 at 19:58
  • This literally didn’t work for me. Doing `echo snd-intel-dspcfg.dsp_driver=1 > /etc/modprobe.d/alsa.conf`. The sound cards are completely undetected still. – hopeseekr Oct 20 '20 at 19:13
  • IIRC, the file I found this is: https://github.com/torvalds/linux/blob/ed8780e3f2ecc82645342d070c6b4e530532e680/sound/pci/hda/hda_intel.c#L166 When I tested it with some hardware no longer in my possession, I added it as a boot parameter modifying the grub config as described in the accepted answer and did not modify the alsa.conf – CyclingSir Oct 28 '20 at 18:32
  • 1
    @hopeseekr Try `echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf` instead. – Dario Seidl Oct 12 '21 at 20:38
2

If you want to persist the kernel parameters (for example on Pop_OS!), you'll have to use kernelstub to append the parameter.

Either use sudo kernelstub -a intel-dspcfg.dsp_driver=1 or sudo kernelstub -a snd_hda_intel.dmic_detect=0 (depending on kernel version). Then you can check if it was appended with running the command sudo cat /boot/efi/loader/entries/Pop_Os-current.conf.

If you append the parameter directly it will get overwritten after rebooting.

  • What needs to be run after this command for PopOS? I tried running that but I don't know what it's doing or what I should expect. – davidparks21 Nov 01 '20 at 03:27
  • @davidparks21 I added a command to check if it was appended (see above). You can delete it again with the command `sudo kernelstub -d intel-dspcfg.dsp_driver=1` or `sudo kernelstub -d snd_hda_intel.dmic_detect=0` – armadill013 Nov 02 '20 at 08:55
1

Above solution by hopeseekr seems to be working for Dell G3 3590 with Nvidia GTX 1650 for newest ubuntu 20.04 installation in Dual Boot mode along with Windows 10. Initially there was no sound and no system brightness controller. I have tried following possible solutions by updating the grub but nothing seems to work :

  1. Updating /etc/default/grub with quiet splash in GRUB_CMDLINE_LINUX_DEFAULT.
  2. Updating /etc/default/grub with nouveau.nomodeset=0 in GRUB_CMDLINE_LINUX.

Checking alsamixer in the the terminal was also not showing Intel sound card. Only Nvidia sound card was detected. This has completely solved the problem. I have been searching for this solution since months. It detects the intel sound card correctly in Ubuntu 18.04 installation but was failing to do so in Ubuntu 20.04.

CaldeiraG
  • 2,536
  • 7
  • 18
  • 33
Crotonix
  • 11
  • 1
1

In Recent (i.e., post 2020) Fedora or RHEL derivatives, as superuser do:

  • vim /etc/default/grub
  • Find GRUB_CMDLINE_LINUX and add snd-intel-dspcfg.dsp_driver=1 as another option inside the "quotes"
  • grub2-mkconfig -o /boot/grub2/grub.cfg
  • Reboot the system.

This recipe assumes that you only lack being able to detect your physical device, therefore, the ALSA, lame, VLC, etc., drivers and/or plugins, plus other multimedia stuff, has already been installed by following other tutorials (if necessary) and your user is part of the audio group. A device name should appear if you type lspci -v | grep -A 7 -i Audio

0

This seems to be caused by the config option SND_HDA_INTEL_DETECT_DMIC being enabled in the 5.4 kernel (https://bugs.archlinux.org/task/64720).

The suggested fix is to undo the change by passing snd_hda_intel.dmic_detect=0 as a kernel parameter, as explained in this answer.

  • `SND_HDA_INTEL_DETECT_DMIC` was removed in favour of `SND_INTEL_DSP_CONFIG`. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=82d9d54a6c0ee8b12211fa4e59fd940a2da4e063 – igor Aug 14 '23 at 19:07
0

Current solution may be that: add snd-intel-dspcfg.dsp_driver=0 in kernel parameters (/boot/grub2/grub.cfg to end of line linux or other places depend of your bootloader)

0

What worked for me, on Debian unstable with this sound card:

lspci -nn | grep -i audio         
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)

was

echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf

With this option, it uses the legacy snd_hda_intel instead of SOF.

Dario Seidl
  • 3,735
  • 1
  • 20
  • 22
  • However, the older message on the kernel says: `DMICs cannot be handled by the HDaudio legacy driver and are currently only supported by the SOF driver.` So this has fixed sound for me, but no mic. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=82d9d54a6c0ee8b12211fa4e59fd940a2da4e063 – igor Aug 14 '23 at 19:09