28

As Ubuntu 21.04 includes pipewire for video streams and screen sharing by default, I am wondering whether or not it is possible to replace pulseaudio completely with pipewire.

David DE
  • 2,316
user5950
  • 6,406

4 Answers4

37

Yes indeed, this is possible and fairly simple, just follow the steps described in the Debian docs:

First install the pipewire-audio-client-libraries package.

sudo apt install pipewire-audio-client-libraries

Create this empty file:

touch /etc/pipewire/media-session.d/with-pulseaudio

Create a pipewire-pulse service by copying the example files:

cp /usr/share/doc/pipewire/examples/systemd/user/pipewire-pulse.* /etc/systemd/user/

Run these three commands as your regular user (not as root):

// Check for new service files with:
systemctl --user daemon-reload
// Disable and stop the PulseAudio service with:
systemctl --user --now disable pulseaudio.service pulseaudio.socket
// Enable and start the new pipewire-pulse service with:
systemctl --user --now enable pipewire pipewire-pulse

You can check which server is in use by, as your regular user, running:

pactl info | grep '^Server Name'

If it's using PipeWire, the server name will be "PulseAudio (On PipeWire 0.3.19)"

To makeit work I had to "mask" the PulseAudio service by running:

systemctl --user mask pulseaudio

And then restarting the PipeWire services:

systemctl --user restart pipewire pipewire-pulse

This will block the PulseAudio service from being activated outright. If you wish to restore previous functionality, you'll need to run the same command again with the "unmask" action.

user5950
  • 6,406
14

Arch User Here. But love PipeWire. Under all debian/Ubuntu {18..21}.{04,10} Version of PW is too old. That's why I am maintaining a PPA which will provide latest build of PipeWire(15-16 days of release cycle). You can track latest change on github for this PPA.

On arch linux this process is obtained by {pre,post}_{install,upgrade,remove} function under package's *.install file.

And under Ubuntu/Debian It will be achieved by some simple {pre,post}{inst,rm} scripts. I will be updated these in next release definitely. This Already had been done.

EDIT 1 -
For a detailed Installation instructions Please follow github wiki.

With PipeWire I am also packaging blueman-git (git version of blueman). It has some serious needed feature to work with PipeWire. Don't worry it also will not break anything but increase your productivity upto a level higher.

EDIT 2 -
The Launchpad PPA will work under All debian/ubuntu based distros. Don't worry! install it, test it and file bugs to upstream to help it's developers to make PipeWire even more better.

EDIT 3 -
Now PipeWire 0.3.27 and on wards will support under debian/ubuntu 18.04 also.

8

On Ubuntu 21.10

First install the missing PipeWire packages:

sudo apt install pipewire-pulse pipewire-audio-client-libraries

If you want bluetooth audio to work you also need to install:

sudo apt install libspa-0.2-bluetooth

After that feel free to disable pulseaudio and enable PipeWire running theses commands (without root):

// Disable and stop the PulseAudio service with:
systemctl --user --now disable pulseaudio.service pulseaudio.socket
// Enable and start the new pipewire-pulse service with:
systemctl --user --now enable pipewire pipewire-pulse

And that's it! You can confirm everything worked by running:

pactl info | grep '^Server Name'

The output should be similar to this:

Server Name: PulseAudio (on PipeWire 0.3.32)

Restart Pipewire services

systemctl --user restart pipewire pipewire-pulse

-2

You need to edit: /etc/pipewire/media-session.d/media-session.conf

And un-comment at least alsa-monitor under session.modules.

Kevin Bowen
  • 20,055
  • 57
  • 82
  • 84