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

时间:2012-10-15 02:37:48

标签: linux command-line bluetooth bluez

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

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

7 个答案:

答案 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

中将安全性设置为none

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

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

答案 2 :(得分:10)

按照步骤(CentOs):

  1. bluetoothctl
  2. 设备
  3. 扫描
  4. 对34:88:5D:51:5A:95(34:88:5D:51:5A:95是我的设备代码,替换为你的设备代码)
  5. trust 34:88:5D:51:5A:95
  6. connect 34:88:5D:51:5A:95
  7. 如果您想了解更多详情 https://www.youtube.com/watch?v=CB1E4Ir3AV4

答案 3 :(得分:8)

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

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

要获取 <target-bdaddr> ,您可以发出以下命令:
$ hcitool scan

注意:排除#&amp; $因为它们是命令行提示符。

Courtesy

答案 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)变为无密码