Решение проблем PulseAudio и PipeWire
Решение проблем 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
Вывод:
$ wpctl status PipeWire 'pipewire-0' [0.3.71, petr@atk, cookie:1976916996] └─ Clients: 32. pipewire-media-session [0.3.71, petr@atk, pid:10780] 33. pipewire-media-session [0.3.71, petr@atk, pid:10780] 39. pipewire [0.3.71, petr@atk, pid:10781] 49. wpctl [0.3.71, petr@atk, pid:11459] 50. pipewire [0.3.71, petr@atk, pid:10781] Audio ├─ Devices: │ 41. Built-in Audio [alsa] │ ├─ Sinks: │ * 42. Built-in Audio Analog Stereo [vol: 0.74] <-- Здесь <id> = 42 │ ├─ Sink endpoints: │ ├─ Sources: │ * 43. Built-in Audio Analog Stereo [vol: 0.74] <-- Здесь <id> = 43 │ ├─ Source endpoints: │ └─ Streams: Video ├─ Devices: │ ├─ Sinks: │ ├─ Sink endpoints: │ ├─ Sources: │ ├─ Source endpoints: │ └─ Streams: Settings └─ Default Configured Node Names: 0. Audio/Sink alsa_output.pci-0000_00_05.0.analog-stereo