You are not logged in.
I never had any sound problem at all. The sound just worked.
And I'm left with dummy output. I didn't change anything alsa/pulse related. Btw, I'm not using Nvidia hdmi but Realtek.
I could go the route suggested here: https://wiki.archlinux.org/index.php/Pu … leshooting
but I'm wondering what happened, as Suspend/Waking was never a problem for the sound?
Last edited by maboleth (2020-01-17 10:12:52)
Offline
Alright, somehow my pulseaudio in /.config was corrupted so I deleted the whole dir, reinstalled and set volume in gnome settings again. It works now after suspend, normally.
Last edited by maboleth (2020-01-09 22:28:10)
Offline
Actually, no. Still happens after suspend.
Some findings:
- It happens when music was playing and Suspend was pressed or initiated (without previously stopping the music).
- Dummy output is shown after wake, no sound can be heard.
- Sound is working normally if PC was suspended while silent (no music, no online radio streaming).
pacmd list-cards shows 0 cards, no sink.
pulseaudio -k fixes it and after a few secs, pacmd list-cards shows the card and there's a working sound. However, this is not a desirable fix. I want to get to the root of the problem.
The problem here is that this does not happen all the time! But in 1 out of 3. Enough to be very irritating, but not enough to exactly pinpoint the issue by myself. I tried reinstalling pulseaudio 13, but no avail. Same happens.
P.S. the above mentioned findings in journal were NOT related to this issue. It was about HDMI on Nvidia card, and not on this Realtek.
Last edited by maboleth (2020-01-13 00:50:58)
Offline
pactl list sinks
Sink #1
State: RUNNING
Name: auto_null
Description: Dummy Output
Driver: module-null-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 27
Mute: no
Volume: front-left: 45876 / 70% / -9,29 dB, front-right: 45876 / 70% / -9,29 dB
balance 0,00
Base Volume: 65536 / 100% / 0,00 dB
Monitor Source: auto_null.monitor
Latency: 25073 usec, configured 75012 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
Formats:
pcm
Offline
I had similar issues for a while. It only started happening with a certain kernel version. It was fixed in a later version.
Maybe your problem is also because of a certain kernel version introducing it? If you can remember when your problem first started showing up, try looking through the pacman log file (it's in "/var/log/pacman.log"). The following filters the file to just the interesting lines:
grep -E '\] (ins|upg|rem)\w+ ' /var/log/pacman.log | less +G
While I had those problems, doing "pulseaudio -k" didn't work for me to fix audio. The way I had to do it was with the following script that first "disconnects" the audio device and then a second later starts it again:
#!/bin/bash
[[ $UID = 0 ]] || exec sudo "$0"
echo 1 > '/sys/bus/pci/devices/0000:00:1b.0/remove'
sleep 1
echo 1 > /sys/bus/pci/rescan
That "0000:00:1b.0" part of the script has to be customized for a different computer. That ID is shown in the output of "lspci -D".
Last edited by Ropid (2020-01-13 01:43:43)
Offline
Thanks Ropid. I don't remember exactly, but I think it started when 5.4.10 was installed.
I could be wrong though, because this happens when audio is playing _while_ PC is being suspended. It could be that I suspended my PC before without any sound coming so all seemed good even though I possibly already had this issue (I'm a relatively new linux user)
Further, it does not happen every time, even now (usually some time have to pass between suspend -> wake. If I do it too soon, sound goes on normally).
Last edited by maboleth (2020-01-13 02:09:52)
Offline
Keeping my fingers crossed but sounds seems to be working after commenting this in default.pa
### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
Still early to tell... could be just a coincidence.
Update: Nope, after 6th suspend it gave me Dummy again. argh.
Last edited by maboleth (2020-01-13 02:24:10)
Offline
Hoped newest kernel fixed it, nope.
Can anyone help me, is it possible to explicitly say to pulseaudio not to lose/change/whatever default sink? And that is my realtek chip card.
Offline
Check dmesg after the suspend, for some reason your device doesn't become available immediately. Look at
journalctl -b --user-unit pulseaudio
as well.
Maybe also test a bigger kernel difference, check whether you can reproduce on linux-lts for example. There have been quite a few reports for various suspension issues in the 5.4 series.
Also remove the NOT solved from the title.
Last edited by V1del (2020-01-13 13:31:25)
Offline
I will dmesg after it fails and post findings here and try lts if nothing helps. Thanks!
I do think, somehow, that these commented modules help. While yesterday 6th suspend was deaf again, today I commented one more module and so far so good after numerous wakes.
### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
# load-module module-rescue-streams
### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
Not sure if this is placebo or not, keeping my fingers crossed... again. I only wonder what are the consequences of these commented out modules?
Offline
Should both be placebo, module-rescue-streams is for ensuring you are not completely mute if you remove a device (irrelevant in your case, but if you had e.g. an USB card that doesn't run into this issue, your audio would at least play from there and move back when the device restores) that one has guaranteed no bearing on this issue.
module-suspend-on-idle "might" have an effect, but if this only when you are suspending with active sound playing, then this also shouldn't be relevant as your sinks aren't suspended when actively playing. This might have a slight relevance because pulse keeps the lock on the card and if there's some interference from another source that might grab the card away from under pulse, pulse should keep it. Incidentally what are you using for playback? It might be that whatever you are using here, sees the card before pulse, continues playback without pulse, pulse can't query the card when it becomes aware, pulse generates a dummy device.
Offline
Should both be placebo, module-rescue-streams is for ensuring you are not completely mute if you remove a device (irrelevant in your case, but if you had e.g. an USB card that doesn't run into this issue, your audio would at least play from there and move back when the device restores) that one has guaranteed no bearing on this issue.
module-suspend-on-idle "might" have an effect, but if this only when you are suspending with active sound playing, then this also shouldn't be relevant as your sinks aren't suspended when actively playing. This might have a slight relevance because pulse keeps the lock on the card and if there's some interference from another source that might grab the card away from under pulse, pulse should keep it. Incidentally what are you using for playback? It might be that whatever you are using here, sees the card before pulse, continues playback without pulse, pulse can't query the card when it becomes aware, pulse generates a dummy device.
Have to agree with you there. The fact that this doesn't always help makes it rather dubious. Still, I find the whole issue rather strange, as I cannot say - hey my machine doesn't have sound after suspend. It's more like it - sometimes it does, sometimes it does not. And under certain circumstances. That's why I hoped for some setting rather than kernel bug. I'm no expert in this by any means, but this looks like some timing issue of some sorts.
As for playback, I use Lollypop for my home albums and Firefox for online radios. It happens on both.
I also have HDMI by Nividia that I have disabled it with
options snd_hda_intel probe_only=1,0
Offline
Did you double check that your indices aren't swapping out under you with e.g aplay -l ? It could be that you are disable probing the wrong device on wakeup as udev becomes aware of them.
Offline
Wake after suspend, no sound - journal:
јан 13 17:14:47 ivan-linux pulseaudio[837]: W: [alsa-sink-ALC892 Analog] alsa-util.c: Could not recover alsa device from SUSPENDED state, trying to restart PCM
јан 13 17:14:47 ivan-linux pulseaudio[837]: E: [alsa-sink-ALC892 Analog] alsa-sink.c: Error opening PCM device front:1: No such file or directory
јан 13 17:14:47 ivan-linux pulseaudio[837]: E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
јан 13 17:14:47 ivan-linux pulseaudio[837]: E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_26_00.1" card_name="alsa_card.pci-0000_26_00.1" namer>
Initiating pulseaudio -k, journal:
јан 13 17:18:36 ivan-linux systemd[781]: pulseaudio.service: Succeeded.
јан 13 17:18:36 ivan-linux systemd[781]: Starting Sound Service...
јан 13 17:18:36 ivan-linux pulseaudio[2498]: E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
јан 13 17:18:36 ivan-linux pulseaudio[2498]: E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_26_00.1" card_name="alsa_card.pci-0000_26_00.1" name>
јан 13 17:18:36 ivan-linux systemd[781]: Started Sound Service.
јан 13 17:18:36 ivan-linux pulseaudio[2498]: E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.systemd1.NoSuchUnit: Unit dbus-org.bluez.service not found.
However, nothing unusual in dmesg.
Did you double check that your indices aren't swapping out under you with e.g aplay -l ? It could be that you are disable probing the wrong device on wakeup as udev becomes aware of them.
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
It shouldn't be, alsamixer clearly said Nvidia HDMI was disabled. But ok, will delete my probe and reboot.
Last edited by maboleth (2020-01-13 16:29:57)
Offline
Nope, same happens... like, every 3rd suspend. It's so annoying.
One thing I have noticed, when it's dummy output, aplay -l shows this:
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
However, when pulseaudio is restarted Generic HD audio line is slightly changed:
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
Of course I don't exactly know what it means, but it lists Subdevices 1/1 during dummy output and 0/1 when it's actually working.
Offline
Why is it registered as generic in the first place? Did you set that? Setting that can very easily and very verifiably lead to issues like that. What's your output for
systool -vm snd_hda_intel
dmesg | grep snd
but yes at this point I'd say it's safe to assume a kernel bug, check with linux-lts or so, unless my command turns something up.
Offline
Why is it registered as generic in the first place? Did you set that? Setting that can very easily and very verifiably lead to issues like that.
That's how kernel/linux found it. I don't even know how to set that. If it's possible to change it, please feel free to tell me how.
It could be kernel bug, yes... I don't even know what to try anymore. I will try LTS some other day too.
There are the responses while the sound is working.
[ivan@ivan-linux ~]$ systool -vm snd_hda_intel
Module = "snd_hda_intel"
Attributes:
coresize = "53248"
initsize = "0"
initstate = "live"
refcnt = "6"
srcversion = "C3100F00C7A41A28089FFB6"
taint = ""
uevent = <store method only>
Parameters:
align_buffer_size = "-1"
bdl_pos_adj = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
beep_mode = "Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y"
dmic_detect = "N"
enable_msi = "-1"
enable = "Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y"
id = "(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)"
index = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
jackpoll_ms = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
model = "(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)"
patch = "(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)"
pm_blacklist = "Y"
position_fix = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
power_save = "0"
power_save_controller= "Y"
probe_mask = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
probe_only = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
single_cmd = "-1"
snoop = "-1"
Sections:
[ivan@ivan-linux ~]$ dmesg | grep snd
[ 4.561022] snd_hda_intel 0000:26:00.1: enabling device (0000 -> 0002)
[ 4.561118] snd_hda_intel 0000:26:00.1: Disabling MSI
[ 4.561128] snd_hda_intel 0000:26:00.1: Handle vga_switcheroo audio client
[ 4.561222] snd_hda_intel 0000:28:00.4: enabling device (0000 -> 0002)
[ 4.631121] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC892: line_outs=4 (0x14/0x15/0x16/0x17/0x0) type:line
[ 4.631124] snd_hda_codec_realtek hdaudioC1D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 4.631125] snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 4.631126] snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0
[ 4.631126] snd_hda_codec_realtek hdaudioC1D0: inputs:
[ 4.631128] snd_hda_codec_realtek hdaudioC1D0: Front Mic=0x19
[ 4.631129] snd_hda_codec_realtek hdaudioC1D0: Rear Mic=0x18
[ 4.631130] snd_hda_codec_realtek hdaudioC1D0: Line=0x1a
Also,
lsmod | grep '^snd' | column -t
snd_seq_dummy 16384 0
snd_seq 86016 1 snd_seq_dummy
snd_seq_device 16384 1 snd_seq
snd_hda_codec_hdmi 73728 1
snd_hda_codec_realtek 126976 1
snd_hda_codec_generic 94208 1 snd_hda_codec_realtek
snd_hda_intel 53248 6
snd_intel_nhlt 20480 1 snd_hda_intel
snd_hda_codec 155648 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 102400 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 16384 1 snd_hda_codec
snd_pcm 135168 5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer 40960 3 snd_seq,snd_pcm
snd 106496 20 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
Last edited by maboleth (2020-01-13 22:38:45)
Offline
Things have changed a little bit.
I have bought another monitor that I connect via HDMI. So now when I suspend, it's not dummy output anymore but HDMI/Displayport2.
It's like pulseaudio/linux takes the fastest opened sink after suspend and uses it. How can I say to pulseaudio "please stop !@$%!@$ using other sinks, focus/force using realtek ffs" ?!
Because, as I see, realtek is available.
[ivan@ivan-linux ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Offline
Beats me if it works as I only have the one sink.
I also don't know if it's been suggested as I searched this thread for 'default.pa' and only saw the one instance.
Have you tried this?
https://wiki.archlinux.org/index.php/Pu … utput_sink
Offline
Beats me if it works as I only have the one sink.
I also don't know if it's been suggested as I searched this thread for 'default.pa' and only saw the one instance.
Have you tried this?
https://wiki.archlinux.org/index.php/Pu … utput_sink
That's the thing I wanted to try but didn't know what to write there. Thanks!
However, even though the card is listed in aplay -l, when trying to list sinks, it displays HDMI only.
pacmd list-sinks
1 sink(s) available.
* index: 7
name: <alsa_output.pci-0000_26_00.1.hdmi-stereo-extra1>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9030
volume: front-left: 38012 / 58% / -14,19 dB, front-right: 38012 / 58% / -14,19 dB
balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 0,00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 7
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0,00 ms; range is 0,50 .. 1999,82 ms
card: 0 <alsa_card.pci-0000_26_00.1>
module: 6
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "HDMI 1"
alsa.id = "HDMI 1"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "7"
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xf7080000 irq 93"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:26:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0"
device.bus = "pci"јан 16 22:29:12 ivan-linux pulseaudio[845]: W: [alsa-sink-ALC892 Analog] alsa-util.c: Could not recover alsa device from SUSPENDED state, trying to restart PCM
јан 16 22:29:12 ivan-linux pulseaudio[845]: E: [alsa-sink-ALC892 Analog] alsa-sink.c: Error opening PCM device front:1: No such file or directory
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "10f1"
device.product.name = "GP106 High Definition Audio Controller"
device.string = "hdmi:0,1"
device.buffering.buffer_size = "352768"
device.buffering.fragment_size = "176384"
device.access_mode = "mmap+timer"
device.profile.name = "hdmi-stereo-extra1"
device.profile.description = "Digital Stereo (HDMI 2)"
device.description = "GP106 High Definition Audio Controller Digital Stereo (HDMI 2)"
alsa.mixer_name = "Nvidia GPU 84 HDMI/DP"
alsa.components = "HDA:10de0084,1458371a,00100100"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
ports:
hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: yes)
properties:
device.icon_name = "video-display"
device.product.name = "DELL U2415
"
active port: <hdmi-output-1>
It's like the first (main and only) sink is lost during suspend, as documented by ALSA.
јан 16 22:29:12 ivan-linux pulseaudio[845]: W: [alsa-sink-ALC892 Analog] alsa-util.c: Could not recover alsa device from SUSPENDED state, trying to restart PCM
јан 16 22:29:12 ivan-linux pulseaudio[845]: E: [alsa-sink-ALC892 Analog] alsa-sink.c: Error opening PCM device front:1: No such file or directory
If I'm not mistaken, it's impossible to call that sink because it's lost, as shown in the journal above.
What puzzles me even more is that simply restarting the pulseaudio -k, makes everything alright and suddenly there IS a 2nd sink.
So I'm running back and forth. Is this problem alsa or pulseaudio related? If it's alsa, how can pulseaudio find it with a simple pulseaudio-k restart? Why is the 2nd sink available, what kept it hidden in the first place?
Last edited by maboleth (2020-01-16 22:13:37)
Offline
Have you seen this?
https://gitlab.freedesktop.org/pulseaud … issues/766
Offline
Have you seen this?
https://gitlab.freedesktop.org/pulseaud … issues/766
Thanks on this. You nailed it. It's exactly the same issue I'm facing.
So it seems kernel -> nvidia proprietary driver related... without any workarounds as of now (well, except that pulseaudio -k).
Last edited by maboleth (2020-01-16 22:33:04)
Offline
I don't know, I guess it depends on why you are using the nvidia proprietary driver.
If your not a hard core gamer you might consider the nouveau driver.
The xf86-x-x drivers seem to get alot of bad publicity and video drivers are still something of a mystery to me.
So I don't know if you have any other workarounds.
Edit: almost forgot to mention, my laptop has a quadro card with the nvidia high definition sound hardware. With the nvidia blob I see it, with nouveau I don't.
Last edited by Zod (2020-01-16 22:44:35)
Offline
^ I do play games with steam and proton. Having all the power GPU gives is certainly a perk for me for current and future games. Currently the games have been working wonderfully with zero penalties. It's the same fps/experience as in Windows.
That being said, I still didn't try nouveau driver. I will do it for testing purposes (also trying to help that pulseaudio dev guy). At least we got closer to finding a real issue here.
Thanks on your laptop findings too!
Last edited by maboleth (2020-01-16 22:51:27)
Offline
Tested with nouveau drivers, 9 suspends, no sink-losing.
But alas, cannot use it. Steam games cannot even start.
Offline