Linux 命令行如何接受无需 PIN 码的蓝牙设备配对

问题描述 投票:0回答:8

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

bluez-simple-agent 似乎需要 pin,除了一些简单的设备(例如鼠标)。

linux command-line bluetooth bluez
8个回答
34
投票

输入 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

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


25
投票

蓝牙ctl
  1. 设备
  2. 扫描
  3. pair 34:88:5D:51:5A:95 (34:88:5D:51:5A:95是我的设备代码,替换成你的)
  4. 信任34:88:5D:51:5A:95
  5. 连接 34:88:5D:51:5A:95
  6. 如果您想了解更多详情
https://www.youtube.com/watch?v=CB1E4Ir3AV4


11
投票

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

这可能仅适用于 HCI 设备(鼠标、键盘、空格球等)。如果您有不同类型的设备,可能需要更改不同但相似的设置。


9
投票

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


要获取

<target-bdaddr>

,您可以发出以下命令:
$ hcitool scan

注意:排除

#

$
,因为它们是命令行提示符。

礼貌


7
投票

hcitool scan #get hardware address sudo bluetooth-agent PIN HARDWARE-ADDRESS

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

注意:

sudo apt-get install bluez-utils

可能是必要的。


注2:如果未出现 PIN 对话框,请先尝试从 Android 配对(会因 PIN 错误而失败)。然后按照上述方法重试。


2
投票
这应该可以解决问题(我正在使用 bluez 5.23,并且不再有 simple-egent 和 blue-utils)。但是,我正在尝试寻找一种方法来使 hciconfig 更改永久生效,因为断电然后再通电后,需要再次进行身份验证。到目前为止,当您重新启动时,hciconfig 中的更改仍然保持不变。仅当断电时才会恢复。如果有人找到了使 hciconfig 永久化的方法,请告诉我!


0
投票
它在“Linux mx 4.19”中对我有用

具体步骤是:

1)打开终端 - 运行:“hciconfig noauth”

2)使用 blueman-manager gui 来配对设备(在我的例子中是键盘)

3)从blueman-manager中选择“连接到HID”

步骤(3)通常要求输入密码 - “hciconfig noauth”使步骤(3)无需密码


-1
投票

© www.soinside.com 2019 - 2024. All rights reserved.