The officially official Devuan Forum!

You are not logged in.

#1 Re: Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » Today 16:42:01

I wrote an autoinstall script for it, because I got bored. Run as the user you're starting your desktop with, supports both doas and sudo for priv escalation. It's extremely janky, but it works:

if command -v sudo &> /dev/null; then
    export SUDO_OR_DOAS="sudo"
elif command -v doas &> /dev/null; then
    export SUDO_OR_DOAS="doas"
fi

mkdir ~/pipewire
cd ~/pipewire

tee ~/pipewire/pipewire << 'EOF'
#!/sbin/openrc-run

name="pipewire"
description="pipewire"
command_user="USER"

depend() {
    after bootmisc
}

start() {
    ebegin "Starting Pipewire"
    
    # start 
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/pipewire.pid \
        --user USER --exec /usr/bin/pipewire
    
    # wait
    local timeout=10
    while [ $timeout -gt 0 ] && [ "$(pgrep -u USER -f /usr/bin/pipewire)" = "" ]; do
        sleep 1
        timeout=$((timeout - 1))
    done
    
    if [ "$(pgrep -u USER -f /usr/bin/pipewire)" = "" ]; then
        eend 1 "no workie"
        return 1
    fi
    
    # wireplumber
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/wireplumber.pid \
        --user USER --exec /usr/bin/wireplumber
    
    # pulse
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/pipewire-pulse.pid \
        --user USER --exec /usr/bin/pipewire-pulse
    
    eend 0
}

stop() {
    ebegin "Stopping Pipewire"
    
    start-stop-daemon --stop --pidfile /var/run/pipewire-pulse.pid
    start-stop-daemon --stop --pidfile /var/run/wireplumber.pid
    start-stop-daemon --stop --pidfile /var/run/pipewire.pid
    
    pkill -u "USER" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
    pkill -u "USER" -fx /usr/bin/wireplumber 1>/dev/null 2>&1
    pkill -u "USER" -fx /usr/bin/pipewire 1>/dev/null 2>&1
    
    rm -f /var/run/pipewire.pid /var/run/wireplumber.pid /var/run/pipewire-pulse.pid
    
    eend 0
}

restart() {
    stop
    sleep 1
    start
}
EOF
\
sed -i "s/USER/$USER/g" ~/pipewire/pipewire &&
$SUDO_OR_DOAS mv ~/pipewire/pipewire /etc/init.d/pipewire &&
$SUDO_OR_DOAS chown root:root /etc/init.d/pipewire &&
$SUDO_OR_DOAS chmod 755 /etc/init.d/pipewire &&
$SUDO_OR_DOAS rc-update add pipewire &&
$SUDO_OR_DOAS rc-service pipewire start

#2 Re: Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » Today 15:10:59

Also it's amazing how fast this thread turned into not a discussion about pipewire and things like that, just bickering between forum members, never expected this when I just wanted to ask a question on here.

#3 Re: Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » Today 15:01:01

I wrote the openRC init script, if you want to use it, replace "radio" with your own username, or if anyone works on maintaining stuff can figure out some solution to automatically fill in the user field, or maybe if I have some free time outside work, I'll make some kind of script that gets your users name and replaces it.

@steve_v

Indeed. While it is likely a dead horse, I'll flog it some more here: Devuan, as a supposed leader in systemd-free distros... Does precious little leading.
Where real work is needed to get things working without systemd, solutions are lifted from Gentoo (eudev, elogind, opentmpfiles etc.). Everything else is just banning packages rather than fixing them, or shipping broken setups like we see here with wayland and pipewire.
I have asked repeatedly what Devuan's direction and preferred solution for user-units is, and all I get is a bunch of "nothing, wait for Debian to fix it" wilful inaction.

I've been on and off using devuan for ~3 years. My original post came off as uneducated, but that's because I never even used pipewire before, or wayland too much. If possible at least some kind of warning when installing any wayland/pipewire based desktop should come up, that you might run into issues, or that you should check the forum.

heres the init script, don't just copy it in, change the user name. It works fine for me with KDE, probably would work with any other desktop. It's quite makeshift, I've written very few init scripts before, but it gets the job done. The killing processes part could be removed, I just went off of the one I found here.

#!/sbin/openrc-run

name="pipewire"
description="pipewire"
command_user="radio"

depend() {
    after bootmisc
}

start() {
    ebegin "Starting Pipewire"
    
# kill 
    pkill -u "radio" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
    pkill -u "radio" -fx /usr/bin/wireplumber 1>/dev/null 2>&1
    pkill -u "radio" -fx /usr/bin/pipewire 1>/dev/null 2>&1
    
    # start 
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/pipewire.pid \
        --user radio --exec /usr/bin/pipewire
    
    # wait
    local timeout=10
    while [ $timeout -gt 0 ] && [ "$(pgrep -u radio -f /usr/bin/pipewire)" = "" ]; do
        sleep 1
        timeout=$((timeout - 1))
    done
    
    if [ "$(pgrep -u radio -f /usr/bin/pipewire)" = "" ]; then
        eend 1 "no workie"
        return 1
    fi
    
    # wireplumber
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/wireplumber.pid \
        --user radio --exec /usr/bin/wireplumber
    
    # pulse
    start-stop-daemon --start --background --make-pidfile --pidfile /var/run/pipewire-pulse.pid \
        --user radio --exec /usr/bin/pipewire-pulse
    
    eend 0
}

stop() {
    ebegin "Stopping Pipewire"
    
    start-stop-daemon --stop --pidfile /var/run/pipewire-pulse.pid
    start-stop-daemon --stop --pidfile /var/run/wireplumber.pid
    start-stop-daemon --stop --pidfile /var/run/pipewire.pid
    
    pkill -u "radio" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
    pkill -u "radio" -fx /usr/bin/wireplumber 1>/dev/null 2>&1
    pkill -u "radio" -fx /usr/bin/pipewire 1>/dev/null 2>&1
    
    rm -f /var/run/pipewire.pid /var/run/wireplumber.pid /var/run/pipewire-pulse.pid
    
    eend 0
}

restart() {
    stop
    sleep 1
    start
}

#4 Re: Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » Yesterday 17:16:17

Thank you very much for this, although as an autostart script, for some reason it didn't autostart. Running it manually through the terminal did get it to work. I might write an openrc script for it tomorrow and put it up here.

#5 Re: Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » Yesterday 16:12:52

Thank you everyone for the very helpful answers, devuan does not ship a service file for starting pipewire, kde does not have a built in audio manager, or at least that also doesn't ship with devuan, as I had 0 audio servers running when I installed my system. I tried starting pipewire through the terminal with pipewire,wireplumber and pipewire-pulse, did not fix the issue. As for the "sudo is always the answer" I said "IF I run it as root", I tried starting it manually as my normal user as well.

Looking through the documentation would be a great idea, if any other init systems which aren't systemd were supported.

A solution I found, which i haven't tried yet, is that gentoo ships a pipewire launcher service file in their distro for openRC, which I'm using.

I also wouldn't have to deal with this if by default when I install KDE with the whole distro, I didn't get a broken sound server, and having to manually switch to pulse.

#6 Installation » [SOLVED] No audio on Excalibur through pipewire on KDE wayland » 2025-08-19 15:29:41

radiatedradio
Replies: 34

Hi, I installed excalibur on my thinkpad X13 gen4 (AMD model) with KDE, default settings last friday. Audio works through pulseaudio, but because of wayland, screensharing etc. don't, if I use pulse. I switched to pulse that day, as I didn't realize that screensharing wouldn't work.

KDEs own audio manager applet gives me the error "Connection to sound service lost". When I tried running pipewire manually through my terminal, pipewire gives no output, KDE can't connect to it. If i run it as root it gives me this error, I think it's unrelated:

sudo /usr/bin/pipewire
[sudo] password for radio:
[E][17:22:35.567850] mod.protocol-native | [module-protocol-:  756 init_socket_name()] server 0x56376851b960: name pipewire-0 is not an absolute path and no runtime dir found. Set one of PIPEWIRE_RUNTIME_DIR, XDG_RUNTIME_DIR or USERPROFILE in the environment
[E][17:22:35.567954] pw.conf      | [          conf.c:  602 load_module()] 0x5637685040a0: could not load mandatory module "libpipewire-module-protocol-native": No such file or directory
[E][17:22:35.568044] default      | [      pipewire.c:  124 main()] failed to create context: No such file or directory

What could be the issue? I know the easiest solution would be to switch back to X11, but on a newer machine, I like waylands features, and nowadays support for it is mostly standard. What additional details should I provide?

Thanks to everyone in advance.

Board footer

Forum Software