pipewire-debian

PipeWire Original Repo

last commit

MIT License

buy me a coffee at ko-fi


PipeWire PPA for Ubuntu (>= 20.04)

  Deprication Notice: PipeWire for ubuntu 18.04 will no longer be maintained, as codebase is becoming difficult to maintain. Now version >= 20.04 is supported.

An upstream version of PipeWire for Ubuntu maintained with a 15 day release cycle

What We Have in Launchpad PPA
Package Status Package Status
PipeWire Maintained WirePlumber Maintained
blueman Maintained libcamera Maintained
libfreeaptx Maintained openfec Maintained
roc-toolkit Maintained libfdk-aac2 Maintained
libldacbt-abr2 Maintained libldacbt-enc2 Maintained

Launchpad PPA [AMD64]

  The master branch ( DEPRECATED ) can be viewed as a mirror of Launchpad PPA. I will keep sync this with the LP PPA. As this is deprecated use Launchpad PPA section in case of adding PPA alternatively.

  The development branch is for development purposes.

  All releases (including old ones) can be found here: PipeWire, WirePlumber, Meson-Ninja, Testing

1. Add the Launchpad PPA

If add-apt-repository is available, run the following commands:

sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream

# For WirePlumber

sudo add-apt-repository ppa:pipewire-debian/wireplumber-upstream

sudo apt-get update

Alternative method to add the PPA if add-apt-repository is not available


To manually add the Launchpad PPA if add-apt-repository is not available or in case of any special case, consider this is as an example. Do the same for WirePlumber. The GPG key may or may not be changed here.

# This PPA can be added to your system manually by running below commands, It creates
# a file under /etc/apt/sources.list.d/ containing  list of mirrors
# To do this, first download the GPG key from keyservers directly into the trusted set of keys,
# by running the two commands below

gpg --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
gpg -a --export 25088A0359807596 | sudo apt-key add -

# or

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596

# Next, run the command below to add the mirror list to your system.

echo "deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list

# For other Ubuntu or Debian based (e.g. MX Linux, Linux Mint), edit `/etc/apt/sources.list.d/pipewire-upstream.list` and change your `distro_code_name` equivalent to any one of Ubuntu
# `distro_code_name`. (For example, MX Linux 19.4 is based on Debian Buster which is roughly equivalent to `Ubuntu 18.04`, so replace `buster` with `bionic`.)

# The following command is usually not needed unless you want to install debug packages or create deb packages from source.

echo "deb-src http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/pipewire-upstream.list

2. Install PipeWire, WirePlumber Or blueman-git

After PPA Configuration, follow the installation instructions below. Consult the Troubleshooting page if any error occured.

For MX Linux or Debian buster see this for which packages are to be insalled or upgraded before installing.

# Install pipewire and additional packages

sudo apt install gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,bin,jack,alsa,v4l2,libcamera,locales,tests}}

# Additionally, if you want to install `pipewire-doc`

sudo apt install pipewire-doc

under Wayland package libpipewire-module-x11-bell is not required. If you are using X11 server Please install that package to support x11-bell feature.

sudo apt-get install libpipewire-module-x11-bell

Install ONE of the following two options:

  1. For WirePlumber (Recommended)
    sudo apt-get install wireplumber{,-doc} gir1.2-wp-0.4 libwireplumber-0.4-{0,dev}
    
  2. For pipewire-media-session (Optional)
    sudo apt-get install pipewire-media-session
    
Install blueman-git (Optional)


# Before installing blueman-git, remove and purge any official version of blueman.

sudo apt-get remove --purge blueman && sudo rm -f /var/lib/blueman/network.state

# Then, to install issue below command.

sudo apt-get install blueman-git

3. Post Installation Steps for PipeWire, WirePlumber or blueman-git

A) Disabling PulseAudio

You don’t need to uninstall PulseAudio to enable PipeWire. Both can be installed side-by-side (there are no file collisions).

Just disable and mask PulseAudio related services to stop them:

systemctl --user --now disable pulseaudio.{socket,service}
systemctl --user mask pulseaudio
Additional steps (If prev. subsection failed to stop PA) (Optional)


# You need to tell Pulseaudio not to respawn itself by issuing command:

sed -i 's/.*autospawn.*/autospawn = no/g' ~/.config/pulse/client.conf

# If `~/.config/pulse/client.conf` is not found then issue,

sudo sed -i 's/.*autospawn.*/autospawn = no/g' /etc/pulse/client.conf

# Additonally, if `/etc/pulse/client.conf.d/0{0,1}-enable-autospawn.conf` exist, do

sudo sed -i 's/.*autospawn.*/autospawn = no/g' /etc/pulse/client.conf.d/00-enable-autospawn.conf

# Or,

sudo sed -i 's/.*autospawn.*/autospawn = no/g' /etc/pulse/client.conf.d/01-enable-autospawn.conf

# Also if `/etc/xdg/autostart/pulseaudio.desktop` exist, rename it to something like below.

sudo mv -v /etc/xdg/autostart/pulseaudio.desktop{,.bak}

# And finally issue

pulseaudio --kill
Additional steps for init systems (Optional)


# PulseAudio (>= 13.04-4) also have autospawn defined at /etc/init.d/pulseaudio-enable-autospawn
# Just disable the init script, and reenable it again if anyhow PA needed in future

sudo update-rc.d pulseaudio-enable-autospawn disable

# If PA still running, Once again kill PA

pulseaudio --kill


  Since version 0.3.28 conf files are moved to /usr/share/ directory from /etc/. You have to copy them to /etc/ directory manually. From now /etc/pipewire/ can be used as system wide drop in for user edited conf files. conffile overriding behaviour is $HOME/.config/pipewire > /etc/pipewire > /usr/share/pipewire

To copy conffiles from /usr/share/ to /etc/, issue the command below. (Optional)

sudo cp -vRa /usr/share/pipewire /etc/

Finally, enable and start PipeWire related services (init system users, ignore this and see spoiler below)

systemctl --user --now enable pipewire{,-pulse}.{socket,service} filter-chain.service
For Mx Linux or init system (Anyone using systemd ignore this subsection). (Optional)


# Mx Linux uses init system by default,

# Some users feel anoying to start `pipewire` services becasue of PW doesn't shift any scripts for non systemd,
# So Now how to start All `pipewire` services in init system?

# There is a solution on internet see this : <a href="https://www.linuxquestions.org/questions/slackware-14/using-pipewire-instead-of-pulseaudio-in-slackware-15-a-4175693980">Slackware Solution</a> the idea is same for Mx Linux also

# For the above solution you have to install <a href="https://github.com/raforg/daemon">daemon program</a> or do the below modifcation on those `.desktop` files.

substitue this `Exec=/usr/bin/pipewire` line with above `pipewire.desktop` file where you find lines starting with `Exec`.
substitue this `Exec=/usr/bin/pipewire-pulse` line with above `pipewire-pulse.desktop` file where you find lines starting with `Exec`.
substitue this `Exec=/usr/bin/pipewire-media-session` line with above `pipewire-media-session.desktop` file where you find lines starting with `Exec`.

For WirePlumber (Recommended)

systemctl --user --now enable wireplumber.service

For pipewire-media-session (Optional)

systemctl --user enable --now pipewire-media-session.service

Check which server is in use by running:

pactl info | grep '^Server Name'

Does your system still have no sound? Please reboot. (I highly discourage of any reboot. Go through all instructions again if needed).

C) ~~~~~~~~~~~ For blueman-git ~~~~~~~~~~~

Enable blueman-git related stuff (init system users, ignore this) (Optional)


In case you want to use blueman, just enable the service like this.

sudo systemctl enable --now blueman-mechanism.service

Uninstalling

If PipeWire was installed by default on your system, there is likely no way to completely remove it, because other packages may have dependencies on it. You only can downgrade PipeWire to the system default version in that case. For more information consult the Troubleshooting page.

Normally, uninstalling pipewire is pretty straight forward like the Installation phase, so follow the installation section. You just need to reverse the whole thing in that section. For more search on the internet: how to remove a package?.

Wiki & Articles Wiki & Articles

Wiki & Articles Wiki & Articles (Click to open)


Wiki -

Articles -

Troubleshooting

See in wiki page - Troubleshooting

Notice

If you have any issues regarding this PPA package, create an issue here.

For features, requests or bugs create an issue on upstream: PipeWire, blueman, WirePlumber

Credits

Original PipeWire project maintainer: Wim Taymans - Source

Original maintainers (usually from Debian): Utopia Maintenance Team - Jeremy Bicha - Source

Original blueman project maintainer: Christopher Schramm - Source