Comment associer un clavier Bluetooth nécessitant une entrée de code dans le terminal?

20

J'ai un clavier Bluetooth ThinkPad 2 Tablet que je veux coupler avec mon Ubuntu Touch Aquaris E4.5. En raison des limitations de l'interface graphique, je veux essayer de le faire dans le terminal. J'espère que le processus sera similaire à celui sur Ubuntu Desktop.

Sur Ubuntu Desktop 15.10, lors du couplage du clavier, le message suivant est présenté dans une boîte de dialogue GUI:

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

Entrer le code PIN à 6 chiffres sur le clavier Bluetooth et appuyer sur Entertermine le couplage du clavier et cela fonctionne très bien. Lorsque j'essaie de coupler le clavier sur Ubuntu Touch, aucune boîte de dialogue GUI n'est affichée affichant le code à saisir sur le clavier Bluetooth. Donc, je veux essayer de coupler le clavier dans le terminal.

J'ai essayé ce qui suit:

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:~$

Que pourrais-je essayer ensuite?

d3pd
la source

Réponses:

26

Vous pouvez essayer d'exécuter bluetoothctl à partir de la ligne de commande, assurez-vous que votre appareil est allumé / prêt à être découvert:

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

Tous les autres appareils Bluetooth seront répertoriés ici. Vous serez alors dans une [bluetooth]invite.

Tout d'abord, activez le Bluetooth (si votre appareil est éteint):

[bluetooth]# power on
Changing power on succeeded

Ensuite, assurez-vous que votre agent est enregistré:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

Vous pouvez maintenant rechercher des appareils à partir de la console:

[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

Vous pouvez également associer manuellement à partir d'ici:

[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

À ce stade, vous devez être invité à entrer un code PIN pour le couplage:

Request PIN code
[agent] Enter PIN code: 12345

Entrez un numéro (par exemple 12345) et vous serez invité à saisir le même numéro depuis l'appareil:

[Someone's Keyboard]# 12345

Vous devriez alors être informé que votre clavier a été couplé:

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

J'espère que cela fonctionne pour vous, j'essayais de résoudre ce problème pendant un certain temps avant de trouver une référence à bluetoothctl.


EDIT: La version Ubuntu Touch OTA9 comprend Bluez 5, permettant le couplage avec les claviers ThinkPad. Voici le petit BQ Aquaris E4.5 agissant presque comme un palmtop.

1nfiniti
la source
Ok, question idiote: comment installer bluetoothctl? J'ai essayé sudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools.
d3pd
... ¯_ (ツ) _ / ¯ - il était déjà là sur ma machine, en regardant mes paquets Bluez, les seuls autres que j'ai bluez-obexdet sont libbluetooth3, mais je suppose qu'ils viennent avec bluez(je lance 5.35 fwiw).
1nfiniti
Merci pour votre aide. Je ne sais pas comment installer BlueZ 5 dans Ubuntu Touch (et brique / reflasher un appareil essayant de le faire), donc je vais poser une question distincte à ce sujet.
d3pd
1
Hé encore une fois, la version Ubuntu Touch OTA9 inclut Bluez 5 et permet le couplage avec les claviers Bluetooth ThinkPad, donc les idées de base de votre solution étaient correctes. Merci encore pour votre aide.
d3pd
J'ai utilisé bluetoothctl pour connecter le clavier pliable universel Microsoft à ma tablette Aquaris M10 et j'ai réussi. Le seul problème est qu'Ubuntu Touch ne reconnaît pas lorsque le clavier est déconnecté et refuse de me présenter l'OSK jusqu'à ce que je redémarre. Existe-t-il un moyen de détacher le clavier via une commande bluetoothctl sans avoir à recommencer le processus de couplage? Voir mon rapport de bogue du tableau de bord ici: bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/…
tomoqv
8

J'ai suivi les étapes de 1nfiniti sur Ubuntu 16.04 amd64 et cela a très bien fonctionné avec le combo clavier et souris Logitech MX5000. Mais lorsque j'ai redémarré l'ordinateur, le clavier n'a pas tapé à nouveau. Il s'est affiché comme connecté mais pas couplé sur les paramètres Bluetooth. Cependant, la souris a bien fonctionné.

Jetez un œil à la référence bluetoothctl ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ) a permis de constater qu'une commande 'trust' était utilisée après la commande 'pair' pour permettre à certains appareils de se reconnecter avec succès.

J'ai donc commencé bluetoothctl, déconnecté et dissocié le clavier, connecté et couplé à nouveau et émis

[bluetooth]# trust [keyboard MAC Address]

Ensuite, j'ai été informé que votre clavier a été approuvé

Trusted

Et cela a fait l'affaire, maintenant le clavier se connecte parfaitement à chaque démarrage / redémarrage de l'ordinateur.

metacibi
la source