PipeWire на Linux: как устроен звук и как быстро найти проблему
Почему PipeWire стоит изучить
На современных Linux-системах PipeWire стал центральной точкой, где сходятся приложения, устройства и правила переключения. Когда всё настроено, это удобно. Когда что-то “поехало”, важно понимать, где именно искать причину: на уровне железа, на уровне сервиса или в выборе устройства по умолчанию. Ниже — диагностический сценарий, который быстро сужает круг проблем.
Из чего состоит звуковая цепочка
ALSA отвечает за то, чтобы система вообще видела звуковые устройства. Это нижний уровень.
PipeWire соединяет приложения и устройства в потоки: кто воспроизводит, кто записывает и куда идёт звук.
WirePlumber управляет правилами: какое устройство считать основным, как реагировать на подключение гарнитуры и какой профиль выбирать.
Если после обновления “вдруг пропал звук”, нередко оказывается, что физически ничего не сломалось: изменился выбранный выход или вход, либо переключился профиль гарнитуры. Поэтому сначала проверяют фактические текущие настройки, а уже потом лезут в драйверы и переустановки.
Проверка ALSA: видит ли система устройства
Начинаем с факта: есть ли устройства воспроизведения и захвата.
aplay -l
arecord -l
Если списки пустые, переходить к PipeWire рано. Сначала проверяют USB-порт, питание, кабель, настройки BIOS/UEFI и поддержку драйверами ядра.
Проверка сервисов PipeWire и WirePlumber
В большинстве окружений PipeWire работает как user-сервисы systemd. Смотрим их состояние.
systemctl --user status pipewire --no-pager -l
systemctl --user status wireplumber --no-pager -l
Если видны ошибки или частые перезапуски, читаем логи — там обычно есть конкретика.
journalctl --user -u pipewire -n 120 --no-pager
journalctl --user -u wireplumber -n 120 --no-pager
Что выбрано по умолчанию: выход и микрофон
Частая ситуация: звук идёт “не туда”, либо выбран “не тот” микрофон. Проверяем дефолтные устройства и текущие подключения.
wpctl status
Проверяем уровень и mute у дефолтных устройств.
wpctl get-volume @DEFAULT_AUDIO_SINK@
wpctl get-volume @DEFAULT_AUDIO_SOURCE@
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
Если уровень выглядит заниженным, можно аккуратно поднять громкость, например до 60%.
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.6
wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.6
Видит ли система поток от приложения
Если видео играет, а тишина — полезно понять, создаёт ли приложение аудиопоток. Многие программы показываются через слой совместимости PulseAudio.
pactl list short sink-inputs
pactl list short source-outputs
Во время воспроизведения должен появляться sink-input. Если его нет, проблема чаще всего в приложении или в том, что оно выводит звук в другой backend.
Bluetooth: профили и резкие изменения качества
Bluetooth-гарнитуры работают в разных режимах. В одном качество выше, но микрофон может не использоваться. В другом микрофон доступен, но звук и поведение меняются. Если после звонка или запуска мессенджера всё стало “как по телефону”, почти всегда причина — переключение профиля.
Смотрим карточки устройств и активный профиль.
pactl list cards | sed -n '1,220p'
В выводе важны блоки Profiles и Active Profile. Это прямой ответ на вопрос, почему качество внезапно изменилось.
Проверка: действительно ли приложения работают через PipeWire
Иногда система в целом на PipeWire, но отдельное приложение подключается иначе. Проверяем, какой аудиосервер видит слой совместимости.
pactl info | sed -n '1,40p'
Если там указан PipeWire, значит слой совместимости работает, и дальнейшая диагностика по этим инструментам корректна.
Короткая последовательность проверок, когда “нет звука”
Сначала убеждаемся, что ALSA видит устройства.
aplay -l
Потом проверяем, что PipeWire и WirePlumber активны.
systemctl --user is-active pipewire wireplumber
Затем смотрим, что выбрано по умолчанию и не включён ли mute.
wpctl status
wpctl get-volume @DEFAULT_AUDIO_SINK@
wpctl get-volume @DEFAULT_AUDIO_SOURCE@
И только после этого проверяем, создаёт ли приложение аудиопоток.
pactl list short sink-inputs
Итог
PipeWire делает звук более управляемым: есть устройства, есть сервис, есть правила выбора, есть приложения. Если идти по цепочке и опираться на вывод команд, проблема локализуется быстро и предсказуемо.
Важно
Команды и детали поведения могут немного отличаться между дистрибутивами и окружениями. Ориентируйся на текущий вывод диагностики и меняй настройки по одному шагу, фиксируя результат.