Исправление проблем с Bluetooth в Ubuntu

Почему Bluetooth иногда перестаёт работать после сна или гибернации
Bluetooth зависит от нескольких слоёв: аппаратного адаптера, драйвера ядра, демона BlueZ и настроек энергосбережения. Когда система уходит в сон или гибернацию, часть этих слоёв может выключаться или «забывать» сопряжённые устройства. Частые причины:
- служба bluetooth не запущена или не включена для автозапуска;
- параметры в /etc/bluetooth/main.conf отключают автоматическое включение или попытки переподключения;
- энергосбережение (power management) выключает адаптер;
- несовместимость драйвера/ядра или устаревший пакет bluez;
- аппаратный USB‑донгл не подаёт питания после пробуждения.
Важно: большинство исправлений не требует удаления пар устройства; сначала пробуйте настройку службы и конфигурации.
Проверка и включение службы Bluetooth
Чтобы увидеть статус службы Bluetooth, выполните в терминале:
sudo systemctl status bluetooth.serviceЕсли служба inactive или failed — включите автозапуск и запустите её:
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.serviceПроверьте снова статус и журналы systemd для диагностики:
sudo journalctl -u bluetooth.service --since "10 minutes ago"Совет: если служба падает сразу после старта, посмотрите последние строки журнала — они укажут причину (например, проблемы с модулем ядра или доступом к устройству).
Настройка /etc/bluetooth/main.conf
Главный файл конфигурации находится по пути /etc/bluetooth/main.conf. Откройте его в редакторе (vim, nano):
sudo vim /etc/bluetooth/main.confНайдите и приведите в нужное состояние следующие параметры:
- AutoEnable = true — автоматически включает адаптер при старте демона BlueZ.
- ReconnectAttempts = 7 — число попыток переподключения при потере связи (раскомментируйте строку).
- FastConnectable = true — ускоряет переподключение после перезапуска/гибернации (требует ядра 4.1+).
Пример нужных строк в файле:
AutoEnable=true
ReconnectAttempts=7
FastConnectable=trueВажно: FastConnectable ускоряет подключение, но может увеличивать потребление энергии. Если вы используете ноутбук от батареи и замечаете сильный разряд, установите false.
После правок сохраните файл (в vim: Esc, :wq) и перезапустите службу:
sudo systemctl restart bluetooth.serviceОсновные команды для отладки Bluetooth
- Просмотр адаптеров и состояния через bluetoothctl:
bluetoothctl
# внутри интерактивной сессии:
power on
show
devices
paired-devices
info
trust
connect - Проверка, не заблокирован ли адаптер через rfkill:
rfkill list
sudo rfkill unblock bluetooth- Сброс драйверов USB‑донгла (если есть):
sudo modprobe -r btusb
sudo modprobe btusb- Проверка статуса bluez и версии:
apt policy bluez
bluez --versionПереустановка Bluetooth‑стека (BlueZ)
Если конфигурация не помогла, переустановите пакет bluez и зависимости APT:
sudo apt update
sudo apt install --reinstall bluezПосле переустановки включите и запустите службу:
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.serviceЕсли вы используете графический менеджер (GNOME Settings, KDE), иногда полезно перезапустить и его:
# GNOME Shell (если используется):
gnome-shell --replace &Когда проблема аппаратная: USB‑донглы и встроенные адаптеры
- Проверьте, видит ли систему USB‑донгл: lsusb покажет устройство.
- Попробуйте подключить донгл в другой порт (особенно при подключении через USB‑хаб питание может не подаваться после сна).
- Для встроенных адаптеров проверьте совместимость чипа с текущим ядром и драйвером; иногда требуется обновление ядра или включение проприетарных модулей.
Альтернативы и обходные пути
- Использовать проводное подключение как временное решение (USB‑аудио, проводная мышь/клавиатура).
- При серьёзных проблемах с драйверами — приобрести проверенный Bluetooth 4.0/5.0 донгл с поддержкой Linux (перед покупкой проверьте совместимость в сообществах и списках поддерживаемого железа).
Пошаговый SOP: быстрый сценарий восстановления (для пользователей)
- Проверьте статус службы: sudo systemctl status bluetooth.service.
- Если inactive — sudo systemctl enable –now bluetooth.service.
- Проверьте rfkill: rfkill list; sudo rfkill unblock bluetooth.
- Откройте bluetoothctl: power on; devices; connect
. - Если не помогает — отредактируйте /etc/bluetooth/main.conf (AutoEnable, ReconnectAttempts, FastConnectable) и перезапустите службу.
- При подозрении на драйверы — sudo modprobe -r btusb; sudo modprobe btusb.
- Если ничего не помогает — переустановите bluez: sudo apt install –reinstall bluez.
Критерии приёмки (тесты, чтобы убедиться в исправлении)
- После перезагрузки или выхода из сна адаптер автоматически включён (bluetoothctl show -> Powered: yes).
- Подключение к ранее сопряжённым устройствам восстанавливается автоматически или вручную без повторного полного сопряжения.
- Журнал systemd bluetooth.service не содержит ошибок уровня ERROR/CRITICAL при старте.
- Для беспроводной клавиатуры/мыши — ввод работает стабильно в течение 10–15 минут после выхода из сна.
Чеклист для ролей
Пользователь:
- Убедиться, что система обновлена (apt update && apt upgrade).
- Попробовать перезапустить службу и rfkill.
- Проверить настройки энергосбережения и FastConnectable.
Системный администратор:
- Проверить логи systemd и dmesg на ошибки драйверов.
- Оценить необходимость обновления ядра или замены драйвера.
- Подготовить запасной USB‑донгл и проверить его работу в тестовой среде.
Модель принятия решений (диагностическое дерево)
flowchart TD
A[Bluetooth не работает после сна] --> B{Служба active?}
B -- Нет --> C[Включить и запустить службу]
B -- Да --> D{Адаптер видим в bluetoothctl?}
D -- Нет --> E[Проверить rfkill, lsusb, модуль btusb]
D -- Да --> F{Сопряжённое устройство не подключается?}
F -- Да --> G[Проверить /etc/bluetooth/main.conf и ReconnectAttempts]
F -- Нет --> H[Проблема решена]
E --> I{Аппарат в порядке?}
I -- Нет --> J[Поменять порт/донгл]
I -- Да --> K[Переустановить bluez и перезагрузить]Когда это не помогает — контрпримеры и крайние случаи
- Устаревший проприетарный драйвер чипа (например Broadcom) может требовать специфических пакетов или сборки модуля ядра.
- Аппарат с плохой реализацией энергосбережения может не подавать питание на USB‑порт после сна — в этом случае программные правки не помогут.
- Повреждённые файлы конфигурации или пользовательские профили bluetoothctl — удаление и повторное сопряжение может быть неизбежно.
Совместимость, примечания по безопасности и приватности
- FastConnectable и AutoEnable влияют только на локальное поведение адаптера и не раскрывают данные без сопряжения.
- При доверии (trust) устройству вы позволяете автоматически подключаться — доверяйте только знакомым устройствам.
- Для корпоративных машин согласуйте изменения с политикой безопасности (особенно если автоматически восстанавливается подключение внешних устройств).
Краткое резюме
- Начните с проверки службы bluetooth и rfkill.
- Отредактируйте /etc/bluetooth/main.conf: AutoEnable=true, ReconnectAttempts=7, FastConnectable=true (учтите энергопотребление).
- Используйте bluetoothctl для диагностики и trust/connect для тестирования.
- При отсутствии результата переустановите bluez, проверьте драйверы и аппарат.
Короткий чеклист для быстрого запуска:
- sudo systemctl enable –now bluetooth.service
- rfkill unblock bluetooth
- sudo modprobe -r btusb && sudo modprobe btusb
- sudo systemctl restart bluetooth.service
Дополнительно: если нужна помощь с конкретной моделью адаптера или логами, приложите выводы команд: sudo journalctl -u bluetooth.service -n 200 и lsusb. Это ускорит диагностику и подбор решения.
Похожие материалы
Как найти зарядную станцию EV и оценить стоимость
Восстановление удалённых постов в Instagram
Взлом игры динозавра в Google Chrome
Как выбрать проектор: понятное руководство
Кастомный ПК без отвертки: руководство