【问题标题】:Linux command line howto accept pairing for bluetooth device without pinLinux命令行如何接受没有pin的蓝牙设备配对
【发布时间】:2012-10-05 00:16:52
【问题描述】:

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

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

【问题讨论】:

标签: linux command-line bluetooth bluez


【解决方案1】:

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

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

【讨论】:

  • 无法在 hci0 上设置简单配对模式:输入/输出错误 (5)
  • 如果您的适配器不支持 sspmode,请尝试使用 0000 作为 pin。
  • 无法连接 RFCOMM 套接字:连接被拒绝
【解决方案2】:

按照步骤(CentO):

  1. 蓝牙控制
  2. 设备
  3. 开始扫描
  4. pair 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

【讨论】:

  • 感谢您的回答。是否可以从 bash 脚本中完成所有这些工作? (可能使用其他工具)
  • 这是我一直看到的解决方案,但对我来说,没有显示 PIN,配对最终取消...
  • 它要求我提供耳机上没有的别针。
  • 太棒了。最初连接,但之后立即获得[CHG] Device 04:52:C7:7E:7A:F6 Connected: no。运行trustconnect 后,它工作了。谢谢。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

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

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

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

    Courtesy

    【讨论】:

      【解决方案5】:

      对于 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错误而失败)。然后按照上述说明重试。

      【讨论】:

      【解决方案6】:
      ~ $ hciconfig noauth
      

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

      【讨论】:

      • 这在 ubuntu 16.04 上对我有用,“sspmode 1”给了我 I/O 错误
      【解决方案7】:
      ~ $ hciconfig noauth
      

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

      具体步骤如下:

      1) 打开终端 - 运行:“hciconfig noauth”
      2) 使用 blueman-manager gui 配对设备(在我的情况下是键盘)
      3)从 blueman-manager 中选择“连接到 HID”

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 2021-04-26
        • 1970-01-01
        • 2022-07-12
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        相关资源
        最近更新 更多