我试图将蓝牙低能量血氧计连接到我的Ubuntu桌面,但我遇到了一些问题。
我可以使用hcitool lescan
看到设备很好,但是当我输入
sudo gatttool -b 00:1C:05:FF:ED:A9 -I
[ ][00:1C:05:FF:ED:A9][LE]> connect
这些是来自hcidump -X
的日志:
HCI Event: Command Status (0x0f) plen 4
LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
HCI Event: Command Status (0x0f) plen 4
LE Start Encryption (0x08|0x0019) status 0x00 ncmd 1
HCI Event: Encrypt Change (0x08) plen 4
status 0x06 handle 64 encrypt 0x00
Error: PIN or Key Missing
HCI Event: Command Status (0x0f) plen 4
Disconnect (0x01|0x0006) status 0x00 ncmd 1
HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 64 reason 0x16
Reason: Connection Terminated by Local Host
这看起来像某种身份验证失败。问题是血氧计不需要任何PIN或密码。它只是一个简单的代理,可以将数据发送给任何连接的人。
谢谢
答案 0 :(得分:0)
尝试使用hcitool lecc
命令:
sudo hcitool lecc 00:1C:05:FF:ED:A9
答案 1 :(得分:0)
我的血氧计也遇到了同样的问题。我还没有找到它的底部,但我的确有一个解决办法。 YMMV。
在我的情况下,连接最初几次正常,然后停止使用您显示的相同PIN错误。我的解决方法是删除与oximiter的配对(由最初成功的连接创建)。我通过" bt-device -r XX:XX:XX:XX:XX:XX"来做到这一点。之后连接成功。也就是说,需要在再次连接之前删除任何先前的配对。
这是简短的回答:-)这里有更详细的研究。
如果以root身份运行hcidump(sudo hcidump -X),它将为您提供更详细的数据。你可能会看到的是:
> ACL data: handle 69 flags 0x02 dlen 6
SMP: Security Request (0x0b)
auth req 0x00
< HCI Command: LE Start Encryption (0x08|0x0019) plen 28
0000: 45 00 ec 8e 25 1b 09 46 b3 f7 7e ae 20 be 0c 63 E...%..F..~. ..c
0010: fc cf ef e5 82 61 e0 eb d4 bd 54 f6 .....a....T.
> HCI Event: Command Status (0x0f) plen 4
LE Start Encryption (0x08|0x0019) status 0x00 ncmd 0
> HCI Event: Command Status (0x0f) plen 4
Unknown (0x00|0x0000) status 0x00 ncmd 1
> HCI Event: Encrypt Change (0x08) plen 4
status 0x06 handle 69 encrypt 0x00
Error: PIN or Key Missing
在我看来,oximiter请求配对(第一个ACL数据转储),但bluez不会像它应该的那样启动一个。将此与初始成功连接进行比较。 oximiter请求配对,此时本地bluez确实响应了一对请求:
> ACL data: handle 70 flags 0x02 dlen 6
SMP: Security Request (0x0b)
auth req 0x00
< ACL data: handle 70 flags 0x00 dlen 11
SMP: Pairing Request (0x01)
capability 0x03 oob 0x00 auth req 0x01
max key size 0x10 init key dist 0x00 resp key dist 0x01
Capability: NoInputNoOutput (OOB data not present)
Authentication: Bonding (No MITM Protection)
Initiator Key Distribution:
Responder Key Distribution: LTK
> HCI Event: Number of Completed Packets (0x13) plen 5
handle 70 packets 1
> ACL data: handle 70 flags 0x02 dlen 11
SMP: Pairing Response (0x02)
capability 0x03 oob 0x00 auth req 0x01
max key size 0x10 init key dist 0x00 resp key dist 0x01
Capability: NoInputNoOutput (OOB data not present)
Authentication: Bonding (No MITM Protection)
Initiator Key Distribution:
Responder Key Distribution: LTK
我还在调查,以确定这是否是bluez中的错误,或者我的用户是否有错误。
答案 2 :(得分:0)
尝试:
sudo gatttool -t random -b 00:1C:05:FF:ED:A9 -I
然后输入connect