Как использовать PipeWire для замены PulseAudio в Ubuntu 22.04
В Ubuntu 22.04 улучшена поддержка мультимедийной платформы PipeWire с малой задержкой. Вот как настроить его для вывода PulseAudio, ALSA, JACK и Bluetooth.
Во-первых, Pipewire предварительно установлен «из коробки» и автоматически запускается в фоновом режиме. Вы можете проверить это, выполнив команду ниже в терминале:
systemctl --user status pipewire pipewire-session-manager
PipeWire устанавливается «из коробки»
ВАЖНО: Ubuntu официально это НЕ поддерживает. Он по-прежнему может не работать на некоторых устройствах. Не делайте этого на промышленной машине!
Шаг 1: установите клиентские библиотеки
Хотя он доступен «из коробки», по умолчанию он не используется для вывода звука. Чтобы начать, сначала нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал, и выполните команду для установки клиентских библиотек:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Шаг 2. Установите Wireplumber вместо Pipewire-media-session.
Сопровождающий проекта теперь рекомендует более продвинутый менеджер сеансов «wireplumber» при использовании Pipewire в качестве системного звукового сервера.
Чтобы установить пакет и удалить «pipewire-media-session», выполните в терминале команду ниже:
sudo apt install wireplumber pipewire-media-session-
ПРИМЕЧАНИЕ: знак «-» в конце команды указывает на необходимость удаления пакета. Команда также автоматически установит необходимый Pipewire-pulse.
Шаг 3. Скопируйте файлы конфигурации:
Wireplumber упрощает задачу! Если вы просто хотите заменить PulseAudio на Pipewire, включите службу мультимедийных сеансов и перезапустите, и все!
Чтобы клиенты ALSA были настроены для вывода через PipeWire, выполните команду, чтобы скопировать файл конфигурации:
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
Для клиента JACK выполните команду:
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
А затем sudo ldconfig
.
Для Bluetooth просто удалите пакетpulseaudio-module-bluetooth с помощью команды:
sudo apt remove pulseaudio-module-bluetooth
И, наконец, включите медиа-сеанс, выполнив команду:
systemctl --user --now enable wireplumber.service
Шаг 4: Проверьте
После перезапуска Ubuntu 22.04 выполните приведенную ниже команду в терминале.
pactl info
Он должен выводить звуковой сервер: PulseAudio (на PipeWire x.x.x) указывает, что Pipewire используется для вывода звука.
Как восстановить:
Чтобы отменить изменения, сначала удалите клиентские библиотеки с помощью команды:
sudo apt remove pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Удалите Wireplumber и установите обратно предыдущий пакет медиа-сессии (в конце также есть «-»):
sudo apt install pipewire-media-session wireplumber-
Наконец, повторно включите службу pipewire-media-session, выполнив команды:
rm -f ~/.config/systemd/user/pipewire-session-manager.service
systemctl --user --now enable pipewire-media-session
Благодаря @lestcape, если звук по-прежнему не работает, попробуйте отключить службы Pipewire-Pulse с помощью команды:
systemctl --user --now disable pipewire-pulse.service pipewire-pulse.socket
Если вы пытались включить его глобально, отключите его также с помощью команды:
sudo systemctl --global --now disable pipewire-pulse.service pipewire-pulse.socket
И снова включите исходную службу PulseAudio с помощью команды:
systemctl --user --now reenable pulseaudio.service pulseaudio.socket
sudo systemctl --global --now reenable pulseaudio.service pulseaudio.socket