我正在尝试使用 bluetoothctl 将蓝牙键盘连接到运行 Ubuntu 20.04 的笔记本电脑。配对成功后,我无法启动连接。跟踪系统日志指示问题:
bluetoothd[755]: Can't get HIDP connection info
bluetoothd[755]: connect error: Host is down (112)
我已经连接了蓝牙触控板,所以问题似乎与键盘有关。键盘是全新的,所以我想它应该也能正常工作。
我将非常感激任何能帮我弄清楚发生了什么事情的提示。
答案1
问题的可能原因
我的蓝牙键盘(Logitech diNovo 键盘)也在 Ubuntu 20.04 中停止工作,内核较新5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
。我可以在系统日志中看到
Jul 6 10:20:20 localhost bluetoothd[1337919]: Can't get HIDP connection info
Jul 6 10:20:25 localhost bluetoothd[1337919]: connect error: Host is down (112)
Jul 6 10:20:30 localhost bluetoothd[1337919]: Can't get HIDP connection info
Jul 6 10:20:30 localhost bluetoothd[1337919]: connect error: Device or resource busy (16)
其他 BT 设备没有这样的问题。我不太清楚到底发生了什么变化。我只看到我无法再在 BT 设备上浏览可用的服务
shell> sdptool browse <bt-keyboard-sanitized>
Failed to connect to SDP server on <bt-keyboard-sanitized> Host is down
我也无法在其他 BT 设备上浏览服务,尽管之前它运行良好。我怀疑这在 BT 堆栈的某个地方造成了问题。
解决方法
我能够再次连接键盘。以下步骤描述了该过程,YMMV。
打开blueman-applet(小程序)窗口和带有命令的终端蓝牙控制(命令行)。
在小程序中,如果已配对,则移除该设备。
在 CLI 中,将适配器设置为可配对和可发现。然后启用代理并开始扫描。(出于某种原因,该实用程序会将连接的 BT 设备显示为提示,例如在本例中为“MX Master 2S”)。
[MX Master 2S]# pairable on
Changing pairable on succeeded
[CHG] Controller <bt-adapter-sanitized> Pairable: yes
[MX Master 2S]# discoverable on
Changing discoverable on succeeded
[CHG] Controller <bt-adapter-sanitized> Discoverable: yes
[MX Master 2S]# agent on
Agent is already registered
[MX Master 2S]# default-agent
Default agent request successful
[MX Master 2S]# show
Controller <bt-adapter-sanitized> (public)
...
Class: 0x000c0000
Powered: yes
Discoverable: yes
DiscoverableTimeout: 0x000000b4
Pairable: yes
...
Discovering: no
开始键盘配对。按住键盘上的连接按钮几秒钟。
在小程序中,按下搜索按钮并等待键盘出现在列表中。仍然在小程序中,右键单击键盘条目并选择“配对”。
在 CLI 中,您将看到来自代理的 PIN,例如
[agent] PIN code: 143052
。在您尝试配对的键盘上输入 PIN。您应该看到键盘已连接,服务(以某种方式)已解析并已配对。
[CHG] Device <bt-keyboard-sanitized> Connected: yes
[CHG] Device <bt-keyboard-sanitized> Modalias: usb:v046DpB303d2306
[CHG] Device <bt-keyboard-sanitized> UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device <bt-keyboard-sanitized> UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device <bt-keyboard-sanitized> ServicesResolved: yes
[CHG] Device <bt-keyboard-sanitized> Paired: yes
- 在小程序中,将键盘设置为受信任。您应该看到
[CHG] Device <bt-keyboard-sanitized> Trusted: yes
- 但小程序中的设置不起作用。您应该在 CLI 中看到简短的消息,但小程序中没有用于设置设备的窗口
[CHG] Controller <bt-adapter-sanitized> Discovering: yes
[CHG] Controller <bt-adapter-sanitized> Discovering: no
这很可能是因为sdp工具无法浏览设备上的服务。尽管如此,键盘还是连接并(以某种方式)解决了服务
[CHG] Device <bt-keyboard-sanitized> Connected: yes
[CHG] Device 00:07:61:31:EA:A8 ServicesResolved: yes
- 您可能需要禁用代理并将可配对和可发现功能也设置为关闭。需要时可再次将其设置为打开。
[MX Master 2S]# agent off
[MX Master 2S]# pairable off
[MX Master 2S]# discoverable off