The Wireplumber package contains a session and policy manager for Pipewire.
![[Note]](../images/note.png) 
          Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/0.5.12/wireplumber-0.5.12.tar.bz2
Download MD5 sum: 42f9b6cbd8d1aa27c80598348463f874
Download size: 432 KB
Estimated disk space required: 91 MB (with tests)
Estimated build time: 0.4 SBU (with tests)
elogind-255.17, GLib-2.86.1, and pipewire-1.4.9
Doxygen-1.15.0, lxml-6.0.2, sphinx-8.2.3, sphinx_rtd_theme-3.0.2, and Breathe
Install Wireplumber by running the following commands:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D system-lua=true .. && ninja
To test the results, issue: ninja test.
          Now, as the root user:
        
ninja install
          Finally, rename the documentation directory to a versioned
          directory as the root user:
        
mv -v /usr/share/doc/wireplumber{,-0.5.12}
      
          --buildtype=release:
          Specify a buildtype suitable for stable releases of the package, as
          the default may produce unoptimized binaries.
        
          -D system-lua=true: This
          switch enables using the system version of Lua. Omit this switch if
          you have not installed Lua, but note that meson will download and install it's own
          version.
        
In order for Wireplumber to be used by Pipewire, Wireplumber and Pipewire must be configured to start when a desktop environment is started.
            Pipewire now provides it's own Pulseaudio server implementation,
            which causes runtime conflicts with the server provided by
            Pulseaudio itself. This generally presents itself by applications
            hanging or malfunctioning when trying to play or record audio and
            video. First, prevent Pulseaudio from starting it's own server
            implementation by running the following commands as the
            root user:
          
rm -vf /etc/xdg/autostart/pulseaudio.desktop && rm -vf /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 && sed -e '$a autospawn = no' -i /etc/pulse/client.conf
            Next, create a shell script that will start Wireplumber and
            Pipewire in the correct order as the root user:
          
cat > /usr/bin/pipewire-launcher.sh << "EOF"
#!/bin/sh
# Begin /usr/bin/pipewire-launcher.sh
# First, kill any previous instances of pipewire, wireplumber, or pipewire-pulse
# that are running. Multiple instances of the daemon can not be run at the same
# time, and this helps prevent possible errors if a user logs out or logs in
# too fast, and restores audio if Pipewire hangs and needs to be reset.
pkill -u ${USER} -fx /usr/bin/pipewire-pulse
pkill -u ${USER} -fx /usr/bin/wireplumber
pkill -u ${USER} -fx /usr/bin/pipewire
# Start Pipewire first.
exec /usr/bin/pipewire &
# Next, we need to wait until pipewire is up before starting wireplumber.
# This prevents a possible race condition where pipewire takes too long
# to start, as some users have run into.
while [ $(pgrep -f /usr/bin/pipewire) = "" ]; do
   sleep 1
done
# Start Wireplumber now that Pipewire has been started.
exec /usr/bin/wireplumber &
# Start the Pulseaudio server included with Pipewire.
exec /usr/bin/pipewire-pulse &
# End /usr/bin/pipewire-launcher.sh
EOF
          
            Next, make this shell script executable as the root user:
          
chmod +x /usr/bin/pipewire-launcher.sh
            Finally, create an XDG Autostart file that will run /usr/bin/pipewire-launcher.sh
            when a desktop environment is started, as the root user:
          
cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Pipewire
Comment=Starts the Pipewire and Wireplumber daemons
Exec=/usr/bin/pipewire-launcher.sh
Terminal=false
Type=Application
EOF
          Now that Wireplumber is configured to start when a desktop environment is started, it is recommended that you log out of your session and log back in again.