Установка ПО
Для начала установим софт для работы с bluetooth под Linux:
sudo aptitude update
sudo aptitude install bluetooth bluez bluez-tools bluez-utils python-gobject python-dbus
Bluetooth интерфейс
Показать все доступные bluetooth интерфейсы. Команда hciconfig аналог ifconfig, только для bluetooth.
hciconfig -a
Пример вывода (в случае если bluetooth интерфейс поднят):
hci0: Type: BR/EDR Bus: USB
BD Address: 00:EE:CC:AA:10:44 ACL MTU: 1021:5 SCO MTU: 96:5
UP RUNNING PSCAN
RX bytes:41239 acl:971 sco:0 events:1159 errors:0
TX bytes:12967 acl:470 sco:0 commands:289 errors:0
Features: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF
Link mode: SLAVE ACCEPT
Name: 'myname-0'
Class: 0x600100
Service Classes: Audio, Telephony
Device Class: Computer, Uncategorized
HCI Version: 4.0 (0x6) Revision: 0x500
LMP Version: 4.0 (0x6) Subversion: 0x500
Manufacturer: Intel Corp. (2)
Управление состоянием bluetooth интерыейсов.
hciconfig hci0 down
hciconfig hci0 up
Убедиться в том, что нужный bluetooth поднят можно с помощью утилиты hcitool.
hcitool dev
Если нужный bluetooth поднят, то мы должны увидеть вывод:
Devices:
hci0 00:EE:CC:AA:10:44
Запомним название bluetooth интерфейса, оно нам понадобятся при подключении клавиатуры.
Поиск bluetooth клавиатуры
Нажмите кнопку «Pair» на bluetooth клавиатуре и выполните команду:
hcitool scan
Пример вывода:
Scanning ...
CC:DD:AA:AA:00:11 Bluetooth Keyboard
Запомним MAC-адрес нашей клавиатуры.
Просмотр подробной информации об bluetooth устройстве.
hcitool info CC:DD:AA:AA:00:11
Пропингуем найденное устройство.
l2ping -f CC:DD:AA:AA:00:11
Сопряжение bluetooth клавиатуры
Для быстрого временного подключения bluetooth клавиатуры можно выполнить команду
hidd --connect CC:DD:AA:AA:00:11
после чего клавиатура сразу подключиться, в этом случае PIN код мы не задаем (после перезагрузки или перезапуске демона bluetoothd настройки не сохраняются). Данный способ категорически не рекомендую, лучше этот пункт пропустить и перейти к полноценному сопряжению.
Приступаем к сопряжению клавиатуры с bluetooth адаптером. Не забываем, bluetooth клавиатура в этот момент всё ещё должны быть в режиме поиска (сопряжения).
bluez-simple-agent hci0 CC:DD:AA:AA:00:11
- hci0 — имя bluetooth адаптера в системе;
- CC:DD:AA:AA:00:11 — MAC-адрес bluetooth клавиатуры.
При появлении сообщения запроса PIN кода
Enter PIN Code:
задаём любой PIN код, например 5829433212 (Не нужно вводить «0000»!).
На bluetooth клавиатуре нужно повторить ввод PIN кода и нажать Enter.
При корректном вводе PIN кода на bluetooth клавиатуре мы должны увидеть сообщение:
Release
New device...
Добавим MAC-адрес нашей bluetooth клавиатуры в список доверенных.
bluez-test-device trusted CC:DD:AA:AA:00:11 yes
Настройки будут сохранены в каталог /var/lib/bluetooth/00:EE:CC:AA:10:44/, где 00:EE:CC:AA:10:44 это MAC-адрес bluetooth адаптера к которому мы привязываем bluetooth устройство.
Далее выполняем команды:
hcitool cc CC:DD:AA:AA:00:11
hidd --connect CC:DD:AA:AA:00:11
hcitool auth CC:DD:AA:AA:00:11
Вывести список подключенных bluetooth устройст.
hidd show
Пример вывода.
CC:DD:AA:AA:00:11 Bluetooth Keyboard [0a5c:8502] connected
Теперь наша bluetooth клавиатура уже подключена и будет автоматически подключаться при перезагрузки системы и/или включении выключении питания самой клавиатуры.
За работу bluetooth отвечает демон bluetoothd.
Для проверки корректности настроек, будет ли bluetooth клавиатура автоматически подключаться при перезагрузке перезапустим bluetoothd демон.
invoke-rc.d bluetooth restart
invoke-rc.d bluetooth status
Нажмите на bluetooth клавитуре любую кнопку для инициализации bluetooth подключения. Подождите 5~10 секунд и снова выполните команду:
hidd show
Мы должны увидеть сообщение:
CC:DD:AA:AA:00:11 Bluetooth Keyboard [0a5c:8502] connected
Настройка init
Настроим автоматическую загрузку демона bluetoothd на втором уровне init (Debian и Ubuntu по умолчанию запускаются на втором уровне инициализии).
sudo update-rc.d -f bluetooth remove
sudo sysv-rc-conf --level 2 bluetooth on
sudo sysv-rc-conf --list bluetooth
|