1、内核添加VID和PID
在内核中\drivers\usb\serial\option.c,static const struct usb_device_id option_ids后面加入EC20/EC25的硬件ID
//define Quectel VID and PID(注意EC20 R2.0 VID和EC25一样)
/* These Quectel products use Qualcomm's vendor ID */
#define QUECTEL_PRODUCT_UC20 0x9003
#define QUECTEL_PRODUCT_UC15 0x9090
#define QUECTEL_PRODUCT_EC20 0x9215
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
#define QUECTEL_PRODUCT_EC21 0x0121
#define QUECTEL_PRODUCT_EC25 0x0125
在usb_device_id option_ids中添加如下
/* Quectel products using Qualcomm vendor ID */
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
/*EC20 add by admin*/
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_EC20) },
/* Quectel products using Quectel vendor ID */
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21),
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
2、内核menuconfig
确保内核已经开启USB网卡和USB串口驱动的支持
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USBNET=y
3、编译内核,烧录
/opt/bin # ls -l /dev/ttyUSB*
crw------- 1 root root 188, 3 Jan 1 08:02 /dev/ttyUSB0
crw------- 1 root root 188, 1 Jan 1 08:00 /dev/ttyUSB1
crw------- 1 root root 188, 2 Jan 1 08:02 /dev/ttyUSB2
crw------- 1 root root 188, 0 Jan 1 08:00 /dev/ttyUSB3
测试AT指令
/opt/bin # cat /dev/ttyUSB2 & echo -e "AT+GMR\r\n" >/dev/ttyUSB2
AT+GMR
EC20CEFDR02A12M4G
OK
4、编译pppd源码
拷贝chat和pppd到/usr/sbin/,在/etc/ppp/中配置相关拨号脚本
5、拨号上网