¿Cómo se puede emparejar un teclado Bluetooth que requiere una entrada de código en el terminal?

20

Tengo un teclado Bluetooth ThinkPad 2 Tablet que quiero emparejar con mi Ubuntu Touch Aquaris E4.5. Debido a las limitaciones de la GUI, quiero intentar hacer esto en la terminal. Espero que el proceso sea similar al del Escritorio de Ubuntu.

En Ubuntu Desktop 15.10, al emparejar el teclado, se presenta el siguiente mensaje en un cuadro de diálogo GUI:

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

Ingresar el PIN de 6 dígitos en el teclado Bluetooth y presionar Entercompleta el emparejamiento del teclado y funciona bien. Cuando intento emparejar el teclado en Ubuntu Touch, no aparece un cuadro de diálogo GUI que muestre el código que se debe ingresar en el teclado Bluetooth. Entonces, quiero intentar emparejar el teclado en la terminal.

He probado lo siguiente:

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

¿Qué podría probar a continuación?

d3pd
fuente

Respuestas:

26

Puede intentar ejecutar bluetoothctl desde la línea de comandos, asegúrese de que su dispositivo esté encendido / listo para ser descubierto:

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

Cualquier otro dispositivo bluetooth se enumerará aquí. Entonces estarás dentro de un [bluetooth]aviso.

Primero, encienda el bluetooth (si su dispositivo está apagado):

[bluetooth]# power on
Changing power on succeeded

Luego, asegúrese de que su agente esté registrado:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful

Ahora puede buscar dispositivos desde la consola:

[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

Puede emparejar manualmente desde aquí también:

[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

En este punto, se le pedirá que ingrese un código PIN para el emparejamiento:

Request PIN code
[agent] Enter PIN code: 12345

Ingrese un número (ej. 12345), y se le pedirá que ingrese el mismo número desde el dispositivo:

[Someone's Keyboard]# 12345

Debería ser notificado de que su teclado se ha emparejado:

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

Espero que esto funcione para usted, estaba tratando de resolver esto por un tiempo antes de encontrar alguna referencia bluetoothctl.


EDITAR: La versión Ubuntu Touch OTA9 incluye Bluez 5, lo que permite el emparejamiento con los teclados ThinkPad. Aquí está el pequeño BQ Aquaris E4.5 que actúa casi como una palma.

1nfiniti
fuente
Ok, pregunta tonta: ¿cómo instalo bluetoothctl? He tratado sudo add-apt-repository ppa:vidplace7/bluez5; sudo apt-get update; sudo apt-get install bluez bluez-tools.
d3pd
... ¯_ (ツ) _ / ¯ - ya estaba allí en mi máquina, mirando mis paquetes de Bluez, los únicos otros que tengo son bluez-obexdy libbluetooth3, pero supongo que vienen con bluez(estoy ejecutando 5.35 fwiw).
1nfiniti
Gracias por tu ayuda en esto. No tengo idea de cómo instalar BlueZ 5 en Ubuntu Touch (y bloquear / actualizar un dispositivo que intenta hacerlo), así que haré una pregunta por separado sobre esto.
d3pd
1
Una vez más, la versión Ubuntu Touch OTA9 incluye Bluez 5 y permite el emparejamiento con los teclados Bluetooth ThinkPad, por lo que las ideas básicas de su solución fueron correctas. De nuevo, gracias por tu ayuda.
d3pd
He estado usando bluetoothctl para conectar el teclado plegable universal de Microsoft a mi tableta Aquaris M10 y lo logré. El único problema es que Ubuntu Touch no reconoce cuando el teclado está desconectado y se niega a presentarme el OSK hasta que reinicie. ¿Hay alguna manera de separar el teclado a través de un comando bluetoothctl sin tener que pasar por el proceso de emparejamiento nuevamente? Vea mi informe de errores de launchpad aquí: bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/…
tomoqv
8

Seguí los pasos de 1nfiniti en Ubuntu 16.04 amd64 y funcionó muy bien con la combinación de teclado y mouse Logitech MX5000. Pero cuando reinicié la computadora, el teclado no volvió a escribir. Se mostró como conectado pero no emparejado en la configuración de Bluetooth. Sin embargo, el mouse funcionó bien.

Al echar un vistazo a la referencia de bluetoothctl ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ) me di cuenta de que se usó un comando 'confianza' después del comando 'par' para permitir que algunos dispositivos se reconecten con éxito.

Así que comencé bluetoothctl, desconecté y desconecté el teclado, lo conecté y lo emparejé nuevamente, y emití

[bluetooth]# trust [keyboard MAC Address]

Luego me notificaron que su teclado ha sido confiable

Trusted

Y eso funcionó, ahora el teclado se conecta perfectamente cada vez que inicio / reinicio la computadora.

metacibi
fuente