Решение проблем PulseAudio и PipeWire: различия между версиями
Строка 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 | |||
==Источники== | ==Источники== |
Версия от 13:16, 22 сентября 2023
Решение проблем PulseAudio и PipeWire
PulseAudio
1
PipeWire
PipeWire не видит микрофон
Если у вас PipeWire не видит микрофон, попробуйте выключить в конфигурационном файле параметр api.alsa.use-acp и/или включить api.alsa.use-ucm.
Если используется pipewire-media-session
Откройте через текстовый редактор от рута /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
Откройте через текстовый редактор от рута /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
# apt-get install /usr/bin/pactl
# apt-get install /usr/bin/pwctl
Выполните:
$ pactl load-module module-switch-on-connect
и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.
Возможно, вам потребуется выполнить:
$ wpctl set-default <id>.
Найти <id> можно следующим способом:
$ wpctl status