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.
4 Answers
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.
- 6,406
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.
- 141
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
- 3
- 200
You need to edit: /etc/pipewire/media-session.d/media-session.conf
And un-comment at least alsa-monitor under session.modules.
- 20,055
- 57
- 82
- 84