0

I have a Dummy Output appearing in my Output Devices and no sound works. I already read lots of questions on this site, but no proposed soltion worked for me persistently.

Diagnostics

lspci -nnk | grep -A3

06:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1637]
        Subsystem: Lenovo Device [17aa:5082]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
--
06:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor [1022:15e2] (rev 01)
        Subsystem: Lenovo Raven/Raven2/FireFlight/Renoir Audio Processor [17aa:5084]
        Kernel driver in use: snd_rn_pci_acp3x
        Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x
06:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]
        Subsystem: Lenovo Family 17h (Models 10h-1fh) HD Audio Controller [17aa:5082]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

fuser -v /dev/snd/*

                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  jonas      1176 F.... pulseaudio
/dev/snd/controlC2:  jonas      1176 F.... pulseaudio

find /lib/modules | grep snd | grep hda | grep intel

/lib/modules/5.4.0-52-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
/lib/modules/5.4.0-52-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
/lib/modules/5.4.0-52-generic/kernel/sound/soc/intel/boards/snd-soc-skl_hda_dsp.ko
/lib/modules/5.4.0-52-generic/kernel/sound/pci/hda/snd-hda-intel.ko
/lib/modules/5.4.0-52-generic/kernel/sound/hda/snd-intel-dspcfg.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/intel/boards/snd-soc-skl_hda_dsp.ko
/lib/modules/5.8.0-25-generic/kernel/sound/pci/hda/snd-hda-intel.ko
/lib/modules/5.8.0-25-generic/kernel/sound/hda/snd-intel-dspcfg.ko

Here is what I tried:

1. pulseaudio -k && sudo alsa force-reload

If I issue this command often enough (roughly around 3-7 times), then eventually my speakers appear as an output device and sound works. However, after rebooting, this does not work again.

How can I make this consistent?

Typical output of this command looks like

Unloading ALSA sound driver modules: snd-soc-dmic snd-acp3x-rn snd-acp3x-pdm-dma snd-soc-core snd-compress snd-hda-codec-hdmi snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-intel snd-seq-midi snd-seq-midi-event snd-intel-dspcfg snd-hda-codec snd-rawmidi snd-hda-core snd-seq snd-hwdep snd-pcm snd-seq-device snd-rn-pci-acp3x snd-pci-acp3x snd-timer (failed: modules still loaded: snd-soc-dmic snd-soc-core snd-compress snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-codec snd-hda-core snd-hwdep snd-pcm snd-timer).
Loading ALSA sound driver modules: snd-soc-dmic snd-acp3x-rn snd-acp3x-pdm-dma snd-soc-core snd-compress snd-hda-codec-hdmi snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-intel snd-seq-midi snd-seq-midi-event snd-intel-dspcfg snd-hda-codec snd-rawmidi snd-hda-core snd-seq snd-hwdep snd-pcm snd-seq-device snd-rn-pci-acp3x snd-pci-acp3x snd-timer.

Sometimes, the failed: modules still loaded part does not appear. But I did not recognize any different outcome.

This slightly changes aplay -l to

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

so for card 1 it now is Subdevices: 0/1 instead of Subdevices: 1/1.

2. adding lines to /etc/modprobe.d/alsa-base

According to the solution in this question I added the line

options snd-hda-intel model=generic

to /etc/modprobe.d/alsa-base. This actually replaces the Dummy output by HD-Audio Generic Digital Stereo (HDMI). I guess this enables the HDMI audio output? I can't test this, but the speaker does not work.

This changed the output of aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The other two proposed lines

options snd-hda-intel dmic_detect=0
blacklist snd_soc_skl

don't have any effect that I recognized.

3. Timidity

Some people had problems with the program timidity, but it's not installed on my system.

I'm pretty clueless, what to do now. Any help would be appreciated :)

red_trumpet
  • 1,849

1 Answers1

2

Have the same or a similar problem. Does work after sudo apt-get install --reinstall alsa-base pulseaudio or pactl load-module module-detect. But problem reappear after every reboot.

Also seen people suggest to edit /etc/pulse/default.pa by uncommenting:

load-module module-alsa-sink
load-module module-alsa-source device=hw:1,0 <-- change this to 0,0

Didn't work for me though.

  • 1
    I am in the same boat, at least you have a partial fix! The pactl load-module module-detect line works for me, only a temporary fix until either the next boot or sometimes it flakes out. But at least it works! – Scott Carey Nov 11 '20 at 00:16
  • So I took a look at /etc/pulse/default.pa and it seems like the command load-module module-detect is inside some if construction, so it is not necessarily executed. Instead it uses load-module module-udev-detect. Adding the line load-module module-detect outside of the if statement worked for me :) – red_trumpet Nov 11 '20 at 07:30
  • On the other hand, module-detect seems to be deprecated... – red_trumpet Nov 11 '20 at 07:35
  • For me pactl load-module module-udef-detect return Failure: Module initialization failed. The if-else statement in default.pa run load-module module-udef-detect if it exist but load-module module-detect otherwise. So if it exist but fail, well, we get our no detected sound problem... Ended up creating a startup script running pactl load-module module-detect since I suspect an update may revert default.pa. Hopefully we will get an update that fixes the problem, but this will do until then. – user1146815 Nov 11 '20 at 22:15
  • Actually I think the initialization failed error also occurs if the module is already loaded. So that doesn't necessarily mean udev-detect completely fails. But yeah, there seems to be some problem with this ... – red_trumpet Nov 11 '20 at 22:18
  • Everything was fine for me with 20.04 but a newer kernel. Updating to 20.10 led to this for me. Other references online indicated that rolling back alsa and/or pulseaudio did the trick for people with the same hardware on other Linux flavors. Most of the information I found overlaps with that shared in the main question here. – Scott Carey Nov 12 '20 at 00:40
  • Okay, so just adding load-module module-alsa-source device=hw:1,0 to /etc/pulse/default.pa finally did it for me. There are still some troubles with microphones, but it mostly works! – red_trumpet Nov 15 '20 at 09:50