移植过程中,参考的是移远官方的参考手册《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8》等。
1、添加 USB 设备信息
先在Linux内核中添加EC20的USB设备信息,对于移远的其他模组型号,在文档中都有了PID和VID。打开Linux源码中的drivers/usb/serial/option.c 文件。在 option_ids 数组中,添加EC20的信息。

2、添加 ECM 支持程序
EC20支持 ECM 接口,可以通过 ECM 接口轻松联网,如果要使用 ECM 接口的话需要修改 drivers/usb/serial/option.c 文件里面的 option_probe 函数。找到此函数,然后在里面输入以下内容:

3、配置 Linux 内核
我们需要通过make menuconfig配置 Linux 内核,首先 使能 USBNET 功能 ,路径如下:
-> Device Drivers
-> -*- Network device support
-> USB Network Adapters
-> -*- Multi-purpose USB Networking Framework
接下来我们还需要 使能 USB 串口 GSM、CDMA 驱动 ,配置路径如下:
-> Device Drivers
-> [*] USB support
-> <*> USB Serial Converter support
-> <*> USB driver for GSM and CDMA modems
继续配置 Linux 内核, 使能 USB 的 CDC ACM 模式 ,配置路径如下:
-> Device Drivers
-> [*] USB support
-> <*> Support for Host-side USB
-> <*> USB Modem (CDC ACM) support
再接着添加Gobi 驱动 ,配置路径如下:
-> Device Drivers
-> [*] Network device support
-> -*- USB Network Adapters
-> <*> Gobi USB Net driver for Quectel module
将选择好的配置生成的.config文件放到Linux内核中的arch/arm/configs文件夹下。
4、添加移远官方的 GobiNet 驱动
使用移远为 EC20 提供了 GobiNet 驱动,官方的参考资料《Quectel_WCDMA<E_Linux&Android_GobiNet_Driver_V1.3.0》。将/src 下的所有.c 和.h 文件都拷贝到 Linux 内核中的/driver/net/usb 目录下。

拷贝完成以后打开 Linux 内核的 drivers/net/usb/Makefile 文件,在此文件末尾加入如下内容:
obj - $(CONFIG_USB_GOBI_NET) += GobiNet . o
GobiNet - objs := GobiUSBNet . o QMIDevice . o QMI . o
最后在 drivers/net/usb/Kconfig 文件中加入下所示内容:
config USB_GOBI_NET
tristate "Gobi USB Net driver for Quectel module"
help
Support Quectelmodule .
A modemmanager with support for GobiNet is recommended .
Tocompile this driver as a module , choose M here : the module will be
calledGobiNet.1
5、编译生成新的内核镜像。
make clean -> make xx(.config文件) -> make uImage,生成新的镜像。
6、quectel-CM 移植。
参考移远官方文件《WCDMA<E_QConnectManager_Linux&Android_V1.1.34.zip》。解压得到quectel-CM 这个文件夹,然后将 quectel-CM 文件夹拷贝到 Ubuntu 中。拷贝完成以后进入到Ubuntu 中的 quectel-CM 文件夹,使用交叉编译,生成可执行文件。将可执行文件放到开发板中执行即可。
