:: Re: [DNG] No sound after upgrading …
Top Page
Delete this message
Reply to this message
Author: Andreas Messer
Date:  
To: tempforever
CC: dng
Subject: Re: [DNG] No sound after upgrading to daedalus
Hi,

my sound using pulseaudio also broke during update to
daedalus. I assume this somehow related that pipewire
will most likely replace pulseaudio on the long run,
I'm not sure, it could be that it replaced pa during
upgrade.

The problematic with this is, that pipewire package
comes from Debian and is packaged such that it entirely
relies on systemd socket activation. So the daemon won't
start automatically on Devuan if needed by an application.
In contrast to that, pulseaudio has an fallback mechanism
which steps in if systemd is not available...

You can however manually startup pipewire. I have
crafted a small script for use with xorg sessions for
this. (The script must be run before pulseaudio is actually
started otherwise pipewire won't be able to aquire the dbus
interface to emulate pulseaudio)

The main advantage of pipewire is, that it works much like
jackd providing a low latency while in parallel providing
the flexibility of pulseaudio. I use pipewire with
different audio & midi interfaces at the same time. (pulseaudio
does not support midi while jackd does not support multiple cards)

Please find attached the script

cheers,
Andreas
--
gnuPG keyid: 8C2BAF51
fingerprint: 28EE 8438 E688 D992 3661 C753 90B3 BAAA 8C2B AF51
# /etc/X11/Xsession.d/98pipewire
# Start pipewire sound daemon

#restart () {
echo "Terminating PipeWire processes ..."
pkill -u "${USER}" -x pipewire\|pipewire-pulse\|wireplumber 1>/dev/null 2>&1
while pgrep -u "${USER}" -x pipewire\|pipewire-pulse\|wireplumber 1>/dev/null; do sleep 1; done
echo "PipeWire terminated."
#}


#if [ "${#}" -gt 0 ]
#then
#    if [ "${1}" = 'restart' ]
#    then
#    restart
#    else
#        echo "Unrecognised argument." >&2
#        echo "Usage: gentoo-pipewire-launcher [restart]" >&2
#    exit 1
#    fi
#fi


if pgrep -u "${USER}" -x pipewire\|pipewire-pulse\|wireplumber 1>/dev/null 2>&1
then
    echo "PipeWire already running, exiting." >&2
else
    # The core daemon which by itself does probably nothing.
    echo "Starting PipeWire." 
    /usr/bin/pipewire  2>&1 &


    # The so called pipewire-pulse daemon used for PulseAudio compatibility.
    # Commenting this out will stop the PA proxying daemon from starting,
    # however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
    # clients will still have access to audio and may end up clashing with
    # non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
    echo "Starting PipeWire-Pulse."
    /usr/bin/pipewire-pulse 2>&1 &


    # Hack for bug #822498
    # sleep 1


    # Finally a session manager is required for PipeWire to do anything.
    echo "Starting WirePlumber." 
    /usr/bin/wireplumber 2>&1 &
fi


# vim:set ai et sts=2 sw=2 tw=80: