需要密码输入的蓝牙键盘如何在终端配对?

d3p*_*3pd 27 command-line keyboard bluetooth

我有一个蓝牙ThinkPad 2 Tablet 键盘,我想将它与我的 Ubuntu Touch Aquaris E4.5 配对。由于 GUI 限制,我想尝试在终端中执行此操作。我希望这个过程类似于 Ubuntu 桌面上的过程。

在 Ubuntu 桌面 15.10 上,配对键盘时,GUI 对话框中会显示以下消息:

Please enter the following PIN on "ThinkPad keyboard" and press "Enter" on the keyboard:
<6-digit number>
Run Code Online (Sandbox Code Playgroud)

在蓝牙键盘上输入 6 位 PIN 并按Enter完成键盘配对,工作正常。当我尝试在 Ubuntu Touch 上配对键盘时,没有出现显示要在蓝牙键盘上输入的代码的 GUI 对话框。所以,我想尝试在终端中配对键盘。

我尝试了以下方法:

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:~$
Run Code Online (Sandbox Code Playgroud)

接下来我可以尝试什么?

小智 38

您可以尝试从命令行运行 bluetoothctl,确保您的设备已开启/准备好被发现:

$ bluetoothctl
[NEW] Controller AA:BB:CC:DD:EE:FF device-name [default]
Run Code Online (Sandbox Code Playgroud)

此处将列出任何其他蓝牙设备。然后,您将进入[bluetooth]提示。

首先,打开蓝牙电源(如果您的设备已关闭):

[bluetooth]# power on
Changing power on succeeded
Run Code Online (Sandbox Code Playgroud)

然后,确保您的代理已注册:

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent 
Default agent request successful
Run Code Online (Sandbox Code Playgroud)

现在您可以从控制台扫描设备:

[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
Run Code Online (Sandbox Code Playgroud)

您也可以从这里手动配对:

[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
Run Code Online (Sandbox Code Playgroud)

此时,应提示您输入用于配对的 PI​​N 码:

Request PIN code
[agent] Enter PIN code: 12345
Run Code Online (Sandbox Code Playgroud)

输入一个数字(例如 12345),系统将提示您从设备输入相同的数字:

[Someone's Keyboard]# 12345
Run Code Online (Sandbox Code Playgroud)

然后,您应该会收到键盘已配对的通知:

[CHG] Device FF:EE:DD:CC:BB:AA Paired: yes
Run Code Online (Sandbox Code Playgroud)

希望这对你有用,在我找到任何对bluetoothctl.


编辑:Ubuntu Touch OTA9 版本包括 Bluez 5,支持与 ThinkPad 键盘配对。这是一款几乎充当掌上电脑的小型 BQ Aquaris E4.5。


小智 10

在 Ubuntu 16.04 amd64 上遵循 1nfiniti 的步骤,它与 Logitech MX5000 键盘和鼠标组合配合得很好。但是当我重新启动计算机时,键盘没有再次输入。它在蓝牙设置中显示为已连接但未配对。但是,鼠标工作正常。

查看 bluetoothctl 参考 ( https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl ) 意识到在“配对”命令之后使用了“信任”命令以允许某些设备成功重新连接。

于是我启动了bluetoothctl,断开并取消了键盘的配对,重新连接并配对,并发出

[bluetooth]# trust [keyboard MAC Address]
Run Code Online (Sandbox Code Playgroud)

然后我被告知你的键盘已被信任

Trusted
Run Code Online (Sandbox Code Playgroud)

这样就成功了,现在每次我启动/重新启动计算机时,键盘都可以完美连接。