Bluetooth keyboard (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Bluetooth keyboard
. Дата последней синхронизации: 13 февраля 2024. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
В этой статье описан метод подключения
Bluetooth
HID клавиатуры. Используется
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 и Bluetooth-донглом Keysonic.
Помните три вещи:
Между Bluetooth-устройством (клавиатурой) и контроллером (донглом) сопряжение настраивается один раз.
Bluetooth-контроллер необходимо включать после каждой загрузки.
Контроллеру необходимо указывать подключение к клавиатуре после каждой загрузки.
Сопряжение
— однократный процесс, который достаточно выполнить один раз. Бывают Bluetooth-клавиатуры, продаваемые вместе с донглом и заранее настроенным сопряжением, но так не у всех. Мы используем команду
bluetoothctl
из пакета
bluez-utils
для сопряжения нашего донгла и клавиатуры.
Включение
может быть выполнено через
bluetoothctl
или автоматически в
/etc/bluetooth/main.conf
(см. ниже).
Аналогично
подключение
может быть выполнено через
bluetoothctl
или
hcitool
, последний более полезен для написания скриптов.
Используем
bluetoothctl
для сопряжения. Запустите команду для получения приглашения
[bluetooth]#
.
# bluetoothctl
[bluetooth]#
Примечание
Если у вас цветная консоль, слово «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
Далее переведите ваш контроллер (локальный донгл) в режим сопряжения (
pairable
):
[bluetooth]# pairable on
Changing pairable on succeeded
Теперь переведите вашу клавиатуру в активный режим, когда она может быть обнаружена и сопряжена. Некоторые клавиатуры имеют специальную кнопку для этого, некоторые требуют нажать специальную комбинацию клавиш — читайте документацию к вашей клавиатуре. Имейте в виду, что время, в течение которого будет доступно обнаружение, ограничено, обычно около 30 секунд или пары минут в зависимости от устройства.
Далее попросите контроллер найти подходящее устройство:
[bluetooth]# scan on
Discovery started
[CHG] Controller 06:05:04:03:02:01 Discovering: yes
После нескольких секунд адрес вашей клавиатуры должен быть найден. Строка может повторяться снова и снова, но это не мешает вводить новые команды.
Теперь выполните собственно сопряжение. Используемый адрес это MAC-адрес вашей Bluetooth-клавиатуры:
[bluetooth]# pair 01:02:03:04:05:06
Pairing successful
Примечание
Некоторые клавиатуры, такие как Microsoft Surface Ergonomic, отправляют пасскод (например,
[agent] Passkey: 501334
), который нужно набрать на Bluetooth-клавиатуре, после чего нажать
Enter
для завершения сопряжения. Используйте команду
paired-devices
, чтобы точно убедиться, что сопряжение прошло успешно.
Теперь сделайте это устройство доверенным (это позволит ему самостоятельно устанавливать соединение). Аналогично, используемый адрес это MAC-адрес вашей Bluetooth-клавиатуры:
[bluetooth]# trust 01:02:03:04:05:06
Trusted
Наконец, подключитесь к устройству (клавиатуре). Аналогично, используемый адрес это MAC-адрес вашей Bluetooth-клавиатуры:
[bluetooth]# connect 01:02:03:04:05:06
Connection successful
Готово. Теперь можно выйти из
bluetoothctl
:
[bluetooth]# quit
Теперь внешнее устройство (клавиатура) и USB-донгл сопряжены навсегда, пока вы самостоятельно не удалите сопряжение.
Решение проблем
В первую очередь убедитесь, что сам Bluetooth-контроллер определился и работает; смотрите основную статью
Bluetooth (Русский)
.
Ошибка: hci0 ACL packet for unknown connection handle 4
Попробуйте выполнить сброс командой
hciconfig hci0 reset
Xorg
Устройство добавляется как
/dev/input/event*
и Xorg должен увидеть его автоматически, если вы не отключили такую возможность.