From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Other languages
Deutsch ; English ; Español ; Français ; Português ;
Synopsis:
PipeWire is a next-generation low-level multimedia framework for Linux. It is plugin based and completely replaces lots of other sub-systems, for example Pulse and Jack.

Mageia 9 supports both PulseAudio and PipeWire as sound servers, and both are installed by default, but only PulseAudio is enabled. To use Pipewire you must install a few plugins yourself, and this can be tricky due to conflicting packages. It also needs to be configured.

Draksound have been improved to handle the switching. You find it in Mageia Control Center Section Hardware > Sound Configuration.

Also, we here provide instructions to manually switch between PulseAudio and PipeWire. The script method is recommended and can switch in both directions.

Also Mageia 8 can use PipeWire - but it is not fully supported, see below.

Read this first

  • This page concentrate on Mageia 9 / Cauldron.
  • In Mageia 9, PipeWire/WirePlumber and PulseAudio can not both be installed on the same system or there is no sound.
  • Mageia 8 too can mostly work with both PulseAudio and PipeWire, see Mageia 8 below.
  • Sound server switching is now integrated into draksound, part of Mageia Control Center, in Mageia 9. Note that pipewire need to exist in configured repositories for urpmi for the options to show.
  • LXDE cannot use Pipewire.

Installation

Mageia tool

#### This is the recommended method. ####

( Mageia 9 )

To correctly switch between PulseAudio and PipeWire in both directions use draksound.

Note: Jackaudio is optional, not required.

Also see https://ml.mageia.org/l/arc/dev/2023-03/msg00095.html

Manual method

( Mageia 9 )

First: To implement the manual method, we have found that our alternate package manager DNF solves this better than urpmi. (Could easily remove too much by dependencies.)

So to go on with the manual method, make sure you have DNF installed and set up with the same repositories that you use with urpmi.

See our wiki page Using DNF.

Replace PulseAudio with PipeWire

# dnf swap --allowerasing pulseaudio pipewire-pulseaudio

Install optional plugins for PipeWire

The plugins listed here are all optional and can be installed when needed.

Install Alsa plugin
# dnf swap --allowerasing lib64alsa-plugins-pulseaudio pipewire-alsa
Install Jack plugin
# dnf install pipewire-plugin-jack

Configure Systemd

As Pipewire is a daemon, it needs to get started on boot. And your plugins must be loaded too. This is all handled by systemd services.

Enable Pipewire and plugins

Now we must get this all running and enable the services. They should be enabled as your user and not as root. Run as user:

$ systemctl --user --now enable pipewire.{service,socket}
$ systemctl --user --now enable pipewire-pulse.{service,socket}
Enable session manager

Finally, you will need a Pipewire session manager to get this all working. Here we use Wireplumber that should be installed already. Run as user:

$ systemctl --user --now enable wireplumber

Test audio

Now you can test if sound is working, if not try reboot. And with the following command, you can check if Pulse is running on top of Pipewire.

$ pactl info

It should say something like Server Name: PulseAudio (on PipeWire x.x.xx).

Configuration

Pipewire uses /etc/pipewire for system wide configuration and ~/.config/pipewire for local. You can find the default configuration in /usr/share/pipewire. Start with making a directory and put your configuration there.

# mkdir -p /etc/pipewire/pipewire.conf.d

Wireplumber is using /etc/wireplumber so make sure you put its configuration there.

Sound effects

Equaliser, Loudness etc... Can be had by Easy Effects which we have packaged in Mageia 9.

For Mageia 8 use Flatpak to install Easy Effects. Also see our forum.

Jack

Notes regarding Jack.

Pipewire can be either used as a replacement for Jack server, in which case user needs to install pipewire-jack-audio-connection-kit,

OR as a Jack client, in which case user needs to install pipewire-plugin-jack, and add libpipewire-module-jackdbus-detect module to their Pipewire config. The best way to do this is to add a file like /etc/pipewire/pipewire.conf.d/jack-client.conf or ~/.config/pipewire/pipewire.conf.d/jack-client.conf with the example configuration from pipewire documentation. And then of course when Jack server is started make sure that Pipewire is using Jack sink input/output in the desktop sound configuration (it might auto-switch to another audio output like HDMI if available).

Also see Pipewire Wiki on jack-server and jack-bridge.

Warning!
If you use software that depend on jackit like kdenlive you must use pipewire-plugin-jack because pipewire-jack-audio-connection-kit have conflicts with jackit and can't be installed together mga#33424#c19

Mageia 8

In Mageia 8, switching is much easier.

With required packages installed, to switch from PulseAudio and PipeWire, as user execute:

$ systemctl --user stop pulseaudio.service pulseaudio.socket
$ systemctl --user disable pulseaudio.service pulseaudio.socket
$ systemctl --user enable pipewire.service pipewire.socket
$ systemctl --user start pipewire.service pipewire.socket

Swap the names to switch in the other direction.

Notes

  • Some applications like Kmix are tied to PulseAudio, so they do not work with PipeWire.
  • WirePlumber is not available on Mageia 8.

[FIXME]: elaborate on needed packages.

More help

PipeWire documentation is available here. There is also a wiki available with lots of additional help with configuration.