Привіт, це Kernelka! 🎧 Сьогодні розберемося, як перейти на PipeWire у Linux без болю: від встановлення до тонкої оптимізації затримки та вирішення конфліктів з ALSA/PulseAudio. Працюватимемо через термінал Linux і переглянемо зручні GUI-інструменти. Поїхали!

Що таке PipeWire і чому варто перейти

PipeWire — сучасний мультимедійний сервер для Linux, який замінює PulseAudio і JACK, працює з Bluetooth-аудіо, екранним захопленням і дає нижчу затримку. Переваги: стабільніший звук у браузерах і месенджерах, краще мікшування для ігор та стримінгу, простіше професійне аудіо без окремого JACK.

Покрокова інсталяція та перехід

1) Перевірте, що у вас зараз

pactl info | grep "Server Name"
wpctl status | sed -n '1,30p'
systemctl --user status pipewire.service pipewire-pulse.service wireplumber.service --no-pager

Якщо бачите «PulseAudio (on PipeWire)» — PipeWire вже активний. Якщо просто «PulseAudio», переходимо далі.

2) Встановлення пакетів

Оберіть свою дистрибуцію:

Debian/Ubuntu/Pop!_OS/Linux Mint

sudo apt update
sudo apt install pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jack libspa-0.2-bluetooth

Fedora (PipeWire за замовчуванням, на випадок перевірки/довстановлення)

sudo dnf install pipewire wireplumber pipewire-alsa pipewire-jack-audio-connection-kit

Arch/Manjaro/EndeavourOS

sudo pacman -Syu pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jack

3) Вимкнення PulseAudio та запуск PipeWire

# Зупинити та заборонити PulseAudio (user units)
systemctl --user --now disable pulseaudio.service pulseaudio.socket || true
systemctl --user mask pulseaudio || true
pulseaudio -k || true

# Увімкнути PipeWire + WirePlumber
systemctl --user enable --now pipewire.service pipewire-pulse.service wireplumber.service

4) Перевірка роботи

pactl info | grep "Server Name"        # має бути: PulseAudio (on PipeWire)
wpctl status                            # список пристроїв/потоків
pw-top                                  # монітор потоків у реальному часі (q — вийти)

5) Bluetooth-профілі

Якщо Bluetooth навушники не перемикаються на A2DP/мікрофон — переконайтеся, що встановлено libspa-0.2-bluetooth, а потім:

sudo systemctl restart bluetooth
systemctl --user restart wireplumber pipewire

Оптимізація затримки (low-latency) ⚙️

Для ігор, стримінгу або запису аудіо зменшуємо буфери. Створіть оверлеї конфігів (без редагування системних файлів):

mkdir -p ~/.config/pipewire/pipewire.conf.d ~/.config/pipewire/client.conf.d

cat > ~/.config/pipewire/pipewire.conf.d/99-low-latency.conf <<'EOF'
context.properties = {
    default.clock.rate          = 48000
    default.clock.quantum       = 64
    default.clock.min-quantum   = 32
    default.clock.max-quantum   = 128
    default.clock.allowed-rates = [ 44100 48000 96000 ]
}
EOF

cat > ~/.config/pipewire/client.conf.d/10-pulse-lowlatency.conf <<'EOF'
{ "pulse.properties": {
    "pulse.min.req":       "32/48000",
    "pulse.default.req":   "64/48000",
    "pulse.max.req":       "128/48000",
    "pulse.min.quantum":   "32/48000",
    "pulse.max.quantum":   "128/48000"
} }
EOF

# Перезапуск юнітів після змін
systemctl --user restart pipewire pipewire-pulse wireplumber

Примітка: 48 кГц — безпечний стандарт для ігор/стримінгу. Якщо чуєте тріск — збільшіть quantum до 96 або 128.

Усунення конфліктів з ALSA/PulseAudio

ALSA-захоплення та «тиша»

Переконайтеся, що встановлено pipewire-alsa. Потім перевірте, хто тримає пристрій ALSA:

fuser -v /dev/snd/*

Закрийте програми, що блокують пристрій, або перезапустіть їх. У разі плутанини видаліть кеші користувача:

rm -rf ~/.config/pipewire ~/.cache/wireplumber
systemctl --user restart pipewire wireplumber

PulseAudio самозапуск (autospawn)

Щоб PulseAudio більше не стартував у фоновому режимі:

mkdir -p ~/.config/pulse
printf "autospawn = no\n" > ~/.config/pulse/client.conf
pulseaudio -k || true

Діагностика через логи

journalctl --user -u pipewire -u pipewire-pulse -u wireplumber -e --no-pager

Альтернативні способи

  • На Ubuntu 22.10+ PipeWire увімкнено за замовчуванням. На 22.04 LTS — просто встановіть і увімкніть пакети, як вище.
  • На Fedora/Arch перехід зазвичай уже виконано; перевірка потрібна лише для специфічних середовищ або після апгрейдів.
  • Для професійного аудіо з JACK-додатками встановлюйте pipewire-jack — більшість програм працюватимуть без окремого jackd.

GUI-спосіб керування звуком

Якщо вам зручніше через GUI Linux, ось варіанти:

  • Налаштування системи: GNOME Settings → Sound або KDE System Settings → Audio для вибору пристроїв, рівнів гучності та входів/виходів.
  • pavucontrol: детальні профілі, гучність на застосунок, перемикання портів.
  • Helvum або qpwgraph: графічний «патчбей» для з’єднання потоків між застосунками (аналог JACK-патчів).
  • QJackCtl: якщо звикли до JACK-утиліт — працює поверх PipeWire.

FAQ

Мій міні FAQ Linux для найтиповіших ситуацій.

Як повернутися на PulseAudio?

systemctl --user --now disable pipewire-pulse.service
sudo apt install pulseaudio
systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
systemctl --user restart pulseaudio

Після переходу немає звуку

  • Переконайтеся, що правильний профіль/порт обрано у pavucontrol/Settings → Sound.
  • Скиньте конфіги користувача і перезапустіть юніти (див. вище).
  • Оновіть систему та перезавантажте ПК.

Тріск/клацання або великі затримки

  • Збільшіть default.clock.quantum до 96 або 128.
  • Закрийте надмірні вкладки/застосунки, перевірте pw-top.
  • Переконайтеся, що ЦП не у жорсткій економії (TLP/auto-cpufreq можуть впливати).

Bluetooth-мікрофон не працює в A2DP

  • Потрібен профіль HFP/HSP для мікрофона — якість гірша, це очікувано.
  • Перевірте libspa-0.2-bluetooth та перезапустіть bluetooth + wireplumber.

Програми «бачать» PulseAudio, це нормально?

Так. pipewire-pulse надає сумісний сервер, тож клієнти PulseAudio працюють через PipeWire.

Екранне захоплення лагає

Перевірте портали десктопу:

sudo apt install xdg-desktop-portal xdg-desktop-portal-gtk # або -kde/-wlr залежно від сесії

Порада від Kernelka

Щоб зменшити затримки без тріску: тримайте 48 кГц і поступово знижуйте quantum (128 → 96 → 64). Якщо запис/стрім — використовуйте дротові навушники й окремий мікрофон, а Bluetooth залиште для прослуховування. І не забувайте про резервне копіювання конфігів перед експериментами 😉

Підсумок

  • Встановіть PipeWire, WirePlumber і сумісні шари (Pulse/ALSA/JACK).
  • Вимкніть PulseAudio і увімкніть користувацькі юніти PipeWire.
  • Переконайтеся у роботі через pactl info, wpctl status, pw-top.
  • Налаштуйте low-latency оверлеями у ~/.config/pipewire/*.
  • Розв’язуйте конфлікти з ALSA/PulseAudio через автоспаун, логи та перезапуски.
  • Для зручності керуйте звуком через GUI-утиліти. ✅