С PulseAudio на PipeWire
Первый раз делал по этой инструкции. Ниже излагаю с коррективами под Альта.
Переход
Поглядим от пользователя, чем обслуживается звуковая подсистема:
$ pactl info | grep -i pulsea
Имя сервера: pulseaudio
Ни слова о PipeWire — будем исправлять.
- Для начала удостоверимся, установлен ли, собственно, PipeWire (если чего-то из списка нет, нужно доустановить):
$ rpm -qa *pipewire* --qf "%{name}\n" | sort -r plasma5-kpipewire-common plasma5-kpipewire pipewire-libs pipewire libkpipewirerecord5 libkpipewiredmabuf5 libkpipewire5
- Добавим и прочее недостающее: # apt-get install -y kde5-volume-control-4-pipewire pipewire-utils wireplumber
- Отключим и заблокируем загрузку пульс-служб:
- $ for ACT in disable mask; do systemctl --user $ACT --now pulseaudio{,.socket,-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.
- Запустим для пользователя PipeWire и WirePlumber:
- $ systemctl --user enable --now pipewire{,-pulse}{,.socket} wireplumber
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. Created symlink /home/admin/.config/systemd/user/pipewire-session-manager.service → /usr/lib/systemd/user/wireplumber.service. Created symlink /home/admin/.config/systemd/user/pipewire.service.wants/wireplumber.service → /usr/lib/systemd/user/wireplumber.service.
- Проверим сервер звука:
$ pactl info | grep -i pulsea Имя сервера: PulseAudio (on PipeWire 0.3.71)
- Перезайдя в ДЕ, удостоверимся командой выше с тем же выхлопом, что PipeWire на посту.
Опции
Если пользователю требуется одновременный вывод на несколько устройств (сразу и на колонки, и на наушники, к примеру), в PulseAudio обеспечивавшийся ползунком Simultaneous output...
что-то там, нужно:
- для текущего сеанса выполнить $ pactl load-module module-combine-sink
- для последующих — в каталог ~/.config/pipewire/ скопировать файл /usr/share/pipewire/pipewire-pulse.conf и уже там добавить в секцию
context.exec
такую строчку:context.exec = [ { path = "pactl" args = "load-module module-combine-sink" } ... ]
В звуковых регуляторах станет доступен ползунок combined
(см. фото) с тем же функционалом.
Ссылки
Решение проблем PulseAudio и PipeWire