You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

蓝牙设备配对失败:认证问题排查求助

蓝牙配对失败问题排查与解决方案建议

使用bluetoothctl发起DeviceA(配对发起端)与DeviceB的蓝牙配对时,始终失败:DeviceA终端会显示PIN码及确认选项,但DeviceB无任何显示,最终连接超时。

HCI日志关键片段

< HCI Command: IO Capability Request Reply (0x01|0x002b) plen 9                 #21 [hci0] 10.668077
        Address: 58:63:9A:0B:75:28 (OUI 58-63-9A)
        IO capability: DisplayYesNo (0x01)
        OOB data: Authentication data not present (0x00)
        Authentication: Dedicated Bonding - MITM required (0x03)
> HCI Event: Command Complete (0x0e) plen 10                                    #22 [hci0] 10.668776
      IO Capability Request Reply (0x01|0x002b) ncmd 1
        Status: Success (0x00)
        Address: 58:63:9A:0B:75:28 (OUI 58-63-9A)
> HCI Event: IO Capability Response (0x32) plen 9                               #23 [hci0] 10.714623
        Address: 58:63:9A:0B:75:28 (OUI 58-63-9A)
        IO capability: DisplayYesNo (0x01)
        OOB data: Authentication data not present (0x00)
        Authentication: General Bonding - MITM not required (0x04)
> HCI Event: User Confirmation Request (0x33) plen 10                           #24 [hci0] 10.936580
        Address: 58:63:9A:0B:75:28 (OUI 58-63-9A)
        Passkey: 377842

日志显示双方IO能力、OOB数据配置一致,但认证类型不匹配:DeviceA使用Dedicated Bonding - MITM required,DeviceB使用General Bonding - MITM not required,这是配对失败的核心诱因。

设备信息

  • DeviceB:待配对设备,支持Bluetooth 4.2和BLE 5.0,无法获取其日志
  • DeviceA:基于Buildroot 2020的嵌入式硬件,搭载rs9116N芯片组
    • 蓝牙模块加载命令:
      rmmod rsi_sdio
      rmmod rsi_91x
      insmod bt/rsi_91x.ko dev_oper_mode=4
      insmod bt/rsi_sdio.ko
      
    • 曾尝试BT DUAL MODE 12模式,结果相同;dmesg显示加载正常:
      [  544.819149] rsi_91x: <==== Interface DOWN ====>
      [  544.828699] phone0: port 1(wlan0) entered disabled state
      [  544.863028] device wlan0 left promiscuous mode
      [  544.863067] phone0: port 1(wlan0) entered disabled state
      [  545.113488] rsi_91x: ***** Watch Dog Reset Successful *****
      [  546.324264] rsi_91x: rsi_reset_card: Set high speed mode
      [  546.336188] rsi_91x: ##### RSI SDIO device disconnected #####
      [  546.470461] rsi_91x: rsi_probe: ***** 9116 Module *****
      [  546.470807] rsi_91x: rsi_hal_device_init: oper_mode = 4, coex_mode = 2
      [  546.475523] rsi_91x: ================================================
      [  546.475553] rsi_91x: ================ RSI Version Info ==============
      [  546.475570] rsi_91x: ================================================
      [  546.475591] rsi_91x: FW Version  :  1610.2.3.0.0001
      [  546.475610] rsi_91x: Driver Version  : RS9116.NB0.NL.GNU.LNX.OSD.2.0.0.0024
      [  546.475627] rsi_91x: Operating mode  : 4 [BT EDR alone]
      [  546.475643] rsi_91x: Firmware file   : pmemdata_wlan_bt_classic
      [  546.475653] rsi_91x: ================================================
      [  546.571490] rsi_91x: ***** Firmware Loading successful *****
      

操作步骤

  • 在单独终端运行蓝牙守护进程:bluetoothd -n
  • 启动bluetoothctl
  • 执行power on
  • 执行scan on找到设备后关闭扫描
  • 执行pair XX:XX

执行配对命令后,DeviceA终端显示PIN码及确认选项,但DeviceB无显示,最终连接超时。尝试过在不同时机执行trust XX:XX,无效果。

hciconfig -a输出

hci0:   Type: Primary  Bus: SDIO
    BD Address: 88:DA:1A:EB:84:E3  ACL MTU: 1021:3  SCO MTU: 64:3
    UP RUNNING PSCAN 
    RX bytes:15113 acl:0 sco:0 events:156 errors:0
    TX bytes:0 acl:0 sco:0 commands:75 errors:0
    Features: 0xbf 0xc6 0x0d 0x7e 0x9b 0x1f 0x59 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 
    Link policy: RSWITCH SNIFF 
    Link mode: SLAVE ACCEPT 
    Name: 'BlueZ 5.54'
    Class: 0x000000
    Service Classes: Unspecified
    Device Class: Miscellaneous, 
    HCI Version: 5.0 (0x9)  Revision: 0x100
    LMP Version: 5.0 (0x9)  Subversion: 0x100
    Manufacturer: not assigned (1791)

核心问题与解决建议

  1. 强制统一认证类型:

    • 尝试通过bluetoothctl设置通用绑定模式:执行set bonding general,再发起配对
    • 编辑BlueZ配置文件/etc/bluetooth/main.conf,找到#Bonding = dedicated,改为Bonding = general,重启蓝牙服务后重试
  2. 调整MITM要求:

    • 在bluetoothctl中执行set mitm off,关闭DeviceA的MITM强制要求,适配DeviceB的配置
  3. 蓝牙版本兼容性调试:

    • DeviceA为Bluetooth 5.0,DeviceB支持4.2/5.0,理论兼容,但可尝试强制DeviceA使用经典蓝牙模式:在main.conf中设置ControllerMode = bredr,重启服务后测试
  4. IO能力调整:

    • 在bluetoothctl中切换IO能力,比如执行set io-capability keyboardonly或set io-capability noinputnooutput,再尝试配对
  5. 内核与固件检查:

    • 确认Buildroot编译时开启CONFIG_BT_BREDR、CONFIG_BT_SECURITY、CONFIG_BT_BONDING等核心蓝牙配置
    • 尝试升级rs9116N的驱动或固件到最新版本,修复绑定模式的兼容性问题

内容的提问来源于stack exchange,提问作者bkekelic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:44:52