The latest update of Arch Linux informed me that
pipewire-media-session, a dependency of
kwin, is deprecated and would soon be removed from the repositories. I was adviced to replace it with
wireplumber. Now, I did try
wireplumber in the past, but it didn’t go so well so I had to revert it. It’s finally time to move on, I guess.
The problem is that this had some cascading effects and as a result I had to let go of the (old trusted)
pulseaudio as well.
Not what I planned for Sunday morning
The first step was to replace
wireplumber as instructed:
$ sudo pacman --asdeps -S wireplumber
pipewire-media-session. Rebooting to check how well things went:
- System sound (back lineout) works
- System sound (front headphones) works
- System microphone (front) does not work
- HDMI sound through the video card does not work
- Webcam, didn’t test
Obviously, not good enough.
It turns out that
pipewire was missing its plugins (backends), but that meant removing
pulseaudio since they are in conflict.
$ sudo pacman --asdeps -S pipewire-alsa pipewire-pulse pipewire-jack resolving dependencies... looking for conflicting packages... :: pipewire-alsa and pulseaudio-alsa are in conflict. Remove pulseaudio-alsa? [y/N] y :: pipewire-pulse and pulseaudio are in conflict. Remove pulseaudio? [y/N] y :: pipewire-jack and jack2 are in conflict (jack). Remove jack2? [y/N] y Packages (6) jack2-1.9.21-3 [removal] pulseaudio-16.1-3 [removal] pulseaudio-alsa-1:184.108.40.206-1 [removal] pipewire-alsa-1:0.3.64-1 pipewire-jack-1:0.3.64-1 pipewire-pulse-1:0.3.64-1 Total Download Size: 0.31 MiB Total Installed Size: 1.11 MiB Net Upgrade Size: -6.70 MiB :: Proceed with installation? [Y/n]
So we are replacing distinct packages with a monolith to rule-them-all. I am getting
systemd vibes here.
Progress (and neverending bug squashing)
After rebooting and testing everything, things now appear to work, including the webcam with its own microphone.
Since I have
multilib installed, I also installed some lib32 versions
$ sudo pacman --asdeps -S lib32-pipewire lib32-pipewire-jack
For video, some packages to consider are (according to the wiki)
gst-plugin-pipewire (for gstreamer) and/or
pipewire-v4l2 but I didn’t have a need for them so far… Webex, at least, works with the current configuration.
Another thing to consider: I had some options in
/etc/pulse/default.pa to avoid a crackling noise in HDMI output. I am not sure if they are still needed, but now that
pulseaudio is gone the place to put
pulseaudio related options would be
/usr/share/pipewire/pipewire-pulse.conf after copying it somewhere under