This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/WL18XX-BT-SP:无法与 Android 移动设备上另一个 BT 在 Linux 中以查询模式运行的蓝牙(BlueZ)配对

Guru**** 2587365 points
Other Parts Discussed in Thread: AM5708

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/627985/linux-wl18xx-bt-sp-not-able-to-pair-with-bluetooth-bluez-running-in-inquiry-mode-in-linux-from-another-bt-on-android-mobile

器件型号:WL18XX-BT-SP
主题中讨论的其他器件:AM5708

工具/软件:Linux

您好!

我在基于 AM5708处理器的电路板上安装了 WL18xx BT + WiFi 模块。

我将使用以下命令在 HCI UART 模式下配置蓝牙(gpio199上的 BT_EN)、并在/lib/firmware/ti-connectivity 目录中使用 TIInit_11.8.32.bts。

Echo 199 >/sys/class/gpio/export
回显>/sys/class/gpio/gpio199/direction
echo 0 >/sys/class/gpio/gpio199/value
睡眠1
Echo 1 >/sys/class/gpio/gpio199/value
睡眠5.

hciattach -s 115200 /dev/ttyS9 Texas 3000000 0

然后、我正在运行为 BT 创建 HCI 套接字的应用、

套接字(AF_Bluetooth、SOCK_RAW、BTPROTO_HCI);

并配置事件、

       HCI_FILTER_SET_TYPE (HCI_EVENT_PKT、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_PIN_CODE_REQ、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_LINK_KEY_REQ、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_LINK_KEY_NOTIY、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_CONN_REQUEST、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_CONN_COMPLETE、&sHCIFilter);
       HCI_FILTER_SET_EVENT (EVT_DISCONN_COMPLETE、&sHCIFilter);

然后在 piscan 和 auth 模式上配置 hci0。

hci0:  类型:主 总线:UART
       BD 地址:50:8C:B1:42:FA:1B ACL MTU:1021:6 SCO MTU:180:4
       正在运行 PSCAN ISCAN AUTH
       RX 字节:1437 ACL:0 SCO:0事件:83错误:0
       TX 字节:1549 ACL:0 SCO:0命令:78错误:0
       特性:0xFF 0xFE 0x2D 0xFE 0xdb 0xff 0x7B 0x87
       数据包类型:Dm1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
       链接策略:RSWITCH 保持监听
       链接模式:从器件接受

我还在处理命令和事件时收到“PIN 码请求”,我将向请求设备发送 PIN 码。

现在、当我尝试从 Android 移动设备连接到 Linux 设备上的蓝牙时、会发生以下事件、

>HCI 事件:连接请求(0x04) PLEN 10.
   bdaddr 5C:51:88:2F:D3:60类0x5a020c 类型 ACL
< HCI 命令:接受连接请求(0x01|0x0009) PLEN 7.
   bdaddr 5C:51:88:2F:D3:60角色0x00
   角色:Master
> HCI 事件:命令状态(0x0F) PLEN 4.
   接受连接请求(0x01|0x0009)状态0x00 ncmd 1
>HCI 事件:角色更改(0x12) PLEN 8.
   状态0x00 bdaddr 5C:51:88:2F:D3:60角色0x00
   角色:Master
> HCI 事件:链路密钥请求(0x17) PLEN 6.
   bdaddr 5C:51:88:2F:D3:60
< HCI 命令:链路密钥请求应答(0x01|0x000b) PLEN 22
   bdaddr 5C:51:88:2F:D3:60 KEY 6AE6DD18A86738E2228EEAFE28373BF37
> HCI 事件:命令完成(0x0E) PLEN 10.
   链路密钥请求应答(0x01|0x000b) ncmd 1.
   状态0x00 bdaddr 5C:51:88:2F:D3:60
< HCI 命令:链路密钥请求否定应答(0x01|0x000c) PLEN 6.
   bdaddr 5C:51:88:2F:D3:60
> HCI 事件:命令完成(0x0E) PLEN 10.
   链路密钥请求否定应答(0x01|0x000c) ncmd 1.
   状态0x0c bdaddr 5C:51:88:2F:D3:60
   错误:命令被禁止
> HCI 事件:引脚代码请求(0x16) PLEN 6.
   bdaddr 5C:51:88:2F:D3:60
< HCI 命令:引脚代码请求负响应(0x01|0x000e) PLEN 6.
   bdaddr 5C:51:88:2F:D3:60
> HCI 事件:命令完成(0x0E) PLEN 10.
   引脚代码请求负响应(0x01|0x000e) ncmd 1.
   状态0x00 bdaddr 5C:51:88:2F:D3:60
< HCI 命令:引脚代码请求应答(0x01|0x000d) PLEN 23
   bdaddr 5C:51:88:2F:D3:60 len 4引脚'1111'
> HCI 事件:命令完成(0x0E) PLEN 10.
   引脚代码请求应答(0x01|0x000d) ncmd 1.
   状态0x0c bdaddr 5C:51:88:2F:D3:60
   错误:命令被禁止
*********** 连接完成事件******
> HCI 事件:连接完成(0x03) PLEN 11
   状态0x18 handle 1 bdaddr 5C:51:88:2F:D3:60类型 ACL 加密0x00
   错误:不允许配对

我在这里看到、在接收到"链路密钥请求"和" PIN 码请求"时、它会发送两个响应、一个默认响应、另一个响应来自我的应用。

如果我禁用从通信发送响应、那么我不知道如何将 PIN 代码发送到请求的器件。

我有 Bluemoon 配置实用程序版本5.43。

那么、我如何配置设备、以便能够通过移动蓝牙与设备配对?

谢谢、

Gunjal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我们已收到您的查询、并将很快返回给您

    谢谢
    Saurabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于您使用的是 Bluez 堆栈、请检查 Bluez 工具是否存在问题。 您可能需要使用 Bluez 中的蓝牙控制实用程序检查配对(代理)选项。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我也尝试了连接蓝牙控制实用程序。 我成功配对、但仍然无法连接。 我将随附使用 bluetoothctl 实用程序获取的日志以及 hcidump 日志。

    此外、我要做的是将蓝牙配置为查询模式并通过移动蓝牙连接到它。 即使我在"noauth"模式下配置蓝牙、我也无法执行该操作。 当我在"auth"模式下配置它时、我已将我在上一篇帖子中获取的日志放入其中。

    那么、您能告诉我这方面的情况吗?

    e2e.ti.com/.../Bluetoothctl_5F00_logs.txt

    谢谢、

    Gunjal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可以、您在单独的控制台窗口中执行 HCI 转储、以便您的命令不会与输出发生混合。 从日志中、会显示远程设备正在启动断开连接。 您打算在连接中使用什么配置文件。

    谢谢