You are not logged in.
I currently access my Arch desktop over RDP using xrdp. I used to have a working sound setup using pulseaudio and pulseaudio-module-xrdp. This used to break intermittently but I always managed to get it back after a couple of AUR rebuilds. This time wasn't so easy and so I took the opportunity to try to move to pipewire using the relatively new pipewire-module-xrdp in the AUR. However I am struggling to get any sound here either.
I have tried following the wiki to get a basic set up running (I only need sound for things like web browsing). I've always been confused by the audio stack, so started with just ALSA and pipewire, finally installing the pulseaudio plugin too. I'm in a bit of a mess now, not knowing what I need and what I don't, but the shortest, simplest and leanest path to stereo sound is my goal.
I'm not sure how to troubleshoot this so here is some info:
❯ pacman -Q | grep wire
libpipewire 1:1.2.6-1
libwireplumber 0.5.6-1
pipewire 1:1.2.6-1
pipewire-alsa 1:1.2.6-1
pipewire-audio 1:1.2.6-1
pipewire-module-xrdp 0.1-1
pipewire-pulse 1:1.2.6-1
pipewire-session-manager 1:1.2.6-1
pipewire-x11-bell 1:1.2.6-1
wireplumber 0.5.6-1
❯ pacman -Q | grep pulse
libpulse 17.0-3
pipewire-pulse 1:1.2.6-1
❯ sudo fuser -v /dev/snd/*
❯ systemctl --user status pipewire{,-pulse} wireplumber pulseaudio
Unit pulseaudio.service could not be found.
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
Active: active (running) since Thu 2024-11-07 17:09:06 GMT; 35min ago
Invocation: c57844876d29483cbf6b75bf880dcae2
TriggeredBy: ● pipewire.socket
Main PID: 614 (pipewire)
Tasks: 4 (limit: 19103)
Memory: 4.8M (peak: 6.3M)
CPU: 19ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─614 /usr/bin/pipewire
Nov 07 17:09:06 host systemd[506]: Started PipeWire Multimedia Service.
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: enabled)
Active: active (running) since Thu 2024-11-07 17:09:06 GMT; 35min ago
Invocation: b6bcb2b8a6714d2b91e994f24b20c6a0
TriggeredBy: ● pipewire-pulse.socket
Main PID: 716 (pipewire-pulse)
Tasks: 3 (limit: 19103)
Memory: 7.5M (peak: 7.7M)
CPU: 61ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
└─716 /usr/bin/pipewire-pulse
Nov 07 17:09:06 host systemd[506]: Started PipeWire PulseAudio.
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-11-07 17:09:06 GMT; 35min ago
Invocation: 349770dddcfe44c8a02ce27cacce9063
Main PID: 615 (wireplumber)
Tasks: 6 (limit: 19103)
Memory: 5.9M (peak: 6.3M)
CPU: 37ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
I don't notice anything awry in the journal. pavucontrol shows levels moving when things play. I have tested that the client machine is able to play audio.
Last edited by sshaikh (2024-11-08 16:33:37)
Offline
❯ pactl list sinks
Sink #47
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 = "43"
node.driver = "true"
port.group = "stream.0"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "45"
object.serial = "47"
Formats:
pcm
I think only having a dummy sink smells, but not sure how to solve that?
Offline
Checking the xrdp module gave some clues:
❯ pacman -Ql pipewire-module-xrdp
pipewire-module-xrdp /etc/
pipewire-module-xrdp /etc/xdg/
pipewire-module-xrdp /etc/xdg/autostart/
pipewire-module-xrdp /etc/xdg/autostart/pipewire-xrdp.desktop
pipewire-module-xrdp /usr/
pipewire-module-xrdp /usr/lib/
pipewire-module-xrdp /usr/lib/pipewire-0.3/
pipewire-module-xrdp /usr/lib/pipewire-0.3/libpipewire-module-xrdp-pipewire.so
pipewire-module-xrdp /usr/lib/pipewire-module-xrdp/
pipewire-module-xrdp /usr/lib/pipewire-module-xrdp/load_pw_modules.sh
pipewire-module-xrdp /usr/share/
pipewire-module-xrdp /usr/share/licenses/
pipewire-module-xrdp /usr/share/licenses/pipewire-module-xrdp/
pipewire-module-xrdp /usr/share/licenses/pipewire-module-xrdp/LICENSE
/etc/xdg/autostart/pipewire-xrdp.desktop calls /usr/lib/pipewire-module-xrdp/load_pw_modules.sh and although it throws some errors, I do get audio after that. Knowing this, I am also able to uninstall pipewire-pulse whilst keeping audio.
I have xdg portal gtk installed, so am wondering why this script isn't being called. Should it be added to my .xinitrc?
Offline
If that's what you're using yeah, XDG autostart is started by certain implementations, and likely not if you run a minimal setup: https://wiki.archlinux.org/title/XDG_Autostart
Online
Thank you! The packager of the module gave me the same tip:
https://aur.archlinux.org/packages/pipewire-module-xrdp
I used the following to understand how to integrate an XDG autostart. Interestingly there's a bunch of autostart things that probably weren't starting
Offline