С PulseAudio на PipeWire

Материал из ALT Linux Wiki

Первый раз делал по этой инструкции. Ниже излагаю с коррективами под Альта.

Поглядим от пользователя, чем обслуживается звуковая подсистема:

$ pactl info | grep -i pulsea
Имя сервера: pulseaudio

Ни слова о PipeWire. Будем исправлять.

  1. Для начала удостоверимся, установлен ли PipeWire (если чего-то из списка нет, нужно доустановить):
    $ rpm -qa --qf "%{name}\n" | grep -i pipe | sort -r
    plasma5-kpipewire-common
    plasma5-kpipewire
    pipewire-libs
    pipewire
    libpipeline
    libkpipewirerecord5
    libkpipewiredmabuf5
    libkpipewire5
    libkpimgapipeople5
    
  2. Установим и прочее недостающее: # apt-get install -y kde5-volume-control-4-pipewire pipewire-utils wireplumber
  3. Отключим и заблокируем загрузку пульс-служб:
    $ for ACT in disable mask; do systemctl --user $ACT --now pulseaudio.s{ervice,ocket} pulseaudio-x11; done
    Removed /home/admin/.config/systemd/user/default.target.wants/pulseaudio.service.
    Removed /home/admin/.config/systemd/user/sockets.target.wants/pulseaudio.socket.
    Created symlink /home/admin/.config/systemd/user/pulseaudio.service → /dev/null.
    Created symlink /home/admin/.config/systemd/user/pulseaudio.socket → /dev/null.
    Created symlink /home/admin/.config/systemd/user/pulseaudio-x11.service → /dev/null.
    
  4. Запустим PipeWire для пользователя:
    $ systemctl --user enable --now pipewire{,-pulse}.{socket,service}
    Created symlink /home/admin/.config/systemd/user/sockets.target.wants/pipewire.socket → /usr/lib/systemd/user/pipewire.socket.
    Created symlink /home/admin/.config/systemd/user/default.target.wants/pipewire.service → /usr/lib/systemd/user/pipewire.service.
    Created symlink /home/admin/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket → /usr/lib/systemd/user/pipewire-pulse.socket.
    Created symlink /home/admin/.config/systemd/user/default.target.wants/pipewire-pulse.service → /usr/lib/systemd/user/pipewire-pulse.service.
    
  5. Проверим сервер звука:
    $ pactl info | grep -i pulsea
    Имя сервера: PulseAudio (on PipeWire 0.3.71)
    

Перезайдя в ДЕ, удостоверимся командой выше с тем же выхлопом, что PipeWire на посту.

Если требуется одновременный вывод на несколько устройств (сразу и на колонки, и на наушники, к примеру), в PulseAudio обеспечивавшийся ползунком Simultaneous output... что-то там, нужно в каталог ~/.config/pipewire/ скопировать файл /usr/share/pipewire/pipewire-pulse.conf и уже там добавить в секцию context.exec строчку:

{ path = "pactl" args = "load-module module-combine-sink" }

Затем перезайти в ДЕ и обнаружить в звуковых регуляторах ползунок combined с тем же функционалом.