Как подключиться к устройству Bluetooth из терминала Linux

Как подключиться к устройству Bluetooth из терминала Linux

 

Для парней, которые проводят большую часть времени в терминале, имеет смысл подключаться к терминалам, таким как динамики, передатчики и любые другие электронные устройства, с большим количеством соединений. В этой статье мы обсудим, как вы можете управлять устройством Bluetooth с терминала Linux — дистрибутивов на основе Ubuntu, Debian, Fedora и Arch.

Беспроводная технология Bluetooth является всемирной спецификацией для недорогого решения радиосвязи с малым форм-фактором, которое обеспечивает связь между мобильными компьютерами, мобильными телефонами, другими портативными карманными устройствами и подключение к Интернету. Спецификация разрабатывается, публикуется и продвигается Специальной группой по интересам Bluetooth (SIG) .

В этом руководстве мы будем использовать BlueZ, который обеспечивает поддержку основных уровней и протоколов Bluetooth. Это гибкий, эффективный и использует модульную реализацию. Он имеет следующие ключевые особенности.

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

Установка BlueZ на Linux

Установите пакеты BlueZ с помощью любой из следующих команд, соответствующих вашему дистрибутиву Linux.

----- Ubuntu / Debian -----
$ sudo apt-get -y install bluetooth bluez bluez-tools rfkill

----- Fedora -----
$ sudo dnf -y install bluez bluez-tools

----- Arch Linux / Manjaro -----
$ sudo pacman -S bluez bluez-utils 

Эта установка предоставляет bluetoothctlутилиту. Вам необходимо добавить свою учетную запись в группу lp, если вы хотите подключиться к Bluetooth-модему.

sudo usermod -aG lp $USER
newgrp lp

Устройство Bluetooth должно быть запущено и включено.

$ systemctl is-enabled bluetooth.service 
enabled

$ systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-11-30 17:14:12 EAT; 3h 55min ago
     Docs: man:bluetoothd(8)
 Main PID: 1638 (bluetoothd)
    Tasks: 1 (limit: 18590)
   Memory: 2.3M
      CPU: 47ms
   CGroup: /system.slice/bluetooth.service
           └─1638 /usr/libexec/bluetooth/bluetoothd

Nov 30 17:14:12 myfed.example.net systemd[1]: Starting Bluetooth service...
Nov 30 17:14:12 myfed.example.net bluetoothd[1638]: Bluetooth daemon 5.52
Nov 30 17:14:12 myfed.example.net systemd[1]: Started Bluetooth service.
Nov 30 17:14:12 myfed.example.net bluetoothd[1638]: Starting SDP server
Nov 30 17:14:12 myfed.example.net bluetoothd[1638]: Bluetooth management interface 1.14 initialized
Nov 30 21:07:52 myfed.example.net bluetoothd[1638]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/A2DPSink/sbc
Nov 30 21:07:52 myfed.example.net bluetoothd[1638]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/A2DPSource/sbc

Как выполнить сопряжение и подключиться к устройству Bluetooth

Мы будем использовать bluetoothctl CLI Т.П. настроить BlueZ . Если у вас есть альтернативный интерфейсный инструмент, такой как GNOME Bluetooth, вы можете использовать его вместо этого.

Сначала убедитесь, что Bluetooth не отключен.

$ rfkill 
ID TYPE      DEVICE               SOFT          HARD
0 bluetooth tpacpi_bluetooth_sw   blocked       unblocked
1 wlan      phy0                  unblocked     unblocked

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

$ rfkill unblock bluetooth

Подтвердите, что он разблокирован.

$ rfkill          
ID TYPE      DEVICE                   SOFT      HARD
 0 bluetooth tpacpi_bluetooth_sw unblocked unblocked
 1 wlan      phy0                unblocked unblocked
 2 bluetooth hci0                unblocked unblocked

Использование bluetoothctl для подключения к устройству Bluetooth

Это общий план сопряжения устройства с использованием bluetoothctl .

  • Запустите интерактивную команду bluetoothctl .
$ bluetoothctl
Agent registered

$ bluetoothctl show 
Controller 20:79:18:5E:4B:64 (public)
 Name: myfed.example.net
 Alias: myfed.example.net
 Class: 0x000c010c
 Powered: yes
 Discoverable: no
 DiscoverableTimeout: 0x00000000
 Pairable: no
 UUID: Headset AG                (00001112-0000-1000-8000-00805f9b34fb)
 UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
 UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
 UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
 UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
 UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
 UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
 UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
 UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
 Modalias: usb:v1D6Bp0246d0534
 Discovering: no
Advertising Features:
 ActiveInstances: 0x00
 SupportedInstances: 0x05
 SupportedIncludes: tx-power
 SupportedIncludes: appearance
 SupportedIncludes: local-name

Ввод, helpчтобы получить список доступных команд.

  • Включите адаптер Bluetooth

[bluetooth]# agent KeyboardOnly

Agent is already registered

[bluetooth]# default-agent
Default agent request successful

[bluetooth]# power on
Changing power on succeeded
  • Сделайте сканирование, чтобы обнаружить ваши устройства Bluetooth
# scan on
Discovery started
[CHG] Controller 20:79:18:5E:4B:64 Discovering: yes
[NEW] Device 14:AB:C5:CC:C7:AB 14-AB-C5-CC-C7-AB
[CHG] Device 14:AB:C5:CC:C7:AB TxPower: 8
[CHG] Device 14:AB:C5:CC:C7:AB Name: DESKTOP-N9GVMQ2
[CHG] Device 14:AB:C5:CC:C7:AB Alias: DESKTOP-N9GVMQ2
[CHG] Device 14:AB:C5:CC:C7:AB UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 14:AB:C5:CC:C7:AB UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device 14:AB:C5:CC:C7:AB UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 14:AB:C5:CC:C7:AB UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
[CHG] Device 14:AB:C5:CC:C7:AB UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[NEW] Device 5C:FB:7C:A4:13:C6 JBL Clip 3
  • Сопряжение с обнаруженным устройством Bluetooth
[bluetooth]# pair 5C:FB:7C:A4:13:C6
Attempting to pair with 5C:FB:7C:A4:13:C6
[CHG] Device 5C:FB:7C:A4:13:C6 Connected: yes
[CHG] Device 5C:FB:7C:A4:13:C6 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:FB:7C:A4:13:C6 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:FB:7C:A4:13:C6 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:FB:7C:A4:13:C6 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:FB:7C:A4:13:C6 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:FB:7C:A4:13:C6 ServicesResolved: yes
[CHG] Device 5C:FB:7C:A4:13:C6 Paired: yes
Pairing successful

# trust 5C:FB:7C:A4:13:C6
[CHG] Device 5C:FB:7C:A4:13:C6 Trusted: yes
Changing 5C:FB:7C:A4:13:C6 trust succeeded

# paired-devices
Device 5C:FB:7C:A4:13:C6 JBL Clip 3

# devices
Device 5C:FB:7C:A4:13:C6 JBL Clip 3
  • Подключиться к устройству после сопряжения
[bluetooth]# connect 5C:FB:7C:A4:13:C6
Attempting to connect to 5C:FB:7C:A4:13:C6
[CHG] Device 5C:FB:7C:A4:13:C6 Connected: yes
Connection successful

[JBL Clip 3]# info
Device 5C:FB:7C:A4:13:C6 (public)
 Name: JBL Clip 3
 Alias: JBL Clip 3
 Class: 0x00200414
 Icon: audio-card
 Paired: yes
 Trusted: yes
 Blocked: no
 Connected: yes
 LegacyPairing: no
 UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
 UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
 UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
 UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
 UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
 ManufacturerData Key: 0x0057
 ManufacturerData Value:
  01 00 cb 0e d0 1e 03 01                          ........        
 RSSI: -21
 TxPower: 0

Включите адаптер Bluetooth при включении

Чтобы включить адаптер Bluetooth при запуске системы, нужно отркрить файл конфигурации.

$ sudo vim /etc/bluetooth/main.conf

Добавьте строку  AutoEnable=true

[Policy]
AutoEnable=true

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

18 − шестнадцать =