有没有一种方法可以在 Linux 中配对设备而不需要引脚(出于测试目的,所以我需要在没有人机交互的情况下完成它,假设你有 root 访问权限)?
bluez-simple-agent 似乎需要 pin,除了一些简单的设备(例如鼠标)。
输入 PIN 实际上是一种过时的配对方法,现在称为“传统配对”。安全简单配对模式在蓝牙 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
这将建立与设备的串行连接。
hcitool scan #get hardware address
sudo bluetooth-agent PIN HARDWARE-ADDRESS
Android 设备上会弹出 PIN 对话框。输入相同的 PIN 码。
注意:
sudo apt-get install bluez-utils
可能是必要的。
注2:如果未出现 PIN 对话框,请先尝试从 Android 配对(会因 PIN 错误而失败)。然后按照上述方法重试。
这应该可以解决问题(我正在使用 bluez 5.23,并且不再有 simple-egent 和 blue-utils)。但是,我正在尝试寻找一种方法来使 hciconfig 更改永久生效,因为断电然后再通电后,需要再次进行身份验证。到目前为止,当您重新启动时,hciconfig 中的更改仍然保持不变。仅当断电时才会恢复。如果有人找到了使 hciconfig 永久化的方法,请告诉我!
它在“Linux mx 4.19”中对我有用
具体步骤是:
1)打开终端 - 运行:“hciconfig noauth”
2)使用 blueman-manager gui 来配对设备(在我的例子中是键盘)
3)从blueman-manager中选择“连接到HID”
步骤(3)通常要求输入密码 - “hciconfig noauth”使步骤(3)无需密码