Wie kann eine Bluetooth-Tastatur, die eine Codeeingabe erfordert, im Terminal gekoppelt werden?

20

Ich habe eine Bluetooth ThinkPad 2 Tablet-Tastatur , die ich mit meinem Ubuntu Touch Aquaris E4.5 koppeln möchte. Aufgrund von GUI-Einschränkungen möchte ich versuchen, dies im Terminal zu tun. Ich hoffe, dass der Prozess dem auf Ubuntu Desktop ähnelt.

Unter Ubuntu Desktop 15.10 wird beim Koppeln der Tastatur die folgende Meldung in einem GUI-Dialogfeld angezeigt:

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

Durch Eingabe der 6-stelligen PIN über die Bluetooth-Tastatur und Drücken von wird Enterdas Pairing der Tastatur abgeschlossen, und es funktioniert einwandfrei. Wenn ich versuche, die Tastatur unter Ubuntu Touch zu koppeln, wird kein GUI-Dialogfeld angezeigt, in dem der auf der Bluetooth-Tastatur einzugebende Code angezeigt wird. Also möchte ich versuchen, die Tastatur im Terminal zu koppeln.

Ich habe Folgendes versucht:

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

Was könnte ich als nächstes versuchen?

d3pd
quelle

Antworten:

26

Sie können versuchen, bluetoothctl über die Befehlszeile auszuführen. Vergewissern Sie sich, dass Ihr Gerät eingeschaltet ist und erkannt werden kann:

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

Alle anderen Bluetooth-Geräte werden hier aufgelistet. Sie werden dann in einer [bluetooth]Eingabeaufforderung sein.

Schalten Sie zuerst Bluetooth ein (wenn Ihr Gerät ausgeschaltet ist):

[bluetooth]# power on
Changing power on succeeded

Stellen Sie dann sicher, dass Ihr Agent registriert ist:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

Jetzt können Sie über die Konsole nach Geräten suchen:

[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

Sie können auch von hier aus manuell koppeln:

[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

An dieser Stelle sollten Sie aufgefordert werden, einen PIN-Code für das Pairing einzugeben:

Request PIN code
[agent] Enter PIN code: 12345

Geben Sie eine Nummer ein (z. B. 12345), und Sie werden aufgefordert, dieselbe Nummer vom Gerät einzugeben:

[Someone's Keyboard]# 12345

Sie sollten dann benachrichtigt werden, dass Ihre Tastatur gekoppelt wurde:

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

Hoffentlich funktioniert das für Sie, ich habe versucht, das für eine Weile zu lösen, bevor ich einen Hinweis darauf gefunden habe bluetoothctl.


BEARBEITEN: Die Ubuntu Touch OTA9-Version enthält Bluez 5 und ermöglicht das Koppeln mit den ThinkPad-Tastaturen. Hier ist der kleine BQ Aquaris E4.5, der fast wie ein Palmtop wirkt.

1nfiniti
quelle
Ok, dumme Frage: Wie installiere ich bluetoothctl? Ich habe es versucht sudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools.
d3pd
... ¯_ (ツ) _ / ¯ - es war bereits auf meinem Computer vorhanden und sah sich meine Bluez-Pakete an. Die einzigen anderen, die ich habe, sind bluez-obexdund libbluetooth3, aber ich vermute, sie kommen mit bluez(ich lasse 5.35 laufen) fwiw).
1nfiniti
Vielen Dank für Ihre Hilfe. Ich habe keine Ahnung, wie ich BlueZ 5 in Ubuntu Touch installieren soll (und habe ein Gerät, das dies versucht, zugemauert / reflasht), daher stelle ich eine separate Frage dazu.
d3pd
1
Hallo zusammen, die Ubuntu Touch OTA9-Version enthält Bluez 5 und ermöglicht das Koppeln mit den ThinkPad-Bluetooth-Tastaturen, sodass die Grundideen Ihrer Lösung korrekt waren. Danke nochmal für deine Hilfe.
d3pd
Ich habe Bluetooth zum Verbinden der Microsoft Universal Foldable Keyboard mit meinem Aquaris M10-Tablet verwendet und dies ist mir gelungen. Das einzige Problem ist, dass Ubuntu Touch nicht erkennt, wenn die Tastatur nicht angeschlossen ist, und mir das OSK erst nach einem Neustart anzeigt. Gibt es eine Möglichkeit, die Tastatur über einen Bluetooth-Befehl zu trennen, ohne den Kopplungsvorgang erneut durchführen zu müssen? Siehe meinen Launchpad-Fehlerbericht hier: bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/…
tomoqv
8

Befolgte die Schritte von 1nfiniti auf Ubuntu 16.04 amd64 und es funktionierte hervorragend mit der Logitech MX5000 Tastatur- und Mauskombination. Beim Neustart des Computers wurde die Tastatur jedoch nicht erneut eingegeben. Es wurde in den Bluetooth-Einstellungen als verbunden, aber nicht gekoppelt angezeigt. Die Maus funktionierte jedoch einwandfrei.

Ein Blick auf die Bluetooth-Referenz ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ) hat ergeben, dass nach dem Befehl 'pair' ein Befehl 'trust' verwendet wurde, mit dem einige Geräte die Verbindung erfolgreich wiederherstellen können.

Also startete ich bluetoothctl, trennte und entkoppelte die Tastatur, verband und koppelte sie erneut und gab aus

[bluetooth]# trust [keyboard MAC Address]

Dann wurde mir mitgeteilt, dass Ihre Tastatur vertrauenswürdig ist

Trusted

Und das war der Trick, jetzt stellt die Tastatur jedes Mal, wenn ich den Computer starte / neu starte, eine einwandfreie Verbindung her.

metacibi
quelle