Linux命令行如何在没有引脚的情况下接受蓝牙设备的配对

Rom*_*her 32 linux command-line bluetooth bluez

有没有办法在Linux中配对设备而不需要引脚(出于测试目的,所以我需要在没有人工交互的情况下完成,假设你有root权限)?

bluez-simple-agent似乎需要一个引脚,除了一些简单的设备,如鼠标.

小智 28

输入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
Run Code Online (Sandbox Code Playgroud)

这将建立与设备的串行连接.

  • 无法在hci0上设置简单配对模式:输入/输出错误(5) (7认同)
  • 如果您的适配器不支持sspmode,请尝试使用0000作为引脚。 (2认同)

Eri*_*ric 10

尝试在/etc/bluetooth/hcid.conf中将安全性设置为none

http://linux.die.net/man/5/hcid.conf

这可能仅适用于HCI设备(鼠标,键盘,太空球等).如果你有不同类型的设备,可能会有一个不同但相似的设置要改变.


hao*_*ran 10

按照步骤(CentOs):

  1. bluetoothctl
  2. 设备
  3. 扫描
  4. 对34:88:5D:51:5A:95(34:88:5D:51:5A:95是我的设备代码,用你的代替)
  5. 信托34:88:5D:51:5A:95
  6. 连接34:88:5D:51:5A:95

如果您想了解更多详情, 请访问https://www.youtube.com/watch?v=CB1E4Ir3AV4

  • 这是我一直看到的解决方案,但对我来说没有显示 PIN 码,配对最终取消...... (2认同)

Aja*_*kar 8

这对我来说就像一个魅力,当然它需要超级用户权限:-)

# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>

为了得到<target-bdaddr>你可以发出以下命令:
$ hcitool scan

注意:排除#&$因为它们是命令行提示.

礼貌


Jac*_*ler 7

对于Ubuntu 14.04和Android尝试:

hcitool scan #get hardware address
sudo bluetooth-agent PIN HARDWARE-ADDRESS
Run Code Online (Sandbox Code Playgroud)

Android设备上会弹出PIN对话框.输入相同的PIN码.

注意:sudo apt-get install bluez-utils可能是必要的.

注意2:如果没有出现PIN对话框,请先尝试从Android配对(因错误的PIN码而失败).然后如上所述再试一次.