|
|||||||
Установка PipeWire на Debian Linux 11
Время создания: 15.03.2023 17:40
Автор: Xintrea (перевод)
Текстовые метки: linux, debian, pipewire, pulseaudio, установка, инсталляция, настройка
Раздел: Компьютер - Linux - Звук и аудио
Запись: xintrea/mytetra_syncro/master/base/16788912172dmexfr2zt/text.html на raw.github.com
|
|||||||
|
|||||||
Установка и включение PipeWire в Debian 11 В официальной документации сказано, что PipeWire скорее всего уже установлена в любой современной операционной системе. Особенно это касается операционок Debian 10, 11 и 12. Однако PipeWire может находиться в неактивном (невключенном) состоянии. Чтобы сделать PipeWire основным сервисом воспроизведения звука, необходимо внести некоторые изменения в систему, которые заменят сервер PulseAudio на PipeWire. Перед тем как это делать, необходимо выяснить, установлен PipeWire или нет. Чтобы это проверить, можно использовать команду apt policy, которая покажет информацию о запрашиваемом приложении и его зависимостях, которые вместе с ним установлены. Чтобы это сделать, надо выполнить следующую команду: $ sudo apt policy pipewire pipewire-audio-client-libraries В ответ будет выдано примерно следующее: Проверка того, установлен ли пакет PipeWire В выводе команды видно, что установлены пакеты pipewire и pipewire-audio-client-libraries. Инсталляция PipeWire В случае, если было выяснено, что утилита PipeWire вообще не установлена в системе, необходимо воспользоваться следующей командой, которая произведет инсталляцию: $ sudo apt install pipewire pipewire-audio-client-libraries Примечание. Все последующие действия в большинстве своем будут происходить не для всей системы, а только для текущего залогиненого пользователя. Предполагается, что конфигурация PipeWire создается именно для конкретного пользователя. Поэтому команды управления сервисами будут написаны для работы не с системными сервисами, а с сервисами пользователя (на что указывает опция --user). Если необходимо делать действия на уровне системы, а не на уровне пользователя, то в команде systemctl надо убрать флаг --user и выполнять данную команду от суперпользователя. Замена PulseAudio на сервер PipeWire в Debian После того как необходимые пакеты и библиотеки установлены в систему, следует заменить PulseAudio на PipeWire. Для этого необходимо произвести следующие действия. Шаг 1: Создать пустой файл Перво-наперво нужно создать пустой файл в каталоге /etc/pipewire/media-session.d, используя команду: $ sudo touch /etc/pipewire/media-session.d/with-pulseaudio Шаг 2: Создать сервис pipewire-pulse Далее, следует создать сервис pipewire-pulse. Для этого надо скопировать файлы /usr/share/doc/pipewire/examples/systemd/user/pipewire-pulse.* (два файла с именами pipewire-pulse.service и pipewire-pulse.socket) в директорию /etc/systemd/user/ чтобы в последующем можно было с ними работать через команду systemctl. $ sudo cp /usr/share/doc/pipewire/examples/systemd/user/pipewire-pulse.* /etc/systemd/user/ Шаг 3: Перечитывание файлов сервисов Если предыдущий шаг прошел удачно, необходимо перечитать файлы сервисов, чтобы система узнала о сервисе, который был создан: $ systemctl --user daemon-reload Шаг 4: Запрет запуска сервиса PulseAudio Далее нужно запретить запуск сервиса PulseAudio. Делается это следующей командой: $ systemctl --user --now disable pulseaudio.service pulseaudio.socket В ответ команда должна показать, что сервис был исключен из запуска: Запрет сервиса PulseAudio в Debian 11 Шаг 5: разрешение работы и запуск сервиса PipeWire После того как был заблокирован сервер PulseAudio, необходимо выполнить команду, которая разрешит работу сервиса pipewire-pulse произведет его запуск: $ systemctl --user --now enable pipewire pipewire-pulse Данная команда должна вывести примерно следующее: Разрешение работы сервиса PipeWire в Debian 11 Проверка изменений в системе Теперь система полностью сконфигурирована чтобы использовать PipeWire поверх PulseAudio. Но как узнать, что конкретно используется для вывода звука? Самый простой способ - это воспользоваться командой pactl info (pactl - это утилита с полным названием PulseAudio Control). $ pactl info Использование PipeWire для вывода звука в Debian 11 Примечание переводчика: здесь непонятно, отключен ли PulseAudio или нет. Похоже, что вышеприведенная команда всего лишь показывает, куда направлен вывод PulseAudio. Сам PulseAudio, судя по командам выше, все-таки отключен для текущего пользователя. Сохранение изменений после перезагрузки После выполнения всех вышеуказанных команд система выводит звук с использованием PipeWire. Но если перезапустить компьютер, для вывода звука снова будет использоваться сервис PulseAudio. Неужели нужно будет всякий раз при загрузке заново вводить команды переконфигурирования звуковой подсистемы на PipeWire? Это же неприемлемо! Чтобы решить данную проблему надо просто "замаскировать" запуск сервиса pulseaudio.service по умолчанию. Для этого нужно выполнить команду: $ systemctl --user mask pulseaudio Далее можно перезагрузить систему и убедиться, что теперь для вывода звука используется PipeWire. Для понимания того, какие сервисы работают, можно выполнить команды: systemctl --user status pulseaudio systemctl --user status pipewire Замена PipeWire на сервер PulseAudio в Debian В настоящее время PipeWire считается ненадежным для использования в качестве аудиосервиса по умолчанию. Даже официальное руководство не рекомендует использовать PipeWire в качестве аудиосервиса, так как его работоспособность не гарантируется. Один из авторов, Саймон Маквитти (Simon McVittie) говорит: "This is not a supported scenario for Debian 11, and is considered experimental." Использование PipeWire может привести к неработоспособности определенных приложений, разломанной функциональности тех или иных частей звуковой подсистемы. Если возникнет какая-либо проблема со звуком, то имеется возможность выполнить действия, которые отключат PipeWire и вернут PulseAudio обратно. Вот как это рекомендуется делать. Step 1: Unmask PulseAudio If you have masked the PulseAudio server in the above step, then don’t forget to unmask it first. Otherwise, subsequent commands will throw an error. $ systemctl --user unmask pulseaudio Step 2: Disable PipeWire After that, you can execute the below code to stop PipeWire. $ systemctl --user --now disable pipewire pipewire-pulse Step 3: Enable PulseAudio Lastly, run the final command which will enable the PulseAudio service to be used as normal. $ systemctl --user --now enable pulseaudio.service pulseaudio.socket The behaviour of the above command Enable PulseAudio Step 4: Check Status Once the above command is performed successfully execute pactl info command to check audio server if the output display the “pulseaudio” as a server name, then you are work is completed here. PipeWire to PulseAudo And for any reason, if you get an error like “Connection failure: Connection refused pa_context_connect() failed: Connection refused”, then, first of all, try to restart your system, and even if that doesn’t get fixed, then you can comment down your query below. We will be happy to give you a hand. Всей вышеприведенной информации достаточно, чтобы заменить PipeWire и PulseAudio одно на другое и выбрать, что лучше работает. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|