LinuxRuLinux без лишней теории
Звук в Linux

PipeWire без звука: пошаговая диагностика в Linux

Редакция LinuxRu7 мин чтенияИнструкции

Если с PipeWire нет звука, сначала проверьте службы командой systemctl --user status pipewire pipewire-pulse wireplumber, а затем выбранный выход в wpctl status: в большинстве случаев виноват упавший WirePlumber или звук уходит не на то устройство. Дальше разобраны проверки ядра и прошивки, профили HDMI, Bluetooth, отдельные программы и треск.

PipeWire без звука: пошаговая диагностика в Linux
Фото: Pete Brown, CC BY 2.0, Wikimedia Commons
Содержание
  1. За минуту
  2. Службы
  3. ALSA и ядро
  4. Вывод и профили
  5. Остатки PulseAudio
  6. Bluetooth
  7. Одна программа
  8. Треск
  9. Сброс и логи
  10. Частые вопросы

Три проверки за минуту и карта симптомов

Большинство случаев пропавшего звука в Linux решаются без терминала. Прежде чем перезапускать службы, проверьте три вещи:

  1. Не выключен ли звук значком в трее и не стоит ли громкость на нуле. Звучит смешно, но после обновления громкость иногда сбрасывается в ноль.
  2. Какое устройство выбрано для вывода. Ноутбук с подключённым монитором по HDMI может отправлять звук в монитор без динамиков.
  3. Нет ли звука везде или только в одной программе. Включите ролик в браузере и звук в Параметрах, раздел Звук, кнопка проверки динамиков.

Если это не помогло, дальше по таблице: по симптому видно, с какого раздела начать.

СимптомВероятная причинаГде искать
В настройках только Dummy Outputне запущен WirePlumber или ядро не видит картуслужбы, затем ALSA и прошивка
wpctl пишет Could not connect to PipeWireслужба PipeWire не работает в сеансе пользователяслужбы
Устройство есть, звука нетне тот вывод, неверный профиль, mute в ALSAустройство по умолчанию и alsamixer
Нет звука по HDMIвыбран аналоговый профильпрофили
Блютус-наушники хрипят или тихиевключён гарнитурный профиль HFPBluetooth
Нет звука в одной программеправа Flatpak или выбранный в программе выводотдельные приложения
Треск, заиканиямаленький буфер, нагрузка, энергосбережениетреск

Работают ли PipeWire, pipewire-pulse и WirePlumber

Звуковой стек в современных Fedora, Ubuntu, Debian 13 и Arch состоит из трёх частей. PipeWire гоняет аудиопотоки, pipewire-pulse притворяется PulseAudio для старых программ, WirePlumber управляет сеансом: выбирает устройства, профили, запоминает громкость. Без WirePlumber PipeWire запущен, но устройств не видит, отсюда тот самый Dummy Output.

Все три работают как пользовательские службы systemd, поэтому проверяем их с ключом --user и без sudo:

systemctl --user status pipewire pipewire-pulse wireplumber

У каждой должно быть active (running). Если что-то упало, перезапускаем всё разом:

systemctl --user restart pipewire pipewire-pulse wireplumber

Если служба не найдена или стоит disabled, включите её:

systemctl --user enable --now pipewire pipewire-pulse wireplumber

Частая ошибка: запуск этих команд через sudo или под root. Пользовательские службы работают в вашем сеансе, root про них ничего не знает. Общий порядок работы с unit-файлами и журналом описан в статье про systemctl, а разбор причин падения служб в материале про упавшую службу.

Убедиться, что программы общаются именно с PipeWire, можно командой:

pactl info | grep 'Server Name'

В ответе должно быть что-то вроде PulseAudio (on PipeWire 1.4.x). Если там просто PulseAudio, в системе работает старый звуковой сервер, об этом раздел ниже.

Видит ли ядро звуковую карту: ALSA и прошивки

PipeWire не может вывести звук на устройство, которого нет на уровне ядра. Список карт, которые видит ALSA (пакет alsa-utils):

aplay -l

Пустой список или сообщение no soundcards found означает, что проблема ниже PipeWire: драйвер не загрузился. Смотрим сообщения ядра:

sudo dmesg | grep -iE 'snd|sof|firmware'

На многих ноутбуках последних лет звук работает через Intel SOF (Sound Open Firmware) с цифровыми микрофонами. Ему нужны отдельные файлы прошивки, и если их нет, в dmesg появится ошибка загрузки firmware. Пакет называется по-разному:

# Debian, Ubuntu
sudo apt install firmware-sof-signed
# Fedora
sudo dnf install alsa-sof-firmware
# Arch
sudo pacman -S sof-firmware

После установки перезагрузитесь. Если SOF так и не заработал, временно можно заставить ядро использовать старый драйвер HDA, добавив параметр snd_intel_dspcfg.dsp_driver=1 в строку загрузки ядра. Встроенные цифровые микрофоны в этом режиме обычно перестают работать, поэтому это обходной путь, а не решение.

Если карта в aplay -l есть, проверьте, не заглушены ли каналы на уровне ALSA. Запустите alsamixer, клавишей F6 выберите карту, найдите Master, Speaker и Headphone. Буквы MM внизу столбца означают mute, снимается клавишей M.

Устройство по умолчанию, громкость и профили

Главная команда диагностики PipeWire - wpctl status. Она показывает дерево устройств: Sinks (выходы), Sources (входы) и Streams (программы, которые сейчас играют). Звёздочкой отмечено устройство по умолчанию.

wpctl status

Если звёздочка не у того выхода, назначьте нужный по его номеру из списка:

wpctl set-default 52

Громкость и mute текущего выхода:

wpctl get-volume @DEFAULT_AUDIO_SINK@
wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
wpctl set-volume @DEFAULT_AUDIO_SINK@ 60%

Проверочный сигнал по каналам, чтобы исключить программу и браузер:

speaker-test -c 2 -t wav -l 1

Профили и HDMI

Одна звуковая карта может работать в нескольких профилях: аналоговый стерео выход, HDMI, цифровой S/PDIF. Если нужен звук через монитор или телевизор, переключите профиль. Нагляднее всего это сделать в pavucontrol (в Plasma аналог встроен в Параметры, раздел Звук), вкладка Конфигурация. Из терминала номер устройства берётся из wpctl status (раздел Devices), а список профилей из wpctl inspect:

wpctl inspect 45
wpctl set-profile 45 3

Если профили HDMI вообще не предлагаются, проверьте, что монитор подключён до входа в систему, и переподключите кабель: HDMI-звук появляется только при активном выходе на экран.

Остатки PulseAudio и неполная установка

После перехода со старой системы бывает, что работают оба звуковых сервера и мешают друг другу, или PipeWire стоит без половины компонентов. Проверить, нет ли настоящего PulseAudio:

systemctl --user status pulseaudio.service pulseaudio.socket

Если он активен, поставьте полный набор PipeWire. Нужные пакеты по дистрибутивам:

# Debian 13, Ubuntu: метапакет тянет pipewire-pulse, pipewire-alsa и WirePlumber
sudo apt install pipewire-audio
# Arch: pipewire-pulse при установке предложит удалить pulseaudio
sudo pacman -S pipewire pipewire-pulse pipewire-alsa wireplumber
# Fedora: всё стоит по умолчанию, при необходимости переустановите
sudo dnf reinstall pipewire pipewire-pulseaudio wireplumber

Затем отключите службы PulseAudio и перезайдите в сеанс:

systemctl --user mask pulseaudio.service pulseaudio.socket

Ещё одна старая ловушка - файл ~/.asoundrc или /etc/asound.conf, оставшийся от ручной настройки ALSA. Он может направлять звук мимо PipeWire в конкретную карту. Переименуйте его и проверьте снова.

Bluetooth-наушники: тихо, хрипит или не подключается

У беспроводных наушников два режима. A2DP даёт качественный стерео звук, но без микрофона. HSP и HFP включают микрофон, а звук становится моно и глухим, как в телефоне. Если наушники вдруг зазвучали как рация, система переключилась в гарнитурный профиль, обычно потому что какая-то программа открыла микрофон.

Вернуть A2DP можно в настройках звука, выбрав профиль высокого качества. Чтобы WirePlumber перестал переключаться сам, отключите автопереход в гарнитуру:

wpctl settings --save bluetooth.autoswitch-to-headset-profile false

Команда wpctl settings есть в WirePlumber 0.5 и новее. Если наушники подключаются, но в списке выходов не появляются, в Debian и Ubuntu проверьте пакет libspa-0.2-bluetooth и перезапустите службы. Иногда помогает просто удалить устройство из списка Bluetooth и спарить его заново.

Звук есть везде, кроме одной программы

Посмотрите в wpctl status раздел Streams, пока программа должна играть. Если её там нет, она вообще не обращается к звуковому серверу.

  • Flatpak-приложения. Программе нужен доступ к сокету PulseAudio. Проверьте разрешения командой flatpak info --show-permissions с идентификатором приложения, в списке sockets должно быть pulseaudio. Как безопасно добавлять права, рассказано в статье про разрешения Flatpak.
  • Программа с собственным выбором устройства. Плееры, OBS, Discord и браузеры умеют выводить не туда, куда система. Проверьте настройки звука внутри программы.
  • Игры через Proton. Старые игры иногда требуют 32-битных библиотек звука. Подробнее о типичных проблемах в материале про Proton и Steam.
  • Программы на чистом ALSA. Без пакета pipewire-alsa они пытаются захватить карту напрямую и не могут. Установите его.

Треск, щелчки и заикания

Если звук прерывается под нагрузкой, PipeWire не успевает заполнить буфер. Для проверки временно увеличьте размер кванта:

pw-metadata -n settings 0 clock.force-quantum 1024

Если треск пропал, причина найдена. Вернуть значение по умолчанию можно той же командой с нулём вместо 1024. Посмотреть в реальном времени, какие потоки опаздывают, поможет pw-top: столбец ERR показывает пропуски.

Щелчок при начале воспроизведения на ноутбуке обычно связан с энергосбережением звуковой карты: она засыпает и просыпается. Этот режим настраивается параметром модуля snd_hda_intel power_save, его меняют некоторые утилиты экономии батареи.

Сброс настроек WirePlumber и сбор логов

WirePlumber запоминает выбранные устройства, профили и громкость. Если в этом состоянии поселилась ошибка, проще его сбросить:

systemctl --user stop wireplumber
rm -r ~/.local/state/wireplumber
systemctl --user start wireplumber

Выбор устройств по умолчанию и громкость вернутся к заводским, это ожидаемо.

Перед вопросом на форуме соберите четыре вывода в один файл: wpctl status, aplay -l, pactl info и journalctl --user -u pipewire -u wireplumber -b. По ним сразу видно, на каком уровне проблема: ядро, сервер или сеанс. Без этих данных первый ответ почти всегда будет просьбой их прислать.

Подробное описание конфигурации, переменных и редких случаев собрано на странице PipeWire в ArchWiki, она полезна и для пользователей других дистрибутивов.

Частые вопросы

Почему в настройках звука только Dummy Output?

PipeWire не видит устройств. Чаще всего не запущен WirePlumber или ядро не загрузило драйвер звуковой карты. Проверьте systemctl --user status wireplumber и aplay -l.

Как перезапустить PipeWire без перезагрузки?

Выполните systemctl --user restart pipewire pipewire-pulse wireplumber от обычного пользователя, без sudo.

Как выбрать устройство вывода звука в терминале?

Найдите номер выхода в wpctl status и назначьте его командой wpctl set-default с этим номером.

Нет звука по HDMI в Linux, что делать?

Переключите профиль звуковой карты на HDMI в pavucontrol или настройках звука, либо командой wpctl set-profile. Монитор должен быть подключён и активен.

Почему Bluetooth-наушники звучат глухо?

Включился гарнитурный профиль HSP или HFP. Выберите A2DP в настройках звука и отключите автопереключение: wpctl settings --save bluetooth.autoswitch-to-headset-profile false.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.