Debian: PulseAudio mit PipeWire ersetzen

PipeWire Debian
Bild: Fedora

In den nächsten Monaten und Jahren wird unter Linux PipeWire, das neue Low-Level-Multimedia-Framework bei Audio und Video das Ruder übernehmen. Es soll Aufnahme und Wiedergabe sowohl von Audio als auch von Video mit minimaler Latenz und Unterstützung für PulseAudio-, JACK-, ALSA- und GStreamer-basierte Anwendungen bieten. Gerade hat Fedora 34 offiziell den Anfang gemacht und PipeWire als Standard bei Audio gesetzt. In einigen Bereichen wie Screen-Sharing und Remote Desktop unter Wayland war das bereits vorher der Fall.

Anwendungsszenarien

Ich habe PipeWire in Debian Sid (siduction) seit geraumer Zeit die Kontrolle übergeben und für meine Anwendungsszenarien funktioniert das recht gut. Unter Ubuntu habe ich einen kurzen Test mit ebenfalls zufriedenstellendem Ergebnis durchgeführt. Dabei starte ich in siduction KDE Plasma üblicherweise in eine Wayland-Sitzung, aber es funktioniert genauso gut unter X.org.

PipeWire kommt bei mir zum Hören von Musik über eine angeschlossene Stereo-Anlage als auch über Bluetooth-Kopfhörer, bei Videokonferenzen und am Rande auch bei Audio-Editing mit Audacious zum Einsatz. Der jetzige Stand von PipeWire erlaubt dies ohne größere Schmerzen und aus meiner Sicht nicht schlechter als PulseAudio.

Buster außen vor

In Debian Stable (Buster) hängt PipeWire mit Version 0.2.5-1 reichlich zurück, während in Testing und Unstable (sid) 0.3.19-4 und in Experimental 0.3.25-1 verfügbar sind. Fedora 34 nutzt die auch im Git vor einer Woche veröffentlichte aktuelle Version 0.3.26-1. Damit scheidet Stable wegen der zu alten Version zum aussagekräftigen Testen vermutlich aus, das habe ich aber nicht getestet. Zunächst habe ich 0.3.19-4 aus Unstable und anschließend 0.3.25-1 installiert, beide zeigten keine groben Fehler.

Pipewire selbst sollte bereits installiert sein. Falls nicht:

sudo apt update && sudo apt install pipewire

Seit PipeWire 0.3.5 sind einige Bibliotheken in dem Paket pipewire-audio-client-libraries zusammengefasst. Die Paketbeschreibung sagt darüber:

Dieses Paket enthält Client-Bibliotheken, die es Programmen, die für ALSA-, JACK- und PulseAudio-APIs entwickelt wurden erlauben, einen PipeWire-Server für die Wiedergabe und Aufnahme verwenden zu können. Sie werden standardmäßig nicht verwendet und sind derzeit als experimentell angesehen.

apt show pipewire-audio-client-libraries

Ich habe alle Warnungen in den Wind geschlagen und konnte bisher keine Probleme feststellen.

 sudo apt install pipewire-audio-client-libraries

Um Bluetooth-Funktionalität mit PipeWire zu erhalten, wird ein weiteres Paket benötigt:

sudo apt install libspa-0.2-bluetooth

Wenn Unterstützung für den Sound-Server JACK benötigt wird, dann fehlt noch:

sudo apt install libspa-0.2-jack

Soweit die benötigten Pakete, nun geht es an die Konfiguration. Folgende Schritte sind nötig, um PulseAudio durch PipeWire zu ersetzen:

# touch /etc/pipewire/media-session.d/with-pulseaudio
# cp /usr/share/doc/pipewire/examples/systemd/user/pipewire-pulse.* /etc/systemd/user/

Die folgenden drei Befehle werden als User, nicht als Root ausgeführt. Damit deaktiviert ihr PulseAudio und setzt PipeWire an seine Stelle:

systemctl --user daemon-reload
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user --now enable pipewire pipewire-pulse

Den Erfolg könnt ihr folgendermaßen überprüfen:

pactl info | grep '^Name des Servers'

Der Befehl sollte eine Zeile mit PulseAudio (on PipeWire 0.3.19) zurückgeben. Sollte dies nach einem Reboot keinen Bestand haben, muss der PulseAudio-Service maskiert werden:

systemctl --user mask pulseaudio

Darauf sollte ein weiterer Reboot folgen. Auch ALSA-Clients können für die Nutzung von PipeWire konfiguriert werden:

# touch /etc/pipewire/media-session.d/with-alsa
# cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/

Bei JACK sieht es ähnlich aus:

# touch /etc/pipewire/media-session.d/with-jack
# cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
# ldconfig

Danach lassen sich Multimedia-Dateien über die entsprechenden Anwendungen abspielen. PipeWire wäre aber nicht Linux, wenn nicht auch die Nutzung per Terminal möglich wäre. Hierzu stehen Befehle wie pw-cat, pw-play und pw-record zur Verfügung.

Wenn etwas nicht läuft, hilft oft ein Blick auf:

systemctl --user status pipewire.service
und wenn nötig
systemctl --user restart pipewire-pulse.service

Ich habe dort einige Fehler bezüglich ALSA, die mich nicht stören und denen ich noch nicht nachgegangen bin. Bitte bedenkt: Jeder Soundchip kann unterschiedliche Ergebnisse hervorbringen, immerhin ist PipeWire noch nicht bei einer stabilen 1.0 angekommen.

Bluetooth, Flatpaks und PulseEffects

Mehr brauchte ich nicht zu tun. Meine Marshall Bluetooth-Kopfhörer waren schneller verbunden als früher. Nach der Installation des Pakets xdg-desktop-portal-kde funktioniert PipeWire auch mit Flatpaks. Bei GTK-basierten Distributionen nimmt man entsprechend xdg-desktop-portal-gtk.

Das einzige, was derzeit bei mir nicht funktioniert, ist PulseEffects, das in Version 4.8.4-1 installiert ist und eigentlich mit gstreamer1.0-pipewire laufen sollte. Ich erhalte aber ständig einen Speicherzugriffsfehler. Mittlerweile wurde für die Verwendung mit PipeWire EasyEffects als Ersatz für PulseEffects veröffentlicht.

5 3 votes
Article Rating

Verwandte Themen

5 3 votes
Article Rating
Abonnieren
Benachrichtige mich bei
10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments