2024年4月27日发(作者:水正浩)
4G模块 EC20 R2.0
USB Serial/GobiNet/QMI WWAN 驱动移植过程
一、开发环境
二、确定 EC20 R2.0 的基本信息
1. 插上4G模块,获得 VID 和 PID
$ lsusb
第二行可以看出:Vid = 2c7c, Pid = 0125
2. 查看手册确定,可以支持的驱动类型
《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_》
EC20 R2.0 支持
USB Serial、GobiNet、QMI WWAN,这三种类型的驱动
Product
USB Driver
Interface
ttyUSB0 DM
EC20 R2.0
USB Serial
VID:0x2c7c
PID:0x0125
GobiNet or
QMI WWAN
ttyUSB1 For GPS NMEA message output
ttyUSB2 For AT commands
ttyUSB3 For PPP connections or AT commands
ethX or wwanX Interface 4 can be used as
USB Network Adapte
3. usb-devices,查看EC20 usb接口信息
可以看到EC20出现了5个usb接口,接口0-3需要适配 usb serial 驱动,通过
ttyUSB2 节点使用PPP拨号上网;接口4 需要适配 GobiNet or QMI WWAN 驱动,
使用quectel-CM 应用上网。
三、USB Serial 驱动移植
usb串口驱动有两种适配方式,修改([KERNEL]/drivers/usb/serial/)option.c或
qcserial.c 文件。
option.c:USB Driver for GSM modems
qcserial.c:Qualcomm Serial USB driver
option 驱动
1. TX2 板子使用的 kernel 已经支持 option.c 文件产生的 USB Serial Driver;
2. 对于不支持的 kernel ,按照如下方式修改。 修改
[KERNEL]/drivers/usb/serial/option.c 支持EC20 R2.0
(1)添加 VID 和 PID
static const struct usb_device_id option_ids[] = {
USB_DEVICE(0x2C7C, 0x0125), /* Quectel EC25/EC20 R2.0 */
(2)下面2个文件,需要删除 usb_device_id 数组中 VID 和 PID 的元素, 内核没有
编译该文件或不加载 / qmi_ 的话,可以不用修改。
[KERNEL]/drivers/usb/serial/qcserial.c [KERNEL]/drivers/net/usb/qmi_wwan.c
qmi_wwan.c 驱动和 option.c 驱动使用不同的usb接口,应该是不冲突的,但是参
考手册说因为冲突需要删除。
(3)Add the Zero Packet Mechanism
(4)Add Reset Resume (掉电恢复)
2024年4月27日发(作者:水正浩)
4G模块 EC20 R2.0
USB Serial/GobiNet/QMI WWAN 驱动移植过程
一、开发环境
二、确定 EC20 R2.0 的基本信息
1. 插上4G模块,获得 VID 和 PID
$ lsusb
第二行可以看出:Vid = 2c7c, Pid = 0125
2. 查看手册确定,可以支持的驱动类型
《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_》
EC20 R2.0 支持
USB Serial、GobiNet、QMI WWAN,这三种类型的驱动
Product
USB Driver
Interface
ttyUSB0 DM
EC20 R2.0
USB Serial
VID:0x2c7c
PID:0x0125
GobiNet or
QMI WWAN
ttyUSB1 For GPS NMEA message output
ttyUSB2 For AT commands
ttyUSB3 For PPP connections or AT commands
ethX or wwanX Interface 4 can be used as
USB Network Adapte
3. usb-devices,查看EC20 usb接口信息
可以看到EC20出现了5个usb接口,接口0-3需要适配 usb serial 驱动,通过
ttyUSB2 节点使用PPP拨号上网;接口4 需要适配 GobiNet or QMI WWAN 驱动,
使用quectel-CM 应用上网。
三、USB Serial 驱动移植
usb串口驱动有两种适配方式,修改([KERNEL]/drivers/usb/serial/)option.c或
qcserial.c 文件。
option.c:USB Driver for GSM modems
qcserial.c:Qualcomm Serial USB driver
option 驱动
1. TX2 板子使用的 kernel 已经支持 option.c 文件产生的 USB Serial Driver;
2. 对于不支持的 kernel ,按照如下方式修改。 修改
[KERNEL]/drivers/usb/serial/option.c 支持EC20 R2.0
(1)添加 VID 和 PID
static const struct usb_device_id option_ids[] = {
USB_DEVICE(0x2C7C, 0x0125), /* Quectel EC25/EC20 R2.0 */
(2)下面2个文件,需要删除 usb_device_id 数组中 VID 和 PID 的元素, 内核没有
编译该文件或不加载 / qmi_ 的话,可以不用修改。
[KERNEL]/drivers/usb/serial/qcserial.c [KERNEL]/drivers/net/usb/qmi_wwan.c
qmi_wwan.c 驱动和 option.c 驱动使用不同的usb接口,应该是不冲突的,但是参
考手册说因为冲突需要删除。
(3)Add the Zero Packet Mechanism
(4)Add Reset Resume (掉电恢复)