Bluetooth keyboard (Русский)
В этой статье описан метод подключения bluetooth клавиатуры. Используется bluez версии 5.
Сопряжение
Войдите на нужный компьютер с проводной клавиатурой или через ssh.
В первую очередь убедитесь, что Bluetooth-контроллер определился:
# lsusb
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. LAN9500 Ethernet 10/100 Adapter / SMSC9512/9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Приведённый выше вывод получен на Raspberry-Pi revision 'B' с archlinux-arm и Keysonic BT Dongle.
Помните три вещи:
- Между устройством (клавиатурой) и контроллером (донглом) сопряжение настраивается один раз.
- Bluetooth-контроллер необходимо включать после каждой загрузки.
- Контроллеру необходимо указывать подключение к клавиатуре после каждой загрузки.
Сопряжение — однократный процесс, который достаточно выполнить один раз. Бывают Bluetooth-клавиатуры, продаваемые вместе с донглом и заранее настроенным сопряжением, но так не у всех. Мы используем команду bluetoothctl
из пакета bluez-utils для сопряжения нашего донгла и клавиатуры.
Включение может быть выполнено через bluetoothctl
или автоматически в /etc/bluetooth/main.conf
(см. ниже).
Аналогично подключение может быть выполнено через bluetoothctl
или hcitool
, последний более полезен для написания скриптов.
Используем bluetoothctl
для сопряжения. Запустите команду для получения приглашения [bluetooth]#
.
# bluetoothctl
[bluetooth]#
Находясь в bluetoothctl, включите контроллер:
[bluetooth]# power on
Changing power on succeeded [CHG] Controller 06:05:04:03:02:01 Powered: yes
Затем сообщите bluetoothctl
, что мы ищем только клавиатуры, и сделайте это агентом по умолчанию:
[bluetooth]# agent KeyboardOnly
Agent registered
[bluetooth]# default-agent
Default agent request successful
Далее переведите ваш контроллер (локальный донгл) в режим сопряжения:
[bluetooth]# pairable on
Changing pairable on succeeded
Теперь переведите вашу клавиатуру в активный режим, когда она может быть обнаружена и сопряжена. Некоторые клавиатуры имеют специальную кнопку для этого, некоторые требуют нажать специальную комбинацию клавиш — читайте документацию к вашей клавиатуре. Имейтн в виду, что время, в течение которого будет доступно обнаружение, ограничено, обычно около 30 секунд или пары минут в зависимости от устройства.
Далее попросите контроллер найти подходящее устройство:
[bluetooth]# scan on
Discovery started [CHG] Controller 06:05:04:03:02:01 Discovering: yes
После нескольких секунд адрес вашей клавиатуры должен быть найден. Строка может повторяться снова и снова, но это не мешает вводить новые команды.
Теперь выполните собственно сопряжение. Используемый адрес это BT-MAC вашей клавиатуры:
[bluetooth]# pair 01:02:03:04:05:06
Pairing successful
Теперь сделайте это устройство доверенным (это позволит ему самостоятельно устанавливать соединение). Аналогично, используемый адрес это BT-MAC вашей клавиатуры:
[bluetooth]# trust 01:02:03:04:05:06
Trusted
Наконец, подключитесь к устройству (клавиатуре). Аналогично, используемый адрес это BT-MAC вашей клавиатуры:
[bluetooth]# connect 01:02:03:04:05:06
Connection successful
Готово. Теперь можно выйти из bluetoothctl
:
[bluetooth]# quit
Теперь внешнее устройство (клавиатура) и USB-донгл сопряжены навсегда, пока вы самостоятельно не удалите сопряжение. Это не означает, что клавиатура будет автоматически подключаться к вашему устройству после загрузки. Это в основном из-за того, что контроллер автоматически выключается после перезагрузки. Для автоматического подключения клавиатуры после перезагрузки смотрите Bluetooth#Auto power-on after boot.
Решение проблем
Xorg
Устройство добавляется как /dev/input/event*
и Xorg должен увидеть его автоматически, если вы не отключили такую возможность.