You are not logged in.
Recently I have started to play around with a new Arch VM that controls a soundcard that is connected to hifi system. There is pipewire, a roc (Roc Toolkit real-time audio streaming) pipewire sink and upmpdcli DLNA/OpenHome DLNA Digital Media Renderer and Server. Everything working perfectly, there is just this one caveat I wished could be worked around:
Unless I log into a graphical session using the VM's visual console (Proxmox) the pipewire server does not see any hardware audio sinks.
pactl list sinks | grep Name
Name: auto_nullOnce logged in the sink is available and everything is working as expected
pactl list sinks | grep Name
Name: alsa_output.usb-SmartAction_Technology_HiBy_FC1-00.analog-stereoSince this machine was intended as a headless remote desktop system (only one user though) I installed plasma desktop on it, this was probably a mistake for this kind of server since I don't pretend to understand this dbus/systemd/rt-kit session stuff. Alls I know is systemctl --user status pipewire.service => running all the time, whether logged in or not same with wireplumber.service.
Here's a pastebin of the systemd journal during log in and logout: https://bin.disroot.org/?c429e095b88193 … zH175oALhX
I've searched around for a solution but so far no luck in finding anything on this. Would appreciate somebody pointing me in the right direction.
Last edited by ethersaga (Today 09:19:27)
Offline
By default pipewire runs as a per user service and will start up only when a login session of a given user exists and get stopped again after logout: https://wiki.archlinux.org/title/Systemd/User . For this simple variant of what you're intending to do you could experiment with enabling user session lingering for the user you want to be able to use this with: https://wiki.archlinux.org/title/System … _instances
Alternatively -- though not sure how well this works and apparently tied to the root user currently -- there's https://aur.archlinux.org/packages/pipewire-system which does the necessary plumbing to try and coerce it into running as root.
Last edited by V1del (Today 11:00:45)
Offline
Thanks for your answer. I have enabled lingering for my user but the issue is the same. The auto_null device is the only sink after reboot. Interestingly now after a restart the pipewire-pulse.socket fails to start because - get this:
pipewire-pulse.socket: Failed to create listening socket (/run/user/1000/pulse/native): Permission deniedWhat? restarting that unit file immediately fixes it and pulse stuff works again, ie pactl list sinks for example. This is very strange.
Could it be some sort of pipe/pulse configuration issue becaue all these services are officially running even though I haven't logged into plasma yet.
systemctl --user status pipewire pipewire-pulse wireplumber pipewire-pulse.socketOffline
I'm taking a look at pipewire-system now, it seems this is the way to go for headless media servers.
Offline