Something should come out of these

📷C D-X

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 pipewire-media-session with wireplumber as instructed:

$ sudo pacman --asdeps -S wireplumber

which removed 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:1.2.7.1-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 /etc/pipewire.