我有一个嵌入式Linux设备我试图建立一个蓝牙堆栈。我正在使用TI CC2564b双模蓝牙芯片。当然,Bluez是嵌入式Linux的首选。
问题是,我在那里看到的大部分问题都是为了解决我的问题,升级到Bluez 5.xx.您可能知道,Bluez 5和更高版本要求Linux内核3.5与BLE一起使用。
以下链接甚至指出BLE期间需要3.5。
我可以执行lescans
,甚至可以使用gatttool
与某些设备配对,但是我与 THE 外围设备配对完全没有成功我正在尝试开始工作。
当我尝试连接时,我得到以下HCIDump:
ACL数据:处理1025标志0x02 dlen 6
SMP:安全请求(0x0b)
auth req 0x01
ACL数据:处理1025个标志0x00 dlen 6
SMP:配对失败(0x05),原因0x05,不支持原因配对
有人能告诉我是否有遗漏的东西,或者Bluez 4.101与Linux 3.2是否只是不会削减它?
另一方面,我知道外围设备可以配对,因为我用我的笔记本电脑运行Ubuntu 12.10(Kernel 3.5,Bluez 4.101)。我已经确定我的hciconfig -a几乎完全匹配。
谢谢!
修改
看起来我能够连接到某些LE设备,而不是其他设备,具体取决于它们是否通过加密连接。当我尝试使用hciconfig
启用加密时会发生以下情况:
root @ am335x-neptune:〜#hciconfig hci0 encrypt
无法在hci0上设置加密:无效的请求代码(56)