Bug#1005118: module-udev-detect dont work resulting no output device

Elias Tsolis estatisticseu at gmail.com
Mon Feb 7 15:10:13 GMT 2022


Package: pulseaudio

Version: 14.2

Severity: serious
Usertags: pulseaudio, alsa, sound card, module-udev-detect, module-alsa-sink

BUG after update: PulseAudio: `module-alsa-sink` cannot be loaded 
automatically by `module-udev-detect` related also to `sudo alsa 
force-reload` which does not solve the problem reporting fail to unload 
some modules.

The command `pactl load-module module-alsa-sink` works  as workaround.

BUT when running `systemctl --user restart pulseaudio` reports "no 
output device".


`sudo alsa force-reload`

Unloading ALSA sound driver modules: snd-hrtimer snd-hda-codec-realtek 
snd-hda-codec-generic snd-hda-codec-hdmi snd-hda-intel snd-intel-dspcfg 
snd-hda-codec snd-hda-core snd-hwdep snd-soc-core snd-compress 
snd-pcm-dmaengine snd-pcm snd-seq snd-seq-device snd-timer (failed: 
modules still loaded: snd-hrtimer snd-hda-codec-realtek 
snd-hda-codec-generic snd-hda-codec-hdmi snd-hda-intel snd-intel-dspcfg 
snd-hda-codec snd-hda-core snd-hwdep snd-soc-core snd-compress 
snd-pcm-dmaengine snd-pcm snd-seq snd-seq-device snd-timer).
Loading ALSA sound driver modules: snd-hrtimer snd-hda-codec-realtek 
snd-hda-codec-generic snd-hda-codec-hdmi snd-hda-intel snd-intel-dspcfg 
snd-hda-codec snd-hda-core snd-hwdep snd-soc-core snd-compress 
snd-pcm-dmaengine snd-pcm snd-seq snd-seq-device snd-timer.


`lsb_release -a`

LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID:    Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:    bullseye


`pactl list short modules | grep detect'

6    module-udev-detect
7    module-alsa-card    device_id="1" name="pci-0000_01_00.1" 
card_name="alsa_card.pci-0000_01_00.1" namereg_fail=false tsched=yes 
fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes 
avoid_resampling=no card_properties="module-udev-detect.discovered=1"


`pulseaudio -vv --log-time`

(   0.000|   0.000) I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31, 
31)) failed
(   0.000|   0.000) I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 
9)) failed
(   0.000|   0.000) D: [pulseaudio] core-rtclock.c: Timer slack is set 
to 50 us.
(   0.003|   0.003) D: [pulseaudio] core-util.c: RealtimeKit worked.
(   0.003|   0.000) I: [pulseaudio] core-util.c: Successfully gained 
nice level -11.
(   0.003|   0.000) I: [pulseaudio] main.c: This is PulseAudio 14.2
(   0.003|   0.000) D: [pulseaudio] main.c: Compilation CFLAGS: -g -O2 
-ffile-prefix-map=/build/pulseaudio-nxcwfw/pulseaudio-14.2=. 
-fstack-protector-strong -Wformat -Werror=format-security -Wall -W 
-Wextra -pipe -Wno-long-long -Wno-overlength-strings 
-Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op 
-Wsign-compare -Wformat-security -Wmissing-include-dirs 
-Wformat-nonliteral -Wpointer-arith -Winit-self 
-Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes 
-Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow 
-Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings 
-Wno-unused-parameter -fno-common -fdiagnostics-show-option 
-fdiagnostics-color=auto
(   0.003|   0.000) D: [pulseaudio] main.c: Running on host: Linux 
x86_64 5.11.0-18-generic #19-Ubuntu SMP Fri May 7 14:22:03 UTC 2021
(   0.003|   0.000) D: [pulseaudio] main.c: Found 4 CPUs.
(   0.003|   0.000) I: [pulseaudio] main.c: Page size is 4096 bytes
(   0.003|   0.000) D: [pulseaudio] main.c: Compiled with Valgrind 
support: no
(   0.003|   0.000) D: [pulseaudio] main.c: Running in valgrind mode: no
(   0.003|   0.000) D: [pulseaudio] main.c: Running in VM: no
(   0.003|   0.000) D: [pulseaudio] main.c: Running from build tree: no
(   0.003|   0.000) D: [pulseaudio] main.c: Optimized build: yes
(   0.003|   0.000) D: [pulseaudio] main.c: FASTPATH defined, only fast 
path asserts disabled.
(   0.003|   0.000) I: [pulseaudio] main.c: Machine ID is 
04fff76710264d35b0a53ca6d1c7ff4d.
(   0.003|   0.000) I: [pulseaudio] main.c: Session ID is c1.
(   0.003|   0.000) I: [pulseaudio] main.c: Using runtime directory 
/run/user/1000/pulse.
(   0.003|   0.000) I: [pulseaudio] main.c: Using state directory 
/home/elias/.config/pulse.
(   0.003|   0.000) I: [pulseaudio] main.c: Using modules directory 
/usr/lib/pulse-14.2/modules.
(   0.003|   0.000) I: [pulseaudio] main.c: Running in system mode: no
(   0.003|   0.000) E: [pulseaudio] pid.c: Daemon already running.
(   0.003|   0.000) E: [pulseaudio] main.c: failed pa_pid_file_create().


` journalctl --user-unit=pulseaudio.service`

....

Feb 07 01:41:19 eliasc pulseaudio[2033]: GetManagedObjects() failed: 
org.freedesktop.systemd1.NoSuchUnit: Unit dbus-org.bluez.service not found.
Feb 07 15:32:41 eliasc pulseaudio[107870]: Sink output does not exist.
Feb 07 15:32:41 eliasc pulseaudio[107870]: Source input does not exist.

`journalctl -xe --user-unit pulseaudio`

Feb 07 15:48:55 eliasc pulseaudio[110879]: module-detect is deprecated: 
Please use module-udev-detect instead of module-detect!
Feb 07 15:48:55 eliasc pulseaudio[110879]: Failed to load module 
"module-alsa-sink" (argument: "device_id=0"): initialization failed.
Feb 07 15:50:11 eliasc pulseaudio[110879]: module-detect is deprecated: 
Please use module-udev-detect instead of module-detect!
Feb 07 15:50:11 eliasc pulseaudio[110879]: Failed to load module 
"module-alsa-sink" (argument: "device_id=0"): initialization failed.
Feb 07 15:50:11 eliasc pulseaudio[110879]: Failed to load module 
"module-alsa-source" (argument: "device_id=0"): initialization failed.
Feb 07 15:50:11 eliasc pulseaudio[110879]: failed to detect any sound 
hardware.
Feb 07 15:50:11 eliasc pulseaudio[110879]: Failed to load module 
"module-detect" (argument: ""): initialization failed.
Feb 07 15:50:13 eliasc pulseaudio[110879]: module-detect is deprecated: 
Please use module-udev-detect instead of module-detect!
Feb 07 15:50:13 eliasc pulseaudio[110879]: Failed to load module 
"module-alsa-sink" (argument: "device_id=0"): initialization failed.
Feb 07 15:50:41 eliasc pulseaudio[110879]: fail to open load-module.so: 
load-module.so: cannot open shared object file
Feb 07 15:50:41 eliasc pulseaudio[110879]: Failed to open module 
"load-module".
Feb 07 15:50:43 eliasc pulseaudio[110879]:  fail to open load-module.so: 
load-module.so: cannot open shared object file
Feb 07 15:50:43 eliasc pulseaudio[110879]: Failed to open module 
"load-module".
Feb 07 15:50:43 eliasc pulseaudio[110879]:  fail to open load-module.so: 
load-module.so: cannot open shared object file
Feb 07 15:50:43 eliasc pulseaudio[110879]: Failed to open module 
"load-module".
Feb 07 15:50:44 eliasc pulseaudio[110879]: fail to open load-module.so: 
load-module.so: cannot open shared object file
Feb 07 15:50:44 eliasc pulseaudio[110879]: Failed to open module 
"load-module".
Feb 07 15:50:45 eliasc pulseaudio[110879]: fail to open load-module.so: 
load-module.so: cannot open shared object file
Feb 07 15:50:45 eliasc pulseaudio[110879]: Failed to open module 
"load-module".
Feb 07 15:50:54 eliasc pulseaudio[110879]: Failed to load module 
"module-alsa-source" (argument: "device=hw:1,0"): initialization failed.
Feb 07 15:51:23 eliasc pulseaudio[110879]: Module 
"module-device-restore" should be loaded once at most. Refusing to load.
Feb 07 15:51:29 eliasc pulseaudio[110879]: Module 
"module-stream-restore" should be loaded once at most. Refusing to load.
Feb 07 15:51:38 eliasc pulseaudio[110879]: Module 
"module-augment-properties" should be loaded once at most. Refusing to 
load.
Feb 07 15:51:44 eliasc pulseaudio[110879]: Module 
"module-switch-on-port-available" should be loaded once at most. 
Refusing to load.
Feb 07 15:52:06 eliasc pulseaudio[110879]: Error opening PCM device front:0

`cat /proc/asound/cards'
  0 [PCH            ]: HDA-Intel - HDA Intel PCH
                       HDA Intel PCH at 0xf7210000 irq 34
  1 [NVidia         ]: HDA-Intel - HDA NVidia
                       HDA NVidia at 0xf7080000 irq 17

' cat /proc/asound/card0/codec#2 | grep Codec'
Codec: Realtek ALC887-VD

'lsmod | grep snd_hda_intel'
snd_hda_intel          53248  4
snd_intel_dspcfg       28672  1 snd_hda_intel
snd_hda_codec         147456  4 
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core           94208  5 
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_pcm               118784  9 
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd                    94208  19 
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_compress,snd_soc_core,snd_pcm


  `pactl list cards`

Card #0
     Name: alsa_card.pci-0000_01_00.1
     Driver: module-alsa-card.c
     part: 7
     Properties:
         alsa.card = "1"
         alsa.card_name = "HDA NVidia"
         alsa.long_card_name = "HDA NVidia at 0xf7080000 irq 17"
         alsa.driver_name = "snd_hda_intel"
         device.bus_path = "pci-0000:01:00.1"
         sysfs.path = 
"/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
         device.bus = "pci"
         device.vendor.id = "10de"
         device.vendor.name = "NVIDIA Corporation"
         device.product.id = "0fb8"
         device.product.name = "GP108 High Definition Audio Controller"
         device.string = "1"
         device.description = "GP108 High Definition Audio Controller"
         module-udev-detect.discovered = "1"
         device.icon_name = "audio-card-pci"
     parts:
         output:hdmi-stereo: Έξοδος Digital Stereo (HDMI) (sinks: 1, 
sources: 0, priority: 5900, available: no)
         output:hdmi-surround: Έξοδος Digital Surround 5.1 (HDMI) 
(sinks: 1, sources: 0, priority: 800, available: no)
         output:hdmi-surround71: Έξοδος Digital Surround 7.1 (HDMI) 
(sinks: 1, sources: 0, priority: 800, available: no)
         output:hdmi-stereo-extra1: Έξοδος Digital Stereo (HDMI 2) 
(sinks: 1, sources: 0, priority: 5700, available: no)
         output:hdmi-surround-extra1: Έξοδος Digital Surround 5.1 (HDMI 
2) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-surround71-extra1: Έξοδος Digital Surround 7.1 
(HDMI 2) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-stereo-extra2: Έξοδος Digital Stereo (HDMI 3) 
(sinks: 1, sources: 0, priority: 5700, available: no)
         output:hdmi-surround-extra2: Έξοδος Digital Surround 5.1 (HDMI 
3) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-surround71-extra2: Έξοδος Digital Surround 7.1 
(HDMI 3) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-stereo-extra3: Έξοδος Digital Stereo (HDMI 4) 
(sinks: 1, sources: 0, priority: 5700, available: no)
         output:hdmi-surround-extra3: Έξοδος Digital Surround 5.1 (HDMI 
4) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-surround71-extra3: Έξοδος Digital Surround 7.1 
(HDMI 4) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-stereo-extra4: Έξοδος Digital Stereo (HDMI 5) 
(sinks: 1, sources: 0, priority: 5700, available: no)
         output:hdmi-surround-extra4: Έξοδος Digital Surround 5.1 (HDMI 
5) (sinks: 1, sources: 0, priority: 600, available: no)
         output:hdmi-surround71-extra4: Έξοδος Digital Surround 7.1 
(HDMI 5) (sinks: 1, sources: 0, priority: 600, available: no)
         off: Ανενεργό (sinks: 0, sources: 0, priority: 0, available: yes)
    is active: off
     Ports:
         hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, 
latency offset: 0 usec, not available)
             Properties:
                 device.icon_name = "video-display"
            part: output:hdmi-stereo, output:hdmi-surround, 
output:hdmi-surround71
         hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 
5800, latency offset: 0 usec, not available)
             Properties:
                 device.icon_name = "video-display"
            part: output:hdmi-stereo-extra1, 
output:hdmi-surround-extra1, output:hdmi-surround71-extra1
         hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 
5700, latency offset: 0 usec, not available)
             Properties:
                 device.icon_name = "video-display"
             Τμήμα των κατατομών: output:hdmi-stereo-extra2, 
output:hdmi-surround-extra2, output:hdmi-surround71-extra2
         hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 
5600, latency offset: 0 usec, not available)
             Properties:
                 device.icon_name = "video-display"
            Part: output:hdmi-stereo-extra3, 
output:hdmi-surround-extra3, output:hdmi-surround71-extra3
         hdmi-output-4: HDMI / DisplayPort 5 (type: HDMI, priority: 
5500, latency offset: 0 usec, not available)
             Properties:
                 device.icon_name = "video-display"
             Part: output:hdmi-stereo-extra4, 
output:hdmi-surround-extra4, output:hdmi-surround71-extra4

` pactl list sinks    `
Sink #0
     State: RUNNING
     Name: auto_null
     Description: Εικονική έξοδος
     Driver: module-null-sink.c
     Sample Specification: s16le 2ch 44100Hz
     Channel Map: front-left,front-right
     Owner Module: 12
     Mute: no
     Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 
100% / 0.00 dB
             balance 0.00
     Base Volume: 65536 / 100% / 0.00 dB
     Monitor Source: auto_null.monitor
     Latency: 11876 usec, configured 23220 usec
     Flags: DECIBEL_VOLUME LATENCY SET_FORMATS
     Properties:
         device.description = "Εικονική έξοδος"
         device.class = "abstract"
         device.icon_name = "audio-card"
     Formats:
         pcm

`pactl load-module module-alsa-sink`


`sudo gedit /etc/pulse/default.pa`

#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)

.fail

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties

### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available

### Use hot-plugged devices like Bluetooth or USB automatically (LP: 
#1702794)
.ifexists module-switch-on-connect.so
load-module module-switch-on-connect
.endif

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output 
source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output 
source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev 
support)
load-module module-detect
.endif

### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
#load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
#load-module module-bluetooth-discover
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv

### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 
rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor

### Load additional modules from GSettings. This can be configured with 
the paprefs tool.
### Please keep in mind that the modules configured by paprefs might 
conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif


### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent 
modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Honour intended role device property
load-module module-intended-roles

### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif

### Enable positioned event sounds
load-module module-position-event-sounds

### Cork music/video streams when a phone stream is active
load-module module-role-cork

### Block audio recording for snap confined packages unless they have
### the "pulseaudio" or "audio-record" interfaces plugged.
.ifexists module-snap-policy.so
load-module module-snap-policy
.endif

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply

### Make some devices default
set-default-sink output
set-default-source input


Sincerely,

Elias Tsolis

Statistician / Psychologist






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-pulseaudio-devel/attachments/20220207/60118c84/attachment-0001.htm>
-------------- next part --------------
An embedded message was scrubbed...
From: Elias Tsolis <estatisticseu at gmail.com>
Subject: BUG after update: PulseAudio: `module-alsa-sink` cannot be loaded automatically by `module-udev-detect`
Date: Mon, 7 Feb 2022 16:35:19 +0200
Size: 27487
URL: <http://alioth-lists.debian.net/pipermail/pkg-pulseaudio-devel/attachments/20220207/60118c84/attachment-0001.eml>


More information about the pkg-pulseaudio-devel mailing list