Установка последней версии BlueZ на Ubuntu

BlueZ — это открытая реализация стека протоколов Bluetooth для Linux. В Ubuntu по умолчанию поставляется стабильная, но часто устаревшая версия. Это снижает риск багов и уязвимостей, но значит, что некоторые новые функции недоступны. Если вам нужно именно новое поведение или исправления из свежего релиза, установите BlueZ вручную.
Что потребуется
- Доступ root или sudo.
- Подключение к интернету для загрузки исходников и пакетов.
- Немного свободного места и времени на компиляцию.
Краткое определение: bluetoothd — демон BlueZ, отвечающий за работу Bluetooth-стека на уровне пользователей и взаимодействие с kernel-слоем.
Шаг 1 — Удалите версию BlueZ из репозитория Ubuntu
Важно: удаление системного пакета может временно отключить Bluetooth. Сделайте это только если готовы к переустановке.
Остановите службы Bluetooth и удалите пакет из APT:
sudo systemctl stop bluetooth
sudo apt autoremove bluezПодтвердите действие буквой Y, если система попросит.
Шаг 2 — Скачайте исходники последней версии BlueZ
Официальные архивы хранятся на kernel.org. Загрузите актуальную версию и замените номер релиза в команде на последний доступный.
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.66.tar.xzСовет: проверьте страницу релизов BlueZ перед загрузкой, чтобы убедиться в актуальности версии.
Ссылка для скачивания: BlueZ (официальный источник)
Шаг 3 — Установите необходимые зависимости
Перед сборкой установите пакеты для компиляции и заголовки библиотек, используемых BlueZ. На Ubuntu используйте:
sudo apt update
sudo apt install build-essential libreadline-dev libical-dev libdbus-1-dev libudev-dev libglib2.0-dev python3-docutilsПримечание: пакет build-essential предоставляет gcc, make и другие инструменты сборки.
Шаг 4 — Распаковка, сборка и установка BlueZ
Распакуйте архив и перейдите в каталог исходников:
tar -xJvf bluez-*.tar.xz && cd bluez-*Подготовьте сборку, выполните компиляцию и установку:
./configure
make
sudo make installЕсли сборка прерывается с ошибками, внимательно читайте вывод configure и make — обычно не хватает заголовков или библиотек (установите соответствующие -dev пакеты).
Важно: по умолчанию make install установит файлы в /usr/local. Убедитесь, что пути совпадают с тем, что ожидает systemd-сервис (см. шаг 5).
Шаг 5 — Настройка и включение служб BlueZ
После установки нужно запустить bluetoothd с нужными параметрами. Часто бывает полезно включить экспериментальные функции (они могут быть нестабильны).
Откройте systemd-файл службы для редактирования:
sudo nano /lib/systemd/system/bluetooth.serviceНайдите строку ExecStart и измените её на:
ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimentalСохраните файл и затем перезагрузите демоны systemd и сам сервис:
sudo systemctl daemon-reload
sudo systemctl unmask bluetooth.service
sudo systemctl restart bluetoothПроверьте статус:
sudo systemctl status bluetoothЗапустите инструмент управления BlueZ и проверьте, видит ли он адаптер:
sudo bluetoothctlВнутри bluetoothctl используйте команды list, show, scan on и pair для проверки функционала.
Проверка работоспособности и типичные проблемы
- Проверьте, что демон запущен и слушает нужные сокеты.
- Если адаптер не виден — убедитесь, что модуль ядра bluetooth загружен (команда lsmod | grep bluetooth).
- Если после установки старой версии остались файлы в /usr/lib или /lib, удалите их вручную, чтобы не было конфликтов с /usr/local.
Важно: experimental-флаги дают доступ к новым функциям, но они могут измениться в следующих релизах.
Когда не стоит обновлять BlueZ вручную
- Если у вас продуктивный сервер, где стабильность важнее новых функций.
- Если встроенные в дистрибутив зависимости критичны для других пакетов.
- Если вы не готовы потратить время на откат в случае проблем.
Альтернативные подходы
- Использовать PPA от доверенного поставщика. PPA может предоставлять более свежие пакеты без ручной сборки.
- Собрать .deb пакет из исходников и установить его через dpkg — это облегчает откат.
- Использовать контейнеризацию для тестов (например, LXD) и проверять новую версию в изолированной среде.
Как откатить изменения
- Если вы устанавливали через make install из /usr/local, удалите установленные файлы (если в исходниках есть
make uninstall, выполните его). - Переустановите системный пакет из репозиториев:
sudo apt update
sudo apt install --reinstall bluez- Восстановите оригинальный systemd-файл, если вы его изменяли, и перезапустите сервис.
Критерии приёмки
- bluetoothctl показывает хотя бы один адаптер (команда list).
- Демон bluetoothd запущен и в статусе Active (systemctl status bluetooth).
- Устройства могут сканироваться и подключаться, которые работали ранее.
- Нет конфликтов версий библиотек в логах (journalctl -u bluetooth).
Контрольный список перед началом (роль: системный администратор)
- Есть рабочая резервная копия системы или снимок диска.
- Бэкап конфигураций /etc/bluetooth.
- Пользователь уведомлён о возможной недоступности Bluetooth.
- Проверены зависимости и доступ к интернету.
Мини-методология обновления
- Оцените необходимость обновления (функции/багфиксы).
- Тестируйте в изолированном окружении.
- Выполните шаги удаления, сборки и установки.
- Тестируйте на целевых устройствах.
- Документируйте и, при успехе, внедряйте на продуктиве.
Частые вопросы
Нужно ли удалять старую версию перед сборкой?
Да. Чтобы избежать конфликтов библиотек и файлов, рекомендуется удалить пакет BlueZ из репозиториев перед установкой из исходников.
Что делать, если демон не запускается?
Проверьте вывод journalctl -u bluetooth и dmesg на предмет ошибок. Часто проблема — отсутствующие зависимости или конфликт библиотек между /usr/lib и /usr/local.
Можно ли собрать .deb пакет вместо прямой установки?
Да. Сборка .deb повысит управляемость и упростит откат. Для этого можно использовать инструменты вроде checkinstall или debuild.
Заключение
Вы успешно установили последнюю версию BlueZ на Ubuntu, если все шаги выполнены и критерии приёмки соблюдены. Обновление даёт доступ к новым возможностям Bluetooth, но требует аккуратности: делайте резервные копии, тестируйте изменения и учитывайте альтернативные подходы (PPA или .deb).
Ключевые шаги: удалить старый пакет, установить зависимости, загрузить и распаковать исходники, собрать и установить, править systemd-сервис, перезапустить и проверить работу через bluetoothctl.
Дополнительно рекомендуется мониторить журналы и при необходимости откатить изменения.
Похожие материалы
Как плавать и нырять в Animal Crossing
Перенос библиотеки Logic Pro на внешний диск
Сноски и концевые сноски в Word 2016
Колонки в Home Assistant: настройка и опыт
Настройка VNC на Linux — удалённый рабочий стол