驱动由来
RMNET是高通的私有协议。这个有时候也会被叫做QMI,在Windows系统的驱动也会被叫做NDIS驱动。
Quectel的高通芯片的模组一般都是支持RMNET。在Linux系统上一般会提供qmi_wwan(_q)或者GobiNet驱动。
GobiNet是高通最早维护的Linux内核驱动,qmi_wwan 是内核3.4以后开源的qmi驱动。在后来的内核版本,移远还在自己维护一个GobiNet版本,移远针对自己的模组,提出了一个自己定制的qmi_wwan_q,新增了MultiPDN datacall, QMAP, Bridge,以及能兼容移远自己推出的模组,对qmi_wwan.c 做了一些修改。实际上其他模组厂商也有这样的驱动,名字可能叫做qmi_wwan_simcom, qmi_wwan_fibcom等。
关于编译
不管是qmi_wwan还是GobiNet,都是依赖于usbnet.
因此CONFIG_USB_USBNET必须选中。对有的嵌入式系统,还需要打开CONFIG_MII,因为usbnet里调用了mii的接口。
qmi_wwan如果要加入编译还依赖于CONFIG_USB_WDM,即依赖于kdir/drivers/usb/class/cdc_wdm.c 这个模块。CDC_MBIM也依赖于这个模块。
qmi_wwan/cdc_mbim 网卡的读写接口其实都是在cdc_wdm.c 里。