Як може клавіатура Bluetooth, яка вимагає введення коду, з'єднана в терміналі?


20

У мене є клавіатура Bluetooth ThinkPad 2 Tablet, яку я хочу з'єднати зі своїм Ubuntu Touch Aquaris E4.5. Через обмеження GUI, я хочу спробувати це зробити в терміналі. Я сподіваюся, що процес буде подібний до того, що на 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:~$

Що я міг би спробувати далі?

Відповіді:


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.


EDIT: Випуск Ubuntu Touch OTA9 включає Bluez 5, що забезпечує можливість сполучення з клавіатурами ThinkPad. Ось маленький BQ Aquaris E4.5, який діє майже як на долоні.


Гаразд, дурне питання: як встановити 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 фви).
1nfiniti

Дякуємо за вашу допомогу з цього питання. Я поняття не маю, як встановити 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 ) зрозумів, що команда "довіра" використовується після команди "пара", щоб дозволити деяким пристроям успішно підключитися.

Тож я запустив bluetoothctl, відключив та відключив клавіатуру, з’єднав та з’єднав її ще раз та видав

[bluetooth]# trust [keyboard MAC Address]

Потім мені повідомили, що вашій клавіатурі довіряють

Trusted

І це зробило трюк, тепер клавіатура бездоганно підключається під час кожного запуску / перезавантаження комп’ютера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.