有没有办法在Linux中配对设备而不需要引脚(出于测试目的,所以我需要在没有人工交互的情况下完成它,假设你有root权限)?
bluez-simple-agent似乎需要一个引脚,除了一些简单的设备,如鼠标。
答案 0 :(得分:26)
输入PIN实际上是一种过时的配对方法,现在称为Legacy Pairing。安全简单配对模式在蓝牙v2.1及更高版本中可用,其中包括大多数现代蓝牙设备。 SSPMode身份验证由蓝牙协议栈处理,因此无需用户交互即可运行。
以下是关于连接设备的方法:
# hciconfig hci0 sspmode 1
# hciconfig hci0 sspmode
hci0: Type: BR/EDR Bus: USB
BD Address: AA:BB:CC:DD:EE:FF ACL MTU: 1021:8 SCO MTU: 64:1
Simple Pairing mode: Enabled
# hciconfig hci0 piscan
# sdptool add SP
# hcitool scan
00:11:22:33:44:55 My_Device
# rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 &
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
Press CTRL-C for hangup
这将建立与设备的串行连接。
答案 1 :(得分:10)
尝试在/etc/bluetooth/hcid.conf
中将安全性设置为nonehttp://linux.die.net/man/5/hcid.conf
这可能仅适用于HCI设备(鼠标,键盘,太空球等)。如果你有不同类型的设备,可能会有一个不同但相似的设置要改变。
答案 2 :(得分:10)
按照步骤(CentOs):
如果您想了解更多详情 https://www.youtube.com/watch?v=CB1E4Ir3AV4
答案 3 :(得分:8)
这对我来说就像一个魅力,当然它需要超级用户权限:-)
# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>
要获取 <target-bdaddr>
,您可以发出以下命令:
$ hcitool scan
注意:排除#
&amp; $
因为它们是命令行提示符。
答案 4 :(得分:7)
对于Ubuntu 14.04和Android尝试:
hcitool scan #get hardware address
sudo bluetooth-agent PIN HARDWARE-ADDRESS
Android设备上会弹出PIN对话框。输入相同的PIN码。
注意:sudo apt-get install bluez-utils
可能是必要的。
注意2:如果没有出现PIN对话框,请先尝试从Android配对(由于PIN错误会失败)。然后如上所述再试一次。
答案 5 :(得分:0)
~ $ hciconfig noauth
这应该可以解决问题(我使用的是bluez 5.23,并且没有更简单的egent和blue-utils)。但是,我正在尝试寻找一种永久更改hciconfig的方法,因为在断电然后再打开电源后,需要再次进行身份验证。到目前为止,重启时hciconfig的更改仍然保持不变。只有在断电时它才会恢复原状。如果有人找到了使hciconfig永久化的方法,请告诉我!
答案 6 :(得分:0)
~ $ hciconfig noauth
它在“ Linux mx 4.19”中对我有用
确切步骤是:
1)打开终端-运行:“ hciconfig noauth”
2)使用blueman-manager gui配对设备(在我的情况下是键盘)
3)从blueman-manager选择“连接到HID”
step(3)通常要求输入密码-“ hciconfig noauth”使step(3)变为无密码