W jaki sposób można połączyć klawiaturę Bluetooth, która wymaga wprowadzenia kodu w terminalu?

20

Mam klawiaturę Bluetooth ThinkPad 2 Tablet , którą chcę sparować z moim Ubuntu Touch Aquaris E4.5. Ze względu na ograniczenia GUI chcę to zrobić w terminalu. Mam nadzieję, że proces będzie podobny do tego na Ubuntu Desktop.

W przypadku Ubuntu Desktop 15.10 podczas parowania klawiatury w oknie dialogowym GUI pojawia się następujący komunikat:

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

Wprowadzenie 6-cyfrowego kodu PIN na klawiaturze Bluetooth i naciśnięcie Enterkończy parowanie klawiatury i działa dobrze. Kiedy próbuję sparować klawiaturę z Ubuntu Touch, nie pojawia się okno dialogowe GUI z kodem, który należy wprowadzić na klawiaturze Bluetooth. Chcę więc sparować klawiaturę z terminalem.

Próbowałem następujące:

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

Co mogę teraz spróbować?

d3pd
źródło

Odpowiedzi:

26

Możesz spróbować uruchomić bluetoothctl z wiersza poleceń, upewnij się, że urządzenie jest włączone / gotowe do wykrycia:

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

Wszelkie inne urządzenia Bluetooth zostaną wymienione tutaj. Pojawi się [bluetooth]monit.

Najpierw włącz zasilanie Bluetooth (jeśli urządzenie jest wyłączone):

[bluetooth]# power on
Changing power on succeeded

Następnie upewnij się, że agent jest zarejestrowany:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

Teraz możesz skanować w poszukiwaniu urządzeń z konsoli:

[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

Możesz również ręcznie sparować z tego miejsca:

[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

W tym momencie powinien zostać wyświetlony monit o wprowadzenie kodu PIN do parowania:

Request PIN code
[agent] Enter PIN code: 12345

Wprowadź numer (np. 12345), a zostaniesz poproszony o wprowadzenie tego samego numeru z urządzenia:

[Someone's Keyboard]# 12345

Powinieneś zostać powiadomiony o sparowaniu klawiatury:

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

Mam nadzieję, że to działa dla ciebie, próbowałem to rozwiązać przez jakiś czas, zanim znalazłem jakieś odniesienie bluetoothctl.


EDYCJA: Wersja Ubuntu Touch OTA9 zawiera Bluez 5, umożliwiając parowanie z klawiaturami ThinkPad. Oto mały BQ Aquaris E4.5 działający prawie jak palmtop.

1nfiniti
źródło
Ok, głupie pytanie: jak zainstalować bluetoothctl? Próbowałem sudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools.
d3pd,
... ¯_ (ツ) _ / ¯ - był już tam na mojej maszynie, patrząc na moje pakiety Bluez, jedyne inne, jakie mam, bluez-obexdi libbluetooth3, ale domyślam się, że są z bluez(działam 5.35 fwiw).
1nfiniti,
Dziękuję za pomoc w tej sprawie. Nie mam pojęcia, jak zainstalować BlueZ 5 w Ubuntu Touch (i zamurowałem / przeszyfrowałem urządzenie próbujące to zrobić), więc zadam osobne pytanie na ten temat.
d3pd,
1
Cześć, wersja Ubuntu Touch OTA9 zawiera Bluez 5 i umożliwia sparowanie z klawiaturami ThinkPad Bluetooth, więc podstawowe pomysły Twojego rozwiązania były prawidłowe. Jeszcze raz dziękuję za pomoc.
d3pd
Korzystam z bluetoothctl, aby podłączyć uniwersalną składaną klawiaturę Microsoft do mojego tabletu Aquaris M10 i udało mi się to. Jedynym problemem jest to, że Ubuntu Touch nie rozpoznaje, kiedy klawiatura jest odłączona i odmawia przedstawienia OSK do momentu ponownego uruchomienia. Czy istnieje sposób na odłączenie klawiatury za pomocą polecenia bluetoothctl bez konieczności ponownego wykonywania procesu parowania? Zobacz mój raport o błędach w
Launcherze
8

Postępował zgodnie z instrukcjami 1nfiniti na Ubuntu 16.04 amd64 i działał świetnie z kombinacją klawiatury i myszy Logitech MX5000. Ale kiedy ponownie uruchomiłem komputer, klawiatura nie pisała ponownie. W Ustawieniach Bluetooth pokazał się jako podłączony, ale nie sparowany. Jednak mysz działała dobrze.

Po zapoznaniu się z referencją bluetoothctl ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ) zdałem sobie sprawę, że po poleceniu „sparowania” użyto polecenia „zaufanie”, aby umożliwić niektórym urządzeniom ponowne nawiązanie połączenia.

Więc uruchomiłem bluetoothctl, odłączyłem i sparowałem klawiaturę, podłączyłem i sparowałem ponownie, i wydałem

[bluetooth]# trust [keyboard MAC Address]

Wtedy otrzymałem powiadomienie, że twoja klawiatura jest zaufana

Trusted

I to załatwiło sprawę, teraz klawiatura łączy się bezbłędnie za każdym razem, gdy uruchamiam / restartuję komputer.

metacibi
źródło