Informations sur la configuration
Pour que Wireplumber puisse être utilisé par Pipewire,
Wireplumber et Pipewire doivent être configurés pour démarrer
quand un environnement de bureau est lancé.
Pipewire fournit maintenant sa propre implémentation d'un serveur
Pulseaudio, ce qui cause des conflits à l'exécution avec le
serveur fournit par Pulseaudio lui-même. Cela se caractérise par
des applications en attente ou qui ne fonctionnent pas bien quand
elles essaient de jouer ou d'enregistrer de l'audio ou de la
vidéo. Tout d'abord, empêchez Pulseaudio de démarrer sa propre
implémentation du serveur en exécutant les commandes suivant en
tant qu'utilisateurroot
:
rm -vf /etc/xdg/autostart/pulseaudio.desktop &&
rm -vf /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 &&
sed -e '$a autospawn = no' -i /etc/pulse/client.conf
Ensuite, créez un script shell qui démarrera Wireplumber et
Pipewire dans le bon ordre en tant qu'utilisateur root
:
cat > /usr/bin/pipewire-launcher.sh << "EOF"
#!/bin/sh
# Begin /usr/bin/pipewire-launcher.sh
# First, kill any previous instances of pipewire, wireplumber, or pipewire-pulse
# that are running. Multiple instances of the daemon can not be run at the same
# time, and this helps prevent possible errors if a user logs out or logs in
# too fast, and restores audio if Pipewire hangs and needs to be reset.
pkill -u ${USER} -fx /usr/bin/pipewire-pulse
pkill -u ${USER} -fx /usr/bin/wireplumber
pkill -u ${USER} -fx /usr/bin/pipewire
# Start Pipewire first.
exec /usr/bin/pipewire &
# Next, we need to wait until pipewire is up before starting wireplumber.
# This prevents a possible race condition where pipewire takes too long
# to start, as some users have run into.
while [ $(pgrep -f /usr/bin/pipewire) = "" ]; do
sleep 1
done
# Start Wireplumber now that Pipewire has been started.
exec /usr/bin/wireplumber &
# Start the Pulseaudio server included with Pipewire.
exec /usr/bin/pipewire-pulse &
# End /usr/bin/pipewire-launcher.sh
EOF
Ensuite, rendez ce script shell exécutable en tant qu'utilisateur
root
:
chmod +x /usr/bin/pipewire-launcher.sh
Enfin, créez un fichier Autostart de XDG qui lancera /usr/bin/pipewire-launcher.sh
lorsqu'un environnement de bureau est démarré, en tant
qu'utilisateur root
:
cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Pipewire
Comment=Starts the Pipewire and Wireplumber daemons
Exec=/usr/bin/pipewire-launcher.sh
Terminal=false
Type=Application
EOF
Maintenant que Wireplumber est configuré pour démarrer quand un
environnement de bureau est lancé, il est recommandé que vous
vous déconnectiez de votre session et que vous vous reconnectiez.