Как подключить Bluetooth-клавиатуру, требующую ввода кода, в терминале?

20

У меня есть клавиатура Bluetooth ThinkPad 2 Tablet, которую я хочу подключить к своей Ubuntu Touch Aquaris E4.5. Из-за ограничений графического интерфейса, я хочу попробовать сделать это в терминале. Я надеюсь, что этот процесс будет похож на Ubuntu Desktop.

В Ubuntu Desktop 15.10 при сопряжении клавиатуры в диалоговом окне графического интерфейса пользователя отображается следующее сообщение:

Please enter the following PIN on "ThinkPad keyboard" and press "Enter" on the keyboard:
<6-digit number>

Ввод 6-значного PIN-кода на клавиатуре Bluetooth и нажатие Enterзавершает сопряжение клавиатуры, и она работает нормально. Когда я пытаюсь подключить клавиатуру в Ubuntu Touch, не отображается диалоговое окно с графическим интерфейсом, отображающее код, который необходимо ввести на клавиатуре Bluetooth. Итак, я хочу попробовать подключить клавиатуру в терминале.

Я пробовал следующее:

phablet@ubuntu-phablet:~$ hcitool scan
Scanning ...
        AB:CD:EF:GH:IJ:KL       ThinkPad Keyboard
phablet@ubuntu-phablet:~$ bluez-simple-agent AB:CD:EF:GH:IJ:KL
RequestPinCode (/org/bluez/863/hci0/dev_AB_CD_EF_GH_IJ_KL)
Enter PIN Code: 0000
Release
Creating device failed: org.bluez.Error.ConnectionAttemptFailed: Page Timeout
phablet@ubuntu-phablet:~$

Что я мог попробовать дальше?

d3pd
источник

Ответы:

26

Вы можете попробовать запустить bluetoothctl из командной строки, убедитесь, что ваше устройство включено / готово к обнаружению:

$ bluetoothctl
[NEW] Controller AA:BB:CC:DD:EE:FF device-name [default]

Любые другие устройства Bluetooth будут перечислены здесь. Затем вы будете внутри [bluetooth]подсказки.

Сначала включите питание Bluetooth (если ваше устройство выключено):

[bluetooth]# power on
Changing power on succeeded

Затем убедитесь, что ваш агент зарегистрирован:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

Теперь вы можете сканировать устройства с консоли:

[bluetooth]# scan on
Discovery started
[CHG] Controller AA:BB:CC:DD:EE:FF Discovering: yes
[NEW] Device FF:EE:DD:CC:BB:AA Someone's Keyboard

Здесь вы также можете выполнить сопряжение вручную:

[bluetooth]# pair FF:EE:DD:CC:BB:AA 
Attempting to pair with FF:EE:DD:CC:BB:AA 
[CHG] Device C8:E0:EB:04:52:55 Connected: yes

На этом этапе вам будет предложено ввести пин-код для сопряжения:

Request PIN code
[agent] Enter PIN code: 12345

Введите номер (например, 12345), и вам будет предложено ввести тот же номер с устройства:

[Someone's Keyboard]# 12345

Затем вы должны быть уведомлены, что ваша клавиатура сопряжена:

[CHG] Device FF:EE:DD:CC:BB:AA Paired: yes

Надеюсь, это работает для вас, пытался решить это некоторое время, прежде чем я нашел какую-либо ссылку на bluetoothctl.


РЕДАКТИРОВАТЬ: Выпуск Ubuntu Touch OTA9 включает в себя Bluez 5, что позволяет сопряжение с клавиатурами ThinkPad. Вот маленький BQ Aquaris E4.5, действующий почти как карманный компьютер.

1nfiniti
источник
Хорошо, глупый вопрос: как мне установить bluetoothctl? Я пытался sudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools.
d3pd
... ¯_ (ツ) _ / ¯ - он уже был там на моей машине, просматривал мои пакеты Bluez, единственные, что у меня есть, bluez-obexdи libbluetooth3, но я предполагаю, что они идут bluez(у меня работает 5.35 FWIW).
1
Спасибо за вашу помощь в этом. Я понятия не имею, как установить BlueZ 5 в Ubuntu Touch (и перебросить / перепрошить устройство, пытающееся это сделать), поэтому я задам отдельный вопрос по этому поводу.
d3pd
1
И снова, выпуск Ubuntu Touch OTA9 включает в себя Bluez 5 и позволяет выполнять сопряжение с клавиатурами ThinkPad Bluetooth, поэтому основные идеи вашего решения были правильными. Еще раз спасибо за помощь.
d3pd
Я использовал bluetoothctl для подключения универсальной складной клавиатуры Microsoft к своему планшету Aquaris M10 и преуспел в этом. Единственная проблема заключается в том, что Ubuntu Touch не распознает, когда клавиатура отключена, и отказывается предоставлять мне OSK до перезагрузки. Есть ли способ отсоединить клавиатуру с помощью команды bluetoothctl без необходимости повторного сопряжения? Смотрите мой отчет об ошибке панели запуска здесь: bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/…
tomoqv
8

Следовал инструкциям 1nfiniti на Ubuntu 16.04 amd64, и он прекрасно работал с клавиатурой и мышью Logitech MX5000. Но когда я перезагрузил компьютер, клавиатура больше не печатала. Он показывал как подключенный, но не сопряженный в настройках Bluetooth. Однако мышь работала нормально.

Изучив ссылку на bluetoothctl ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ), вы поняли, что команда «trust» использовалась после команды «pair», чтобы позволить некоторым устройствам успешно переподключиться.

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

[bluetooth]# trust [keyboard MAC Address]

Тогда мне сообщили, что вашей клавиатуре доверяют

Trusted

И это сработало, теперь клавиатура подключается без проблем каждый раз, когда я запускаю / перезагружаю компьютер.

metacibi
источник