wiki:pipewire

Version 7 (modified by pierre, 15 months ago) ( diff )

--

Pipewire

Handy link (thanks archetech on #lfs-support): https://wiki.gentoo.org/wiki/PipeWire
It has some indications for SysV (OpenRC startup).

Wireplumber

Currently Pipewire is only used as a build dependency in the book. To make it really useful, we need to install a session manager. Wireplumber is the recommended session manager.

Wireplumber can be downloaded at https://gitlab.freedesktop.org/pipewire/wireplumber/-/releases.

Required: Glib and Pipewire

Recommended: Lua

Optional dependencies: doxygen, lxml, and gobject-introspection (needed for g-i data), sphinx, and breathe (external, docs)

meson setup --prefix=/usr --buildtype=release -Dsystem-lua=true
ninja 
ninja test
sudo ninja install

Pipewire itself must be built with wireplumber support, so use the option

-Dsession-managers=/usr/bin/wireplumber

before building wireplumber (the session manager need not be present when building pipewire).

With Wireplumber we can run Pipewire daemon with:

  • On systemd:
    sudo systemctl --global enable pipewire
    systemctl --user start pipewire
    
  • On SysV (solution by Douglas Reno, adapted from Alpine linux):
    As root:
    cat >/usr/bin/pipewire-launcher.sh <<EOF
    #!/bin/sh
    exec /usr/bin/pipewire &
    sleep 1
    exec /usr/bin/wireplumber &
    EOF
    chmod +x /usr/bin/pipewire-launcher.sh
    cat >/etc/xdg/autostart/pipewire.desktop <<EOF
    [Desktop Entry]
    Version=1.0
    Name=Pipewire
    Comment=Starts the Pipewire daemons
    Exec=/usr/bin/pipewire-launcher.sh
    Terminal=false
    Type=Application
    EOF
    
    then restart the graphical session.

The screen recorder built in GNOME shell should work now.

Replace Pulseaudio

With Wireplumber, Pipewire can function as a drop-in replacement of Pulseaudio.

sudo systemctl --global enable pipewire-pulse.socket
sudo systemctl --global disable pulseaudio

Then logout and login again.

Use Pipewire for ALSA-based applications

If Pipewire is running, it will occupy the sound card device and an ALSA-based application cannot use the card at the same time. To work around the issue, tell alsa-lib to use a virtual device provided by Pipewire:

sudo install -vdm755 /etc/alsa/conf.d
sudo ln -sfvr /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d

Bluetooth LDAC support

Install ldacBT before building Pipewire. The link to ldacBT is available on the book page. Installation process of ldacBT:

mkdir build; cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
make
# no test suite available
sudo make install
Note: See TracWiki for help on using the wiki.