Skip to content
souravdas142 edited this page Jun 12, 2021 · 42 revisions

PipeWire Original Repo

MIT License

PipeWire & blueman-git PPA for Ubuntu (>= 18.04)

An upstream version of blueman-git & PipeWire for Ubuntu maintained with a 15 day release cycle

Link Description
Original-PipeWire-Upstream Forked
PipeWire-debian-Upstream Forked
Original-blueman-Upstream Forked
blueman-debian-Upstream Forked
libfdk-aac[12] Dependencies
libopenaptx0 Dependencies
libldacbt-abr2 Dependencies
libldacbt-enc2 Dependencies

  This repo (master branch which is ) Can be viewed as a mirror of Launchpad PPA. I will keep sync this with the LP PPA. As this is deprecated use this section section alternatively.

  The development branch is important as I will be using that branch to push new patches related to building PipeWire, blueman-git and their dependencies.

1. PPA Configuration

Add the Launchpad PPA...

The recommended & convenient way

# You can update your system with unsupported packages from this untrusted PPA by adding ppa:pipewire-debian/pipewire-upstream
# to your system's Software Sources.

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

# This PPA can be added to your system manually by running below commands, It directly create 
# a file under /etc/apt/sources.list.d/ containing source mirror list. 
# First Download key from keyservers directly into the trusted set of keys, Run 2 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

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 Non ubuntu Debian based Users, 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 based on Debian buster, And equivalent to `ubuntu 18.04`, so replace `buster` with `bionic` in the mentioned file.)

# Below is generaly not required unless you are not inspecting a package or not thinking about repackaging from the 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

...or the Github PPA    

Use IFF you have a good reason Or If your distro (other debian based) Can't install from LP PPA.

curl -SsL https://pipewire-debian.github.io/pipewire-debian/ubuntu/KEY.gpg | sudo apt-key add -
sudo curl -SsL -o /etc/apt/sources.list.d/pipewire.list https://pipewire-debian.github.io/pipewire-debian/ubuntu/pipewire.list
sudo apt update

2. Install PipeWire Or blueman-git

After adding one of the PPA's, follow the installation instructions below

Consult with the Troubleshooting page if there is any error occured.

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

# Install dependencies

sudo apt install libfdk-aac2 libldacbt-{abr,enc}2 libopenaptx0

# If `libfdk-aac2` not found install `libfdk-aac1`
# 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,media-session,bin,locales,tests}}

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

sudo apt install pipewire-doc     


# ~~~~~~~~~~~~~ For blueman-git  ~~~~~~~~~~~~~~~          

# 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 or blueman-git

You don't need to uninstall PulseAudio to enable PipeWire, disable and mask PulseAudio related services to stop them

systemctl --user --now disable  pulseaudio.{socket,service}
systemctl --user mask pulseaudio        

Additional steps for ubuntu 18.04 Or Equivalent distros

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

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

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

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

# Additonally if `/etc/pulse/client.conf.d/00-enable-autospawn.conf` this file exist do (Mx Linux)

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

# Also If `/etc/xdg/autostart/pulseaudio.desktp` file exist, you have to backup this file to somewhere or have to delete it.

# And finally issue        

pulseaudio --kill        

For Mx Linux Or init system


# Mx Linux uses init system by default, Anyone using `systemd` ignore this section.

# 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 : Slackware Solution the idea is same for Mx Linux also

# For the above solution you have to install daemon program 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`. 



  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 overridden behaviour is $HOME/.config/pipewire > /etc/pipewire > /usr/share/pipewire

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

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

Enable and start PipeWire related services (init system users, Ignore this)

systemctl --user --now enable pipewire{,-pulse}.{socket,service} pipewire-media-session.service

You can check which server is in use by running (as a user):

pactl info | grep '^Server Name'

If your system doesn't have any sound, please reboot

Incase of blueman, just enable below service. (init system users, Ignore this)

sudo systemctl enable --now blueman-mechanism.service

Uninstalling

If PipeWire was installed by default on your system, There are no way to completely remove it, because other packages may have dependency on PipeWire, You can only downgrade PipeWire to the system default version in that case, for more consult with Troubleshooting page.

Normally, Uninstall 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

Troubleshooting

See in wiki page - Troubleshooting

Notice

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

For features, requests or bugs, create an issue on upstream For PW And for blueman on here

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