Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Yet Another "Dummy Output" issue with pipewire
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Multimedia
View previous topic :: View next topic  
Author Message
alecStewart1
Tux's lil' helper
Tux's lil' helper


Joined: 03 Jul 2022
Posts: 149

PostPosted: Sun Apr 28, 2024 2:16 pm    Post subject: Yet Another "Dummy Output" issue with pipewire Reply with quote

Hey gang,

Yup, yet another user issue with only getting "Dummy output" when using pipewire + pulse

Here's a bunch of info:

emerge --info

equery u pipewire
Code:

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-video/pipewire-9999:
 U I
 + + X             : Enable audible bell for X11
 + + abi_x86_32    : 32-bit (x86) libraries
 + + bluetooth     : Enable Bluetooth Support
 + + dbus          : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
 - - doc           : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
 - - echo-cancel   : Enable WebRTC-based echo canceller via media-libs/webrtc-audio-processing
 + + extra         : Build pw-cat/pw-play/pw-record
 + + ffmpeg        : Enable ffmpeg/libav-based audio/video codec support
 - - flatpak       : Enable Flatpak support
 - - gsettings     : Use gsettings (dev-libs/glib) to read/save used modules (useful for e.g. media-sound/paprefs
 + + gstreamer     : Add support for media-libs/gstreamer (Streaming media)
 - - ieee1394      : Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
 - - jack-client   : Install a plugin for running PipeWire as a JACK client
 - - jack-sdk      : Use PipeWire as JACK replacement
 - - liblc3        : Allow loading LC3 plugins via media-sound/liblc3
 - - lv2           : Allow loading LV2 plugins via media-libs/lv2
 + + man           : Build and install man pages
 - - modemmanager  : Combined with USE=bluetooth, allows PipeWire to perform telephony on mobile devices.
 - - pipewire-alsa : Replace PulseAudio's ALSA plugin with PipeWire's plugin
 + + readline      : Enable support for libreadline, a GNU line-editing library that almost everyone wants
 - - roc           : Enable roc support for real-time audio streaming over the network, using media-libs/roc-toolkit. See https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network#roc
 + + sound-server  : Provide sound server using ALSA and bluetooth devices
 + + ssl           : Enable raop-sink support (needs dev-libs/openssl)
 - - systemd       : Enable use of systemd-specific libraries and features like socket activation or session tracking
 - - test          : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
 + + v4l           : Enable support for video4linux (using linux-headers or userspace libv4l libraries)
 - - zeroconf      : Support for DNS Service Discovery (DNS-SD)


equery u wireplumber
Code:

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-video/wireplumber-9999:
 U I
 + + elogind                  : Enable session tracking via sys-auth/elogind
 - - lua_single_target_lua5-3 : Build for Lua 5.3 only
 + + lua_single_target_lua5-4 : Build for Lua 5.4 only
 - - systemd                  : Enable use of systemd-specific libraries and features like socket activation or session tracking
 - - test                     : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)


echo $XDG_RUNTIME_DIR
Code:

/home/alec/.runtime


echo $DBUS_SESSION_BUS_ADDRESS
Code:

unix:path=/tmp/dbus-JC1qeABbaD,guid=a6cd69048728b7647a2802d5662e464f


lspci | grep ^audio
Code:

00:1f.3 Audio device: Intel Corporation Alder Lake-S HD Audio Controller (rev 11)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller


sudo lsmod | rg snd_hda_intel
Code:

snd_hda_intel          65536  0
snd_intel_dspcfg       40960  3 snd_hda_intel,snd_sof,snd_sof_intel_hda_common
snd_hda_codec         233472  4 snd_hda_codec_hdmi,snd_hda_intel,snd_soc_hdac_hda,snd_sof_intel_hda
snd_hda_core          155648  7 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_sof_intel_hda_common​,snd_soc_hdac_hda,snd_sof_intel_hda
snd_pcm               217088  12 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,soundwire_intel,snd_sof​,snd_sof_intel_hda_common,snd_compress,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pcm_dmaengine
snd                   163840  13 snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib​,snd_hda_codec,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi


aplay --list-devices
Code:

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 10: HDMI 4 [VG27WQ]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 3: USB Audio [USB Audio #3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


arecord -L
Code:

null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault
    Default Audio Device
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
pulse
    PulseAudio Sound Server
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
usbstream:CARD=HDMI
    HDA ATI HDMI
    USB Stream Output
usbstream:CARD=PCH
    HDA Intel PCH
    USB Stream Output
sysdefault:CARD=Audio
    USB Audio, USB Audio #1
    Default Audio Device
front:CARD=Audio,DEV=0
    USB Audio, USB Audio
    Front output / input
usbstream:CARD=Audio
    USB Audio
    USB Stream Output


pactl list sinks
Code:

Sink #34
        State: SUSPENDED
        Name: auto_null
        Description: Dummy Output
        Driver: PipeWire
        Sample Specification: float32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        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: 0 usec, configured 0 usec
        Flags: DECIBEL_VOLUME LATENCY
        Properties:
                node.name = "auto_null"
                device.description = "Dummy Output"
                audio.rate = "48000"
                audio.channels = "2"
                audio.position = "FL,FR"
                media.class = "Audio/Sink"
                factory.name = "support.null-audio-sink"
                node.virtual = "true"
                monitor.channel-volumes = "true"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "33"
                node.driver = "true"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "32"
                object.serial = "34"
        Formats:
                pcm


wpctl status
Code:

PipeWire 'pipewire-0' [1.1.0, alec@gentoo, cookie:2846063336]
 └─ Clients:
        33. pipewire                            [1.1.0, alec@gentoo, pid:6400]
        34. xfce4-pulseaudio-plugin             [1.1.0, alec@gentoo, pid:6361]
        35. WirePlumber                         [1.1.0, alec@gentoo, pid:6378]
        47. WirePlumber [export]                [1.1.0, alec@gentoo, pid:6378]
        48. wpctl                               [1.1.0, alec@gentoo, pid:10056]

Audio
 ├─ Devices:
 │
 ├─ Sinks:
 │  *   32. Dummy Output                        [vol: 1.00]
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_03_00.1.hdmi-stereo-extra4
         1. Audio/Source  alsa_output.usb-Generic_USB_Audio-00.HiFi_7_1__hw_Audio_3__sink


pw-cli ls Node
Code:

        id 29, type PipeWire:Interface:Node/3
                object.serial = "29"
                factory.id = "11"
                priority.driver = "20000"
                node.name = "Dummy-Driver"
        id 30, type PipeWire:Interface:Node/3
                object.serial = "30"
                factory.id = "11"
                priority.driver = "19000"
                node.name = "Freewheel-Driver"
        id 32, type PipeWire:Interface:Node/3
                object.serial = "34"
                factory.id = "19"
                client.id = "33"
                node.description = "Dummy Output"
                node.name = "auto_null"
                media.class = "Audio/Sink"


What is in ~/.asoundrc
Code:

# pcm.!default {
#     type hw
#     card Audio
# }

# ctl.!default {
#     type hw
#     card Audio
# }

defaults.pcm.card 2
defaults.pcm.device 1
defaults.ctl.card 2
defaults.pcm.dmix.rate 48000


cat /proc/asound/devices
Code:

  2: [ 1]   : control
  3: [ 0- 3]: digital audio playback
  4: [ 0- 7]: digital audio playback
  5: [ 0- 8]: digital audio playback
  6: [ 0- 9]: digital audio playback
  7: [ 0-10]: digital audio playback
  8: [ 0-11]: digital audio playback
  9: [ 0- 0]: hardware dependent
 10: [ 0]   : control
 11: [ 2- 0]: digital audio playback
 12: [ 2- 0]: digital audio capture
 13: [ 2- 1]: digital audio playback
 14: [ 2- 1]: digital audio capture
 15: [ 2- 2]: digital audio playback
 16: [ 2- 2]: digital audio capture
 17: [ 2- 3]: digital audio playback
 18: [ 2]   : control
 33:        : timer


My user is in the audio, video and pipewire groups.

[Moderator edit: broke long whitespace-free lines in code tags to fix thread layout. -Hu]
Back to top
View user's profile Send private message
telestraw
n00b
n00b


Joined: 01 Mar 2024
Posts: 3

PostPosted: Sun Apr 28, 2024 5:41 pm    Post subject: Reply with quote

Try enabling the pipewire-alsa USE flag.

Also, it may be pipewire/pulseaudio conflicting not sure.
Back to top
View user's profile Send private message
username2000
n00b
n00b


Joined: 29 Apr 2024
Posts: 1

PostPosted: Mon Apr 29, 2024 12:04 pm    Post subject: Reply with quote

Hello, I'm new user here. I'm also running into this issue.
I tried enabling pipewire-alsa USE flag but it didn't work.
Back to top
View user's profile Send private message
alecStewart1
Tux's lil' helper
Tux's lil' helper


Joined: 03 Jul 2022
Posts: 149

PostPosted: Tue Apr 30, 2024 12:04 am    Post subject: Reply with quote

telestraw wrote:
Try enabling the pipewire-alsa USE flag.

Also, it may be pipewire/pulseaudio conflicting not sure.


I don't believe I have anything with pulseaudio running. The following you'll see that all the pulse related things are commented out in my /usr/share/pipewire/ directory:
Code:

# rg 'pulse' /usr/share/pipewire/*
/usr/share/pipewire/pipewire.conf
337:    # You can optionally start the pulseaudio-server here as well
342:    #{ path = "/usr/bin/pipewire" args = [ "-c" "pipewire-pulse.conf" ]
343:    #  condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }

/usr/share/pipewire/pipewire-avb.conf
1:# PulseAudio config file for PipeWire version "1.1.0" #
7:# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
8:# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.

/usr/share/pipewire/minimal.conf
48:    # Load the pulseaudio emulation daemon
49:    minimal.use-pulse = true
153:    { name = libpipewire-module-protocol-pulse
154:      condition = [ { minimal.use-pulse = true } ]
158:pulse.properties = {
435:    # You can optionally start the pulseaudio-server here as well
440:    ##{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }

/usr/share/pipewire/pipewire-pulse.conf
1:# PulseAudio config file for PipeWire version "1.1.0" #
7:# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
8:# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
43:    { name = libpipewire-module-protocol-pulse
45:         # contents of pulse.properties can also be placed here
52:# a script or in pulse.cmd below
63:pulse.cmd = [
88:pulse.properties = {
103:    #server.dbus-name       = "org.pulseaudio.Server"
104:    #pulse.min.req          = 128/48000     # 2.7ms
105:    #pulse.default.req      = 960/48000     # 20 milliseconds
106:    #pulse.min.frag         = 128/48000     # 2.7ms
107:    #pulse.default.frag     = 96000/48000   # 2 seconds
108:    #pulse.default.tlength  = 96000/48000   # 2 seconds
109:    #pulse.min.quantum      = 128/48000     # 2.7ms
110:    #pulse.idle.timeout     = 0             # don't pause after underruns
111:    #pulse.default.format   = F32
112:    #pulse.default.position = [ FL FR ]
115:pulse.properties.rules = [
120:                pulse.min.quantum = 1024/48000      # 22ms
127:pulse.rules = [
169:                pulse.min.req          = 512/48000      # 10.6ms
170:                pulse.min.quantum      = 512/48000      # 10.6ms
171:                pulse.idle.timeout     = 5              # pause after 5 seconds of underrun


So I'm not 100% sure. I'll look around for some more stuff here in a bit.
Back to top
View user's profile Send private message
alecStewart1
Tux's lil' helper
Tux's lil' helper


Joined: 03 Jul 2022
Posts: 149

PostPosted: Sat May 04, 2024 5:56 pm    Post subject: Reply with quote

Okay, so, the HDMI sound output is a card 0 device 10, or hdmi:CARD=HDMI,DEV=4

aplay --list-devices:

Code:

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 10: HDMI 4 [VG27WQ] # <-- this one
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 3: USB Audio [USB Audio #3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


aplay -L

Code:

null
    Discard all samples (playback) or generate zero samples (capture)
default
    Default ALSA Output (currently PipeWire Media Server)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
oss
    Open Sound System
pipewire
    PipeWire Sound Server
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA ATI HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA ATI HDMI, HDMI 2
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 3
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=4 # <-- this one
    HDA ATI HDMI, VG27WQ
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=5
    HDA ATI HDMI, HDMI 5
    HDMI Audio Output
usbstream:CARD=HDMI
    HDA ATI HDMI
    USB Stream Output
usbstream:CARD=PCH
    HDA Intel PCH
    USB Stream Output
sysdefault:CARD=Audio
    Default Audio Device
front:CARD=Audio,DEV=0
    USB Audio, USB Audio
    Front output / input
surround21:CARD=Audio,DEV=0
    USB Audio, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Audio,DEV=0
    USB Audio, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Audio,DEV=0
    USB Audio, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audio,DEV=0
    USB Audio, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audio,DEV=0
    USB Audio, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audio,DEV=0
    USB Audio, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audio,DEV=0
    USB Audio, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
iec958:CARD=Audio,DEV=1
    USB Audio, USB Audio #1
    IEC958 (S/PDIF) Digital Audio Output
usbstream:CARD=Audio
    USB Audio
    USB Stream Output


The problem is getting my system to output sound there.

Running speaker-test -t wav -c2 -Dplughw:0,10 and speaker-test -t wav -Dhdmi:CARD=HDMI,DEV=4 is how I figured it out.

Thing is, I have 0 clue how the hell I'm supposed to tell pipewire to output to hdmi:CARD=HDMI,DEV=4 or plughw:0,10. That's all I want to do, and I really don't feel like having to delve into Pipewire's god awful JSON-esque DSL where I have to create a new node or whatever.

This is in my ~/.asoundrc

Code:

# pcm.!default {
#     type hw
#     card Audio
# }

# ctl.!default {
#     type hw
#     card Audio
# }

defaults.pcm.card 0
# defaults.pcm.device 10
defaults.ctl.card 0
defaults.pcm.dmix.rate 48000


I really have no idea what to do now.
Back to top
View user's profile Send private message
garrison
Apprentice
Apprentice


Joined: 18 Mar 2003
Posts: 265

PostPosted: Sun May 05, 2024 7:24 am    Post subject: Reply with quote

alecStewart1 wrote:

This is in my ~/.asoundrc

Code:

# pcm.!default {
#     type hw
#     card Audio
# }

# ctl.!default {
#     type hw
#     card Audio
# }

defaults.pcm.card 0
# defaults.pcm.device 10
defaults.ctl.card 0
defaults.pcm.dmix.rate 48000



Move away your ~/.asoundrc and also /etc/asound.conf if that exists, then restart pipewire/wireplumber and see if that helps.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Multimedia All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum