Решение проблем PulseAudio и PipeWire: различия между версиями

Материал из ALT Linux Wiki
Строка 50: Строка 50:
Затем перезапустите PipeWire и проверьте список доступных устройств:
Затем перезапустите PipeWire и проверьте список доступных устройств:


  $systemctl --user --now enable pipewire-media-session.service
  $ systemctl --user --now enable pipewire-media-session.service


====Проверка доступных устройств====
====Проверка доступных устройств====
Строка 56: Строка 56:
  <s>$ pw-record --list-targets</s> - list-targets [https://wiki.archlinux.org/title/PipeWire#Audio_2 был удален] в более новых версиях
  <s>$ pw-record --list-targets</s> - list-targets [https://wiki.archlinux.org/title/PipeWire#Audio_2 был удален] в более новых версиях
  $ pw-link -iol | grep input
  $ pw-link -iol | grep input
===Звук не переключается автоматически при подключении нового устройства===
Чтобы автоматически переключаться на вновь подключенные устройства, раскомментируйте следующую строку (выделена жирным):
{{path|/usr/share/pipewire/pipewire-pulse.conf}} (или добавьте в {{path|~/.config/pipewire/pipewire.conf}})
...
context.exec = [
    { path = "pactl"        args = "load-module module-always-sink" }
    '''{ path = "pactl"        args = "load-module module-switch-on-connect" }'''
    #{ path = "/usr/bin/sh"  args = "~/.config/pipewire/default.pw" }
]
...
Перезапустите пользовательские службы '''pipewire.service''' и '''pipewire-pulse.service''' для применения изменений.
$ systemctl --user restart pipewire.service pipewire-pulse.service


==Источники==
==Источники==

Версия от 11:47, 22 сентября 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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

PulseAudio

1

PipeWire

Примечание: Для работы с утилитами Pipewire необходимо установить пакет pipewire-utils


PipeWire не видит микрофон

Если у вас PipeWire не видит микрофон, попробуйте выключить в конфигурационном файле параметр api.alsa.use-acp и/или включить api.alsa.use-ucm.

Если используется pipewire-media-session

TODO:
как указать? не установлен пакет wireplumber?


Откройте через текстовый редактор от рута /etc/pipewire/media-session.d/alsa-monitor.conf /usr/share/pipewire/media-session.d/alsa-monitor.conf

И приведите выделенные параметры к указанным значениям:

...
rules = [
    {
        ...
        actions = {
        update-props = {
            ...
            api.alsa.use-acp = false
...

Если используется wireplumber

TODO:
как указать? "установлен пакет wireplumber"?


Откройте через текстовый редактор от рута /etc/wireplumber/main.lua.d/50-alsa-config.lua (или ~/.config/wireplumber/main.lua.d/50-alsa-config.lua) /usr/share/wireplumber/main.lua.d/50-alsa-config.lua

...
alsa_monitor.rules = {
    {
        ...
        apply_properties = {
            -- Использование устройств ALSA-Card-Profile. Они используют UCM или
            -- конфигурацию профиля для настройки параметров устройства и микшера.
            -- ["api.alsa.use-acp"] = true,
 
            -- Использование UCM вместо profile по возможности. Можно отключить,
            -- чтобы не пытаться использовать профиль UCM.
            ["api.alsa.use-ucm"] = true,
...

Затем перезапустите PipeWire и проверьте список доступных устройств:

$ systemctl --user --now enable pipewire-media-session.service

Проверка доступных устройств

Для проверки доступных устройств ввода используйте команду:

$ pw-record --list-targets - list-targets был удален в более новых версиях
$ pw-link -iol | grep input

Звук не переключается автоматически при подключении нового устройства

Чтобы автоматически переключаться на вновь подключенные устройства, раскомментируйте следующую строку (выделена жирным):

/usr/share/pipewire/pipewire-pulse.conf (или добавьте в ~/.config/pipewire/pipewire.conf)

...
context.exec = [
    { path = "pactl"        args = "load-module module-always-sink" }
    { path = "pactl"        args = "load-module module-switch-on-connect" }
    #{ path = "/usr/bin/sh"  args = "~/.config/pipewire/default.pw" }
]
...

Перезапустите пользовательские службы pipewire.service и pipewire-pulse.service для применения изменений.

$ systemctl --user restart pipewire.service pipewire-pulse.service

Источники