С PulseAudio на PipeWire: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 28 промежуточных версий 2 участников)
Строка 1: Строка 1:
Первый раз делал по [https://trendoceans.com/enable-pipewire-and-disable-pulseaudio-in-ubuntu/ этой] инструкции. Ниже излагаю с коррективами под Альта.
Первый раз делал по [https://trendoceans.com/enable-pipewire-and-disable-pulseaudio-in-ubuntu/ этой] инструкции. Ниже излагаю с коррективами под Альта.
 
=Переход=
Поглядим от пользователя, чем обслуживается звуковая подсистема:
Поглядим от пользователя, чем обслуживается звуковая подсистема:
<source lang=bash>
<source lang=bash>
Строка 6: Строка 6:
Имя сервера: pulseaudio
Имя сервера: pulseaudio
</source>
</source>
Ни слова о PipeWire. Будем исправлять.
Ни слова о PipeWire — будем исправлять.
#Для начала удостоверимся, установлен ли PipeWire (если чего-то из списка нет, нужно доустановить):
#Для начала удостоверимся, установлен ли, собственно, PipeWire (если чего-то из списка нет, нужно доустановить):
#:<source lang=bash>
#:<source lang=bash>
$ rpm -qa --qf "%{name}\n" | grep -i pipe | sort -r
$ rpm -qa *pipewire* --qf "%{name}\n" | sort -r
plasma5-kpipewire-common
plasma5-kpipewire-common
plasma5-kpipewire
plasma5-kpipewire
pipewire-libs
pipewire-libs
pipewire
pipewire
libpipeline
libkpipewirerecord5
libkpipewirerecord5
libkpipewiredmabuf5
libkpipewiredmabuf5
libkpipewire5
libkpipewire5
libkpimgapipeople5
</source>
</source>
#Установим и прочее недостающее: {{cmd|# apt-get install -y kde5-volume-control-4-pipewire pipewire-utils wireplumber}}
#Добавим и прочее недостающее: {{cmd|# apt-get install -y kde5-volume-control-pipewire}}
#Отключим и заблокируем загрузку пульс-служб:
#Отключим и заблокируем загрузку пульс-служб:
#:{{cmd|$ for ACT in disable mask; do systemctl --user $ACT --now pulseaudio{,.socket,-x11}; done}}
#:<source lang=bash>
#:<source lang=bash>
$ 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/default.target.wants/pulseaudio.service.
Removed /home/admin/.config/systemd/user/sockets.target.wants/pulseaudio.socket.
Removed /home/admin/.config/systemd/user/sockets.target.wants/pulseaudio.socket.
Строка 30: Строка 28:
Created symlink /home/admin/.config/systemd/user/pulseaudio-x11.service → /dev/null.
Created symlink /home/admin/.config/systemd/user/pulseaudio-x11.service → /dev/null.
</source>
</source>
#Запустим PipeWire для пользователя:
#Запустим для пользователя PipeWire и WirePlumber:
#:{{cmd|$ systemctl --user enable --now pipewire{,-pulse}{,.socket} wireplumber}}
#:<source lang=bash>
#:<source lang=bash>
$ 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/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/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/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/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.
</source>
</source>
#Проверим сервер звука:
#Проверим сервер звука снова:
#:<source lang=bash>
#:<source lang=bash>
$ pactl info | grep -i pulsea
$ pactl info | grep -i pulsea
Имя сервера: PulseAudio (on PipeWire 0.3.71)
Имя сервера: PulseAudio (on PipeWire 0.3.71)
</source>
</source>
Перезайдя в ДЕ, удостоверимся командой выше с тем же выхлопом, что PipeWire на посту.
#Перезайдя в ДЕ, удостоверимся командой выше с тем же выхлопом, что PipeWire на посту.
 
=Опции=
[[Файл:PipeWire-combined.png|мини]]
Если пользователю требуется одновременный вывод на несколько устройств (сразу и на колонки, и на наушники, к примеру), в PulseAudio обеспечивавшийся ползунком '''<code>Simultaneous output</code>''', нужно:
*для текущего сеанса выполнить {{cmd|$ pactl load-module module-combine-sink}}
*для последующих скопировать к себе конфиг:
*:{{cmd|$ mkdir ~/.config/pipewire && cp /usr/share/pipewire/pipewire-pulse.conf ~/.config/pipewire/}}
* и уже в нём добавить в секцию '''<code>context.exec</code>''' такую строчку:
*:<source lang=ini>
context.exec = [
    { path = "pactl" args = "load-module module-combine-sink" }
    ...
]
</source>
В звуковых регуляторах станет доступен ползунок '''<code>combined</code>''' ''(см. фото)'' с тем же функционалом.


Если требуется одновременный вывод на несколько устройств (сразу и на колонки, и на наушники, к примеру), в PulseAudio обеспечивавшийся ползунком '''<code>Simultaneous output...</code>''' что-то там, нужно в каталог {{path|~/.config/pipewire/}} скопировать файл {{path|/usr/share/pipewire/pipewire-pulse.conf}} и уже там добавить в секцию '''<code>context.exec</code>''' строчку:
<pre>{ path = "pactl" args = "load-module module-combine-sink" }</pre>
Затем перезайти в ДЕ и обнаружить в звуковых регуляторах ползунок '''<code>combined</code>''' с тем же функционалом.
=Ссылки=
=Ссылки=
[[Настройка звука траблшутинг]]
[[Решение проблем PulseAudio и PipeWire]]
 
=Обратная связь=
*[https://t.me/gbIMoBou Личка]
*[[Участник:Дым#Заметки|Другие статьи]]

Текущая версия от 03:47, 5 августа 2024

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

Переход

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

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

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

  1. Для начала удостоверимся, установлен ли, собственно, PipeWire (если чего-то из списка нет, нужно доустановить):
    $ rpm -qa *pipewire* --qf "%{name}\n" | sort -r
    plasma5-kpipewire-common
    plasma5-kpipewire
    pipewire-libs
    pipewire
    libkpipewirerecord5
    libkpipewiredmabuf5
    libkpipewire5
    
  2. Добавим и прочее недостающее: # apt-get install -y kde5-volume-control-pipewire
  3. Отключим и заблокируем загрузку пульс-служб:
    $ 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.
    
  4. Запустим для пользователя 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.
    
  5. Проверим сервер звука снова:
    $ pactl info | grep -i pulsea
    Имя сервера: PulseAudio (on PipeWire 0.3.71)
    
  6. Перезайдя в ДЕ, удостоверимся командой выше с тем же выхлопом, что PipeWire на посту.

Опции

PipeWire-combined.png

Если пользователю требуется одновременный вывод на несколько устройств (сразу и на колонки, и на наушники, к примеру), в PulseAudio обеспечивавшийся ползунком Simultaneous output, нужно:

  • для текущего сеанса выполнить $ pactl load-module module-combine-sink
  • для последующих скопировать к себе конфиг:
    $ mkdir ~/.config/pipewire && cp /usr/share/pipewire/pipewire-pulse.conf ~/.config/pipewire/
  • и уже в нём добавить в секцию context.exec такую строчку:
    context.exec = [
        { path = "pactl" args = "load-module module-combine-sink" }
        ...
    ]
    

В звуковых регуляторах станет доступен ползунок combined (см. фото) с тем же функционалом.

Ссылки

Решение проблем PulseAudio и PipeWire

Обратная связь