= Pipewire = Handy link (thanks archetech on #lfs-support): [https://wiki.gentoo.org/wiki/PipeWire][[BR]] It has some indications for SysV (OpenRC startup). == Replace Pulseaudio == With Wireplumber, Pipewire can function as a drop-in replacement of Pulseaudio: - On systemd: {{{ sudo systemctl --global enable pipewire-pulse.socket sudo systemctl --global disable pulseaudio }}} (For some reason enabling the .socket unit works fine for me, but enabling the .service unit causes the camera not found. Maybe a race condition.) - On Sysv: add to `/usr/bin/pipewire-launcher.sh` (after pipewire and before wireplumber): {{{ exec /usr/bin/pipewire -c pipewire-pulse.conf & sleep 1 }}} then move away the file /etc/xdg/autostart/puleaudio.desktop, and change autospawn to "no" in /etc/pulse/client.conf (uncomment it, of course). - On both systemd and sysv: disable the XDG autostart of traditional PulseAudio daemon {{{ sudo sed '2i exit # nouse' -i /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 sudo sed '$a Hidden=true' -i /etc/xdg/autostart/pulseaudio.desktop }}} If PulseAudio is upgraded, do this again. (Without this my system was running no-sound for 30 seconds after login.) - 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 }}} == Libcamera support == ~~[../GNOME/Snapshot] (a replacement for Cheese) needs a functional pipewire daemon (i. e. requiring wireplumber) built with libcamera.~~ **We can use v4l-utils instead of libcamera. This section only remains here for reference. libcamera dependencies are listed at https://libcamera.org/getting-started.html. Everything required or recommended is in BLFS, except a Python module named ply. Install ply (https://files.pythonhosted.org/packages/source/p/ply/ply-3.11.tar.gz): {{{ pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD sudo pip3 install --no-index --find-links=dist --no-cache-dir --no-user ply }}} There is no website for libcamera release tarballs. Clone the git repository and checkout the latest release tag: {{{ git clone https://git.libcamera.org/libcamera/libcamera.git git checkout v0.1.0 }}} Now install it: {{{ mkdir build cd build meson setup --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dwerror=false ninja sudo ninja install }}} Then (re)build pipewire and libcamera should be automatically detected and enabled.