2 minutes
Replacing Pulseaudio With Pipewire+Wireplumber
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
.