Подключение к Bluetooth-устройствам через CLI

Опубликовано: 16 Января, 2023

Беспроводная технология Bluetooth — это всемирная спецификация для малогабаритного недорогого радиорешения, которое обеспечивает связь между мобильными компьютерами, мобильными телефонами и другими портативными портативными устройствами. Вы найдете Bluetooth-соединение в смартфонах, умных часах, беспроводных наушниках и т. д.
В этой статье мы узнаем, как подключиться к устройству Bluetooth через интерфейс командной строки в Linux.

Что такое Блюз?

BlueZ — это официальный стек протоколов Bluetooth для Linux, распространяемый под Стандартной общественной лицензией GNU (GPL), который обеспечивает поддержку основных уровней и протоколов Bluetooth. Он гибкий, эффективный и использует модульную реализацию. Он имеет много интересных особенностей:

  • Полная модульная реализация
  • Реальная аппаратная абстракция
  • Поддержка нескольких устройств Bluetooth
  • Симметричный мультипроцессорный сейф
  • Стандартный сокетный интерфейс для всех уровней

Установка BlueZ

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

$ sudo apt -y install bluetooth bluez bluez-tools rfkill # for Debian/Ubuntu based distros

$ sudo pacman -S bluez bluez-utils util-linux # for Arch based distros

$ sudo dnf -y install bluez bluez-tools # for Fedora/CentOS 

Добавление пользователя в необходимую группу

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

Во-первых, мы проверяем выделенные группы пользователю.
id выводит информацию о данном пользователе или запущенном им процессе, если пользователь не указан.

$ id   

Если lp отсутствует в выходном списке, нам нужно добавить текущего пользователя в группу lp.

$ sudo usermod -aG lp $USER
$ newgrp lp
$ id       # to check newly added group
  • sudo позволяет пользователю запускать команды с привилегиями суперпользователя.
  • Команда usermod (изменить пользователя) используется для изменения свойств пользователя.
  • Во флаге -aG -a добавляет пользователя к упомянутым группам, а -G дает список дополнительных групп, членом которых также является пользователь.
  • Команда usermod -G заменяет группы, которые были раньше, если вы не добавите флаг -a (для добавления).
  • $USER возвращает текущее имя пользователя.

Включение службы Bluetooth

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

$ sudo systemctl enable --now bluetooth.service
  • sudo позволяет пользователю запускать команды с привилегиями суперпользователя.
  • Команда enable включает указанную службу при загрузке.
  • — теперь флаг запускает указанный сервис сразу.

Теперь мы можем проверить статус сервиса с помощью systemctl команда состояния. Он возвращает статус активности указанной службы.

$ sudo systemctl status bluetooth.service

Иногда служба Bluetooth может быть заблокирована, и для ее разблокировки нам нужно выполнить следующую команду.

rfkill — инструмент для включения и отключения беспроводных устройств.

$ rfkill

Если он заблокирован, выполните следующую команду, чтобы разблокировать

$ rfkill unblock bluetooth

Вы можете запустить rfkill Команда для проверки состояния Bluetooth.

Запуск утилиты

Мы будем использовать служебный инструмент под названием bluetoothctl, который позволяет выполнять различные задачи, такие как сопряжение и подключение устройства Bluetooth.
Чтобы запустить эту утилиту, просто введите bluetoothctl в CLI.

$ bluetoothctl

Поиск ближайших устройств

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

[bluetooth]# scan on

Вывод будет похож на изображение ниже

Сопряжение устройства

Чтобы установить соединение, устройство Bluetooth должно быть сопряжено с другим устройством Bluetooth.
Введите пару [ID], где [ID] — уникальный идентификатор устройства Bluetooth, показанный в приведенной выше команде.

[bluetooth]# pair [ID]

Например, если мы хотим подключиться к первому устройству на скриншоте выше, команда будет

[bluetooth]# pair D4:8A:39:3E:3C:F5

Таким образом, мы успешно подключились и подключились к устройству Bluetooth в Linux через CLI. Некоторые из тривиальных команд, которые могут вам понадобиться, перечислены ниже.

Команда Использовал к
список Список доступных контроллеров
устройства Список доступных устройств
парные устройства Список сопряженных устройств
отмена сопряжения [dev] Отменить сопряжение с устройством
обнаруживаемый <вкл./выкл.> Установить режим обнаружения контроллера
отключить [dev] Отключить устройство
выход Выйти из программы