Настройка Bluetooth в Ubuntu/Debian: подключение устройств, звук и быстрый ремонт

Чтобы Bluetooth заработал в Ubuntu/Debian, проверьте блокировку rfkill, запустите сервис bluetooth, установите BlueZ/Blueman и настройте аудио-слой (PipeWire или PulseAudio), иначе не появятся профили A2DP/HFP и звук.

Оглавление

Быстрая проверка и включение Bluetooth

  1. Снять блокировку rfkill (частая причина «Bluetooth не включается»):
rfkill list
sudo rfkill unblock bluetooth

Нужно, чтобы было Soft blocked: no и Hard blocked: no.

Если Hard blocked: yes, это аппаратная блокировка (переключатель, BIOS/UEFI, режим полёта на ноутбуке). Командами в системе это обычно не лечится.

  1. Запустить стек BlueZ (служба bluetoothd):
systemctl status bluetooth --no-pager
sudo systemctl enable --now bluetooth
  1. Проверить, виден ли контроллер:
bluetoothctl list
bluetoothctl show

Если контроллер не найден, переходите к разделу Частые ошибки.

Установка BlueZ и Blueman, подключение устройства

Установить нужные пакеты

Минимум для работы:

sudo apt update
sudo apt install -y bluez bluetooth rfkill

Удобный GUI-менеджер (часто помогает, когда системные настройки «капризничают»):

sudo apt install -y blueman

Подключение «железобетонно» через bluetoothctl

Этот способ полезен, если интерфейс не спаривает устройство.

bluetoothctl

Внутри консоли:

power on
agent on
default-agent
scan on

Когда увидите адрес устройства:

pair AA:BB:CC:DD:EE:FF
trust AA:BB:CC:DD:EE:FF
connect AA:BB:CC:DD:EE:FF
scan off

Если получаете таймаут, почти всегда устройство не в режиме сопряжения или уже подключено к телефону/другому ПК. Отключите его там или выполните сброс сопряжения на устройстве.

Bluetooth-аудио: PipeWire или PulseAudio

Узнать, что используется сейчас

pactl info | grep -E 'Server Name|Server String'
  • PipeWire обычно отображается как PulseAudio (on PipeWire ...).
  • Если написано просто PulseAudio — у вас PulseAudio.

Вариант A: PipeWire (часто по умолчанию на новых установках)

Проверьте, что есть Bluetooth-плагин и менеджер сессии:

sudo apt install -y pipewire wireplumber pipewire-pulse libspa-0.2-bluetooth
systemctl --user restart pipewire pipewire-pulse wireplumber

Проверка, что гарнитура появилась в аудио:

wpctl status

Вариант B: PulseAudio

Установите Bluetooth-модуль и утилиту для выбора профиля:

sudo apt install -y pulseaudio pulseaudio-module-bluetooth pavucontrol
systemctl --user restart pulseaudio

Откройте:

pavucontrol

И выберите профиль:

  • A2DP Sink — качественный звук (музыка/видео)
  • HFP/HSP — режим гарнитуры (нужен микрофон, но качество ниже)

Падение качества при включении микрофона — нормальное поведение Bluetooth-профилей: для одновременного микрофона и звука система уходит в HFP/HSP.

Частые ошибки

  • No default controller available в bluetoothctl
    • Проверьте rfkill, затем:
    lsmod | grep -E 'btusb|bluetooth'
    dmesg | grep -iE 'bluetooth|btusb|firmware' | tail -n 120
    sudo systemctl restart bluetooth
    ```
  - Если в `dmesg` есть ошибки firmware — обычно не хватает пакета прошивок для чипа (Realtek/Intel/Mediatek и т.д.).

- **Сервис Bluetooth не стартует / падает**
  - Посмотрите причину:
    
```bash
    journalctl -u bluetooth -b --no-pager
    ```
  - Проверьте каталог данных:
    
```bash
    ls -ld /var/lib/bluetooth
    ```
    Если он был удалён/сломаны права:
    
```bash
    sudo install -dm700 /var/lib/bluetooth
    sudo systemctl restart bluetooth
    ```

- **Не появляется A2DP, только HFP/HSP**
  - Для PipeWire:
    
```bash
    sudo apt install -y libspa-0.2-bluetooth
    systemctl --user restart pipewire pipewire-pulse wireplumber
    ```
  - Для PulseAudio:
    
```bash
    sudo apt install -y pulseaudio-module-bluetooth
    systemctl --user restart pulseaudio
    ```
  - Убедитесь, что никакое приложение не держит BT-микрофон (иначе профиль принудительно переключается).

- **`org.bluez.Error.AuthenticationTimeout` при спаривании**
  - Удалите устройство и спарьте заново:
    
```bash
    bluetoothctl
    remove AA:BB:CC:DD:EE:FF
    ```
  - Переведите устройство в режим pairing и повторите `pair`.

## FAQ

**Как быстро понять, “виноват” ли Bluetooth или звук?**  
Если устройство спарилось и `bluetoothctl info <MAC>` показывает `Connected: yes`, а звука нет — проблема чаще в PipeWire/PulseAudio и профиле (A2DP/HFP).

**Нужен ли Blueman, если есть настройки GNOME/KDE?**  
Не обязателен, но полезен для удаления/переподключения устройств и когда стандартный GUI не показывает детали ошибок.

**Можно ли «смешивать» советы для PulseAudio и PipeWire?**  
Лучше нет: если у вас PipeWire, загрузка модулей PulseAudio вручную обычно не нужна и может запутать диагностику.