适用于 Intel M.2 PCIe 基带调制解调器的 IOSM 驱动程序

IOSM(基于共享内存的 IPC)驱动程序是为 Linux 或 Chrome 平台开发的 WWAN PCIe 主机驱动程序,用于主机平台与 Intel M.2 调制解调器之间通过 PCIe 接口进行数据交换。该驱动程序公开了符合 MBIM 协议 [1] 的接口。任何前端应用程序(例如:Modem Manager)都可以轻松管理 MBIM 接口,以实现与 WWAN 的数据通信。

基本用法

当未管理时,MBIM 功能处于非活动状态。IOSM 驱动程序仅提供一个表示 MBIM 控制通道的用户空间接口 MBIM“WWAN PORT”,并且不负责管理该功能。用户空间应用程序的职责是检测端口枚举并启用 MBIM 功能。

此类用户空间应用程序的示例包括: - mbimcli(包含在 libmbim [2] 库中),以及 - Modem Manager [3]

管理应用程序需要执行以下操作来建立 MBIM IP 会话: - 打开 MBIM 控制通道 - 配置网络连接设置 - 连接到网络 - 配置 IP 网络接口

管理应用程序开发

驱动程序和用户空间接口描述如下。MBIM 协议在 [1]《移动宽带接口模型 v1.0 勘误表-1》中进行了描述。

MBIM 控制通道用户空间 ABI

/dev/wwan0mbim0 字符设备

驱动程序通过实现 MBIM WWAN 端口,向 MBIM 功能公开 MBIM 接口。控制通道管道的用户空间端是 /dev/wwan0mbim0 字符设备。应用程序应使用此接口进行 MBIM 协议通信。

分段

根据 MBIM 规范,用户空间应用程序负责所有控制消息的分段和重组。

/dev/wwan0mbim0 write()

来自管理应用程序的 MBIM 控制消息不得超过协商的控制消息大小。

/dev/wwan0mbim0 read()

管理应用程序必须接受最大为协商控制消息大小的控制消息。

MBIM 数据通道用户空间 ABI

wwan0-X 网络设备

IOSM 驱动程序公开类型为“wwan”的 IP 链接接口“wwan0-X”,用于 IP 流量。Iproute 网络工具用于创建“wwan0-X”网络接口并将其与 MBIM IP 会话关联。该驱动程序支持多达 8 个 IP 会话以进行同步 IP 通信。

用户空间管理应用程序负责在建立 SessionId 大于 0 的 MBIM IP 会话之前创建新的 IP 链接。

例如,为 SessionId 为 1 的 MBIM IP 会话创建新的 IP 链接

ip link add dev wwan0-1 parentdev-name wwan0 type wwan linkid 1

驱动程序将自动将“wwan0-1”网络设备映射到 MBIM IP 会话 1。

参考

[1]“MBIM(移动宽带接口模型)勘误表-1”
[2] libmbim - “一个基于 glib 的库,用于与 WWAN 调制解调器和

支持移动接口宽带模型 (MBIM) 协议的设备” - http://www.freedesktop.org/wiki/Software/libmbim/

[3] Modem Manager - “一个由 DBus 激活的守护程序,用于控制移动

宽带 (2G/3G/4G) 设备和连接” - http://www.freedesktop.org/wiki/Software/ModemManager/