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

Материал из ALT Linux Wiki
Строка 59: Строка 59:
Для проверки доступных устройств ввода используйте команду:
Для проверки доступных устройств ввода используйте команду:
  $ pwctl status
  $ pwctl status
Если она отсутствует, установите ее следующей командой:
# apt-get install /usr/bin/pwctl


===Звук не переключается автоматически при подключении нового устройства===
===Звук не переключается автоматически при подключении нового устройства===
Строка 76: Строка 79:
Перезапустите пользовательские службы '''pipewire.service''' и '''pipewire-pulse.service''' для применения изменений.  
Перезапустите пользовательские службы '''pipewire.service''' и '''pipewire-pulse.service''' для применения изменений.  
  $ systemctl --user restart pipewire.service pipewire-pulse.service
  $ systemctl --user restart pipewire.service pipewire-pulse.service
===Звук не переключается автоматически на наушники Bluetooth===
{{Note| Чтобы установить команду pactl, выполните:<br>
# apt-get install /usr/bin/pactl}}
{{Note| Чтобы установить команду pwctl, выполните:<br>
# apt-get install /usr/bin/pwctl}}
Выполните:
$ pactl load-module module-switch-on-connect
и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.
Возможно, вам потребуется выполнить:
$ wpctl set-default <id>.
Найти <id> можно следующим способом:
$ wpctl status


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

Версия от 10:16, 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

Примечание: Чтобы проверить, установлен ли у вас Pipewire, выполните в консоли команду: "rpm -q pipewire"


Откройте через текстовый редактор от рута /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
...
Проверка доступных устройств

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

$ pw-link -iol | grep input

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

Примечание: Чтобы проверить, установлен ли у вас Wireplumber, выполните в консоли команду: "rpm -q 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
Проверка доступных устройств

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

$ pwctl status

Если она отсутствует, установите ее следующей командой:

# apt-get install /usr/bin/pwctl

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

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

/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

Звук не переключается автоматически на наушники Bluetooth

Примечание: Чтобы установить команду pactl, выполните:
# apt-get install /usr/bin/pactl
Примечание: Чтобы установить команду pwctl, выполните:
# apt-get install /usr/bin/pwctl


Выполните:

$ pactl load-module module-switch-on-connect

и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.

Возможно, вам потребуется выполнить:

$ wpctl set-default <id>.

Найти <id> можно следующим способом:

$ wpctl status

Источники