EC200S驱动移植、PPP拨号

一、 EC200S驱动移植

  1. 下载EC200S驱动

  2. 打开Linux源码的drivers/usb/serial/option.c文件,找到option_ids数组,在数组中加入如下内容:

{ USB_DEVICE(0x2C7C,0x6002) }

在这里插入图片描述

  1. 在drivers/usb/serial/option.c文件中找到option_probe函数,在此函数中添加内容:
	//Quectel UC20's interface 4 can be used as USB Network device
	if(serial->dev->descriptor.idVendor==cpu_to_le16(0x05C6) 
		&& serial->dev->descriptor.idProduct == cpu_to_le16(0x9003)
		&& serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
		return -ENODEV;

	//Quectel EC20(MDM9215)'s interface 4 can be used as USB Network device
	if(serial->dev->descriptor.idVendor== cpu_to_le16(0x05C6) 
		&& serial->dev->descriptor.idProduct == cpu_to_le16(0x9215)
		&& serial->interface->cur_altsetting->desc.bInterfaceNumber >= 4)
		return -ENODEV;

	if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C)) {
		__u16 idProduct = le16_to_cpu(serial->dev->descriptor.idProduct);
		__u8 bInterfaceNumber = serial->interface->cur_altsetting->desc.bInterfaceNumber;

		//Quectel module's some interfaces can be used as USB Network device (ecm, rndis, mbim)
		if (serial->interface->cur_altsetting->desc.bInterfaceClass != 0xFF)
			return -ENODEV;

		if ((idProduct&0xF000) == 0x6000) {
				//ASR interface 4 is modem port
		}
		else if ((idProduct&0xF000) == 0x8000) {
				//HISI interface 0 is NCM
				if (bInterfaceNumber < 1)
						return -ENODEV;
		}
		else {
				//MDM interface 4 is QMI
				if (bInterfaceNumber >= 4)
						return -ENODEV;
		}
	}

在这里插入图片描述

  1. 继续在 drivers/usb/serial/option.c 文件里面找到 option_1port_device 结构体变量,在里面加入
.reset_resume      = usb_wwan_resume,

在这里插入图片描述

  1. 打开 drivers/usb/serial/usb_wwan.c 文件,在 usb_wwan_setup_urb函数中添加
	if (dir == USB_DIR_OUT) {
		if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6)
 		&& serial->dev->descriptor.idProduct == cpu_to_le16(0x9090))
			urb->transfer_flags |= URB_ZERO_PACKET;

		if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6)
		 && serial->dev->descriptor.idProduct == cpu_to_le16(0x9003))
			urb->transfer_flags |= URB_ZERO_PACKET;

		if (serial->dev->descriptor.idVendor == cpu_to_le16(0x05C6)
		 && serial->dev->descriptor.idProduct == cpu_to_le16(0x9215))
			urb->transfer_flags |= URB_ZERO_PACKET;

		if (serial->dev->descriptor.idVendor == cpu_to_le16(0x2C7C))
			urb->transfer_flags |= URB_ZERO_PACKET;
	}

在这里插入图片描述

二、内核配置

-> Device Drivers
   -> -*- Network device support
     -> USB Network Adapters
       -> -*- Multi-purpose USB Networking Framework

在这里插入图片描述

-> Device Drivers
	-> [*] USB support
  		 -> <*> USB Serial Converter support
    		 -> <*> USB driver for GSM and CDMA modems

在这里插入图片描述

-> Device Drivers
	-> [*] USB support
  		-> <*> Support for Host-side USB
  			-> <*> USB Modem (CDC ACM) support

在这里插入图片描述

-> Device Drivers
	-> [*] Network device support
	-> <*> PPP (point-to-point protocol) support
	  -> <*> PPP BSD-Compress compression
		-> <*> PPP Deflate compression
		-> [*] PPP filtering
		-> <*> PPP MPPE compression (encryption)
		-> [*] PPP multilink support
		-> <*> PPP over Ethernet
		-> <*> PPP support for async serial ports
		-> <*> PPP support for sync tty ports

在这里插入图片描述

三、编译内核,EC200S-CN使用USB插入V3S的USB-OTG接口。

内核配置好后,编译内核,V3S用新编译的内核启动,接入EC200S-CN模块后,会生成下面几个驱动,说明EC200S-CN的驱动移植成功。
在这里插入图片描述

四、移植ppp

  1. 下载ppp源码
  2. 在ubunt下交叉编译
cd ppp-2.4.4/
./configure //配置
make CC=arm-linux-gnueabihf-gcc //编译

编译完成后会在当前目录下生成chat/chat、 pppd/pppd、 pppdump/pppdump 和pppstats/pppstats 这四个文件,把这四个文件拷贝到V3S文件系统中的/usr/bin目录下。

  1. 在V3S文件系统中创建/etc/gosuncn目录,把下面四个文件拷贝到此目录。
ppp-on.sh
gosuncn_options
gosuncn_ppp_dialer
disconnect.sh

在这里插入图片描述

  1. 启动脚本拨号
./ppp-on &

出现以下信息说明EC200S-CN拨号成功。
在这里插入图片描述

联网测试
在这里插入图片描述

以上出现的驱动、脚本源码在这里下载。点这里

频段: LTE-FDD: B1/B3/B5/B8 LTE-TDD: B34/B38/B39/B40/B41 GSM: 900/1800 MHz 数据 LTE: LTE-FDD: 最大 10 Mbps (DL)/最大 5 Mbps (UL) LTE-TDD: 最大 7.5 Mbps (DL)/最大 1 Mbps (UL) GSM: EDGE: 最大236.8 Kbps (DL)/最大236.8 Kbps (UL) GPRS: 最大 85.6 Kbps (DL)/最大 85.6 Kbps (UL) 接口 1 个 USB 2.0 高速接口 1 个数字语音 PCM 接口(可选) 1 个 1.8 V/3.0 V (U)SIM 接口 2 个 NETLIGHT 接口( NET_STATUS 和 NET_MODE) 2 个 UART 接口(主串口和调试串口) 2 个 ADC 接口 2 个 SDIO 接口(用于连接 SD 卡*和 Wi-Fi*) RESET(低电平有效) PWRKEY(低电平有效) 主天线 突出特性 FOTA(空中下载固件升级) (U)SIM 卡检测 用于连接 SD 卡*和 Wi-Fi*功能的 SDIO 接口 电气参数 输出功率: Class 3 (23 dBm ±2 dB) for LTE-FDD bands Class 3 (23 dBm ±2 dB) for LTE-TDD bands Class E2 (27 dBm ±3 dB) for EGSM900 8-PSK Class E2 (26 dBm ±3 dB) for DCS1800 8-PSK Class 4 (33 dBm ±2 dB) for EGSM900 Class 1 (30 dBm ±2 dB) for DCS1800 功耗: 11 μA @关机 TBD @LTE 休眠(PF=128) TBD @LTE 休眠(PF=256) 30 mA @空闲 灵敏度: FDD B1: -97.5 dBm FDD B3: -94.3 dBm FDD B5: -97 dBm FDD B8: -96.5 dBm TDD B34: -96.3 dBm TDD B38: -97 dBm TDD B39: -96.3 dBm TDD B40: -97 dBm TDD B41: -96 dBm EGSM900: -105 dBm DCS1800: -106 dBm 软件特性 USB 虚拟串口驱动: Windows 7/8/8.1/10、 Linux 2.6~5.4、 Android 4.x/5.x/6.x/7.x/9.x RIL 驱动: Android 4.x/5.x/6.x/7.x/8.x/9.x RNDIS 驱动: Windows 7/8/8.1/10, Linux 2.6~5.4 ECM 驱动Linux 2.6~5.4 协议栈: TCP/UDP/PPP/FTP/HTTP/FILE/MQTT/PING*/ CMUX*/NTP*/NITZ*/HTTPS*/FTPS*/SSL*/ MMS*/SMTP*/SMTPS* 一般特性 扩展温度范围: -40 °C ~ +85 °C 模块尺寸: 29.0 mm × 32.0 mm × 2.4 mm 重量: TBD LCC 封装 供电电压: 3.4~4.5 V,典型值 3.8 V 带宽: 1.4/3/5/10/15/20MHz 3GPP TS 27.007, 27.005 定义的命令,以及移远 通信增强型 AT 命令
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值