【问题标题】:Bluez L2CAP CoC to Android / iOS Credit based flow failingBluez L2CAP CoC 到基于 Android / iOS Credit 的流失败
【发布时间】:2021-07-13 11:06:20
【问题描述】:

我一直在尝试使用 createL2capChannel 或 createInsecureL2capChannel(和 iOS)从 Android 连接到已创建它正在接受的 BTPROTO_L2CAP SOCK_SEQPACKET 蓝牙套接字的 Raspberry Pi,运行 Bluez 5.50 但他们在 LE Credit 上失败了基于流程步骤。

使用 nRF BLE 嗅探器运行 WireShark 我发现它在基于 LE Credit 的连接响应中失败,不支持 LE_PSM:

Command: LE Credit Based Connection Response
    Command Code: LE Credit Based Connection Response (0x15)
    Command Identifier: 0x02
    Command Length: 10
    Destination CID: Null identifier (0x0000)
    MTU: 0
    MPS: 0
    Initial Credits: 0
    LE Result: Connection Refused - LE_PSM Not Supported (0x0002)

我尝试了各种 PSM:0x1001、0xf3、0x25,没有任何区别。 我也看到 BlueKitche BTStack 工作,所以我知道 iOS / Android 代码是可以的。

有谁知道如何实际配置 Bluez 以在 Pi 上正确支持基于 LE L2Cap CoC 信用的流程?

【问题讨论】:

    标签: bluetooth bluez l2cap


    【解决方案1】:

    感谢 Bluez Slack 频道。 我跟着https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/l2test.c#n573 从do_listen() 中获取了正确的设置。

    【讨论】:

    • 您能否详细说明正确的设置是什么?
    • 我基本上复制了 l2test.c 中 do_listen() 的所有步骤,以打开套接字并设置套接字选项。不知道是什么解决了它,但我猜是socketoptions。
    猜你喜欢
    • 2019-08-31
    • 2017-03-22
    • 2018-07-08
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    相关资源
    最近更新 更多