![如何在不使用 gatttool 的情况下在 Linux 中配对 BLE 设备?](https://linux22.com/image/198720/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%20gatttool%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%9C%A8%20Linux%20%E4%B8%AD%E9%85%8D%E5%AF%B9%20BLE%20%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
一些蓝牙低功耗 (BLE) 设备很难在 Linux 中配对。我能找到的所有信息(包括这问题)建议gatttool
应该使用,如下所示:
sudo gatttool -t random -b E7:2D:83:06:AA:AB -I
[E7:2D:83:06:AA:AB][LE]> connect
不幸的是,gatttool
它已被弃用,并且不再在多个 Linux 发行版中分发。
这archlinux 文档说btgatt-client
应该替换gatttool
.我尝试了以下方法,但没有成功:
$ btgatt-client -d F9:B9:1D:A5:73:F4 -t random -v
btgatt-client: Opening L2CAP LE connection on ATT channel:
src: 00:00:00:00:00:00
dest: F9:B9:1D:A5:73:F4
Connecting to device... Done
[GATT client]# att: (chan 0x5623a9b9d6e0) ATT op 0x08
[GATT client]# att: < 08 01 00 ff ff 3a 2b .....:+
[GATT client]# att: Channel 0x5623a9b9d6e0 disconnected: Software caused connection abort
[GATT client]# gatt: Primary service discovery failed. ATT ECODE: 0x00
[GATT client]# gatt: Failed to initialize gatt-client
[GATT client]# GATT discovery procedures failed - error code: 0x00
[GATT client]# Device disconnected: Software caused connection abort
不幸的是,由于缺乏文档,我不知道如何继续。
答案1
正如您在原来的问题中提到的,bluetoothctl
应该用于配对。您还可以btmgmt
预先使用来正确设置您的设备。以下是我在 Linux 上配对设备时通常遵循的步骤:
- 将您的设备配置为可发现、可连接和可配对
sudo btmgmt power off sudo btmgmt discov on sudo btmgmt connectable on sudo btmgmt pairable on sudo btmgmt power on
- 设置您的设备以接受数字配对
bluetoothctl --agent KeyboardDisplay
- 然后,如果您的设备是外围设备,您应该等待远程设备发出配对请求。
如果您的设备是中心设备,那么您可以使用以下命令启动配对:
pair 00:11:22:33:44:55
00:11:22:33:44:55
您要配对的设备的地址在哪里(您可以使用scan on
/scan off
命令找到该地址)。
以下是一些包含更多信息的链接,可以帮助您回答您的问题: