1      Scope of Document

This document describes MINI PCIE usb hardware design, for EC20 4G module

2      Requiremen

2.1     Function Requirement

Support ec20 ppp diag under openwrt

2.2     Performance Requirement

Connect to 4G network

3      Hardware Overview

NA

4      Functional Description

4.1     Functional Block Diagram

NA

5      Porting

5.1     Kernel porting

We want to enumerate  ec20 module through usb option driver

So we need to add ec20 pid and vid into option_ids , and other private modification

Index: trunk/target/linux/ramips/patches-3.18/999-support-ec20.patch

===================================================================

--- trunk/target/linux/ramips/patches-3.18/999-support-ec20.patch   (nonexistent)

+++ trunk/target/linux/ramips/patches-3.18/999-support-ec20.patch       (revision 9)

@@ -0,0 +1,69 @@

+--- a/drivers/net/usb/qmi_wwan.c

++++ b/drivers/net/usb/qmi_wwan.c

+@@ -819,7 +819,7 @@ static const struct usb_device_id produc

+     {QMI_GOBI_DEVICE(0x05c6, 0x9225)},     /* Sony Gobi 2000 Modem device (N0279, VU730) */

+     {QMI_GOBI_DEVICE(0x05c6, 0x9245)},     /* Samsung Gobi 2000 Modem device (VL176) */

+     {QMI_GOBI_DEVICE(0x03f0, 0x251d)},      /* HP Gobi 2000 Modem device (VP412) */

+-    {QMI_GOBI_DEVICE(0x05c6, 0x9215)},     /* Acer Gobi 2000 Modem device (VP413) */

++   //{QMI_GOBI_DEVICE(0x05c6, 0x9215)},   /* Acer Gobi 2000 Modem device (VP413) */

+     {QMI_GOBI_DEVICE(0x05c6, 0x9265)},     /* Asus Gobi 2000 Modem device (VR305) */

+     {QMI_GOBI_DEVICE(0x05c6, 0x9235)},     /* Top Global Gobi 2000 Modem device (VR306) */

+     {QMI_GOBI_DEVICE(0x05c6, 0x9275)},     /* iRex Technologies Gobi 2000 Modem device (VR307) */

+--- a/drivers/usb/serial/option.c

++++ b/drivers/usb/serial/option.c

+@@ -647,6 +647,10 @@ static const struct option_blacklist_inf

+ };

+

+ static const struct usb_device_id option_ids[] = {

++   #if 1  // add by panzidong

++   { USB_DEVICE(0x05C6,0x9215)},

++   { USB_DEVICE(0x2C7C,0x0125)},

++   #endif

+     { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MZ382) },

+     { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },

+     { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },

+@@ -1873,6 +1877,9 @@ static struct usb_serial_driver option_1

+     .suspend           = usb_wwan_suspend,

+     .resume            = usb_wwan_resume,

+ #endif

++#if 1  // add by panzidong

++       //.reset_resume = usb_wwan_resume,

++#endif

+ };

+

+ static struct usb_serial_driver * const serial_drivers[] = {

+--- a/drivers/usb/serial/qcserial.c

++++ b/drivers/usb/serial/qcserial.c

+@@ -90,7 +90,7 @@ static const struct usb_device_id id_tab

+     {USB_DEVICE(0x03f0, 0x241d)}, /* HP Gobi 2000 QDL device (VP412) */

+     {USB_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */

+     {USB_DEVICE(0x05c6, 0x9214)}, /* Acer Gobi 2000 QDL device (VP413) */

+-    {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */

++   //{USB_DEVICE(0x05c6, 0x9215)},     /* Acer Gobi 2000 Modem device (VP413) */

+     {USB_DEVICE(0x05c6, 0x9264)}, /* Asus Gobi 2000 QDL device (VR305) */

+     {USB_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */

+     {USB_DEVICE(0x05c6, 0x9234)}, /* Top Global Gobi 2000 QDL device (VR306) */

+--- a/drivers/usb/serial/usb_wwan.c

++++ b/drivers/usb/serial/usb_wwan.c

+@@ -470,6 +470,21 @@ static struct urb *usb_wwan_setup_urb(st

+     usb_fill_bulk_urb(urb, serial->dev,

+                     usb_sndbulkpipe(serial->dev, endpoint) | dir,

+                     buf, len, callback, ctx);

++   #if 1

++   //Added by panzidong for zero packet

++   if (dir == USB_DIR_OUT) {

++          struct usb_device_descriptor *desc = &serial->dev->descriptor;

++          if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9090))

++                 urb->transfer_flags |= URB_ZERO_PACKET;

++          if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9003))

++                 urb->transfer_flags |= URB_ZERO_PACKET;

++          if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9215))

++                 urb->transfer_flags |= URB_ZERO_PACKET;

++          if (desc->idVendor == cpu_to_le16(0x2C7C))

++                 urb->transfer_flags |= URB_ZERO_PACKET;

++   }

++   #endif

++

+

+     return urb;

+ }

<*> kmod-usb-serial..................... Support for USB-to-Serial converters

<*> kmod-usb-serial-option................... Support for Option HSDPA modems

-*- kmod-usb-serial-wwan..................... Support for GSM and CDMA modems

<*> luci-proto-3g............................................. Support for 3G

5.2     System configure

If we want to use ec20, we can manual change /etc/config/network

Then /etc/init.d/network restart,  pppd deamon will be up.

In the nodewrt2p we can change the config_generate file, when system fisrt time bootup

ec20 relate ppp configure will be auto write to /etc/config/network file, get the right ipaddr ,

Normal access to the Internet , here are the changes made:

Index: trunk/package/base-files/files/bin/config_generate

===================================================================

--- trunk/package/base-files/files/bin/config_generate      (revision 15)

+++ trunk/package/base-files/files/bin/config_generate   (revision 16)

@@ -17,9 +17,30 @@

delete network.globals

set network.globals='globals'

set network.globals.ula_prefix='auto'

EOF

}

+generate_4g_network() {

+     uci -q batch <<EOF

+set network.mobile=interface

+set network.mobile.proto='3g'

+set network.mobile.device='/dev/ttyUSB2'

+set network.mobile.service='utms'

+set network.mobile.apn='3gnet'

+EOF

+}

@@ -167,4 +189,8 @@

json_get_keys keys led

for key in $keys; do generate_led $key; done

+generate_4g_network

uci commit

Openwrt Support MINI-PCIE EC20 (6)的更多相关文章

  1. Openwrt Support RESET Button (5)

    1 Scope of Document This document describes how to support reset button under openwrt system2 Requir ...

  2. AM335x 添加 HUAWEI MU609 Mini PCIe Module,并用pppd 启动相关设备

    kernel 的配置 kernel 3.2.0 make menuconfig Device Drivers ---> [*] USB support ---> <*> USB ...

  3. Jetson TK1刷机+配置Mini PCI-e无线网卡

    最近买了台4K电视,觉得可以当显示器用,但没主机,不知怎的想到了Jetson TK1,于是一冲动买了.因为没网线,而Jetson TK1没有无线网卡,所以也折腾了一番,记录一下,给万一也有像我一样没有 ...

  4. kernel 4.4.12 移植 HUAWEI MU609 Mini PCIe Module

    首先请参考 http://www.cnblogs.com/chenfulin5/p/6951290.html 上一章刚讲了 kernel 3.2.0 移植 MU609 这一章记录新版kernel 的移 ...

  5. am335x system upgrade kernel ec20 simcom7600ce(十一)

    1      Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...

  6. Ubuntu下LimeSDR Mini使用说明

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 LimeSDR链接:https://item.taobao.com/item.htm?spm=a230r.1 ...

  7. Fusion-io ioDrive Duo Enterprise PCIe Review

    原文地址:http://www.storagereview.com/fusionio_iodrive_duo_enterprise_pcie_review As part of StorageRevi ...

  8. Openwrt Udev Configure(3)

    1      Scope of Document This document describes how to write udev script, when enum usb device mayb ...

  9. 科普:PCI-E插槽都有哪些样子?

    主板上的扩展插槽曾经是多种多样的,例如曾经非常流行的组合就是PCI插槽搭配AGP插槽,其中AGP插槽主要用在显卡上,而PCI插槽的用途则更广一些,不仅有用在显卡上,还能用于扩展其它设备,如网卡.声卡. ...

随机推荐

  1. 20145208 蔡野 《网络对抗》Exp4 恶意代码分析

    20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...

  2. 动态规划模板2|LCS最长公共子序列

    LCS最长公共子序列 模板代码: #include <iostream> #include <string.h> #include <string> using n ...

  3. mysql 通过binlog 查看执行日志

    环境:linux deepin15.7   mysql 5.7 1.开启binlog vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加 log_bin = /var/ ...

  4. 【Streaming】30分钟概览Spark Streaming 实时计算

    本文主要介绍四个问题: 什么是Spark Streaming实时计算? Spark实时计算原理流程是什么? Spark 2.X下一代实时计算框架Structured Streaming Spark S ...

  5. js媒体查询设置根字号

    !function(n){var e=n.document,t=e.documentElement,i=750,d=i/50,o="orientationchange"in n?& ...

  6. Netty原理剖析

    1. Netty简介 Netty是一个高性能.异步事件驱动的NIO框架,基于JAVA NIO提供的API实现.它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作 ...

  7. InChat版,仅仅两个接口实现自己的IM系统(可兼容)

    InChat 一个IM通讯框架 一个轻量级.高效率的支持多端(应用与硬件Iot)的异步网络应用通讯框架.(核心底层Netty) 版本目标:完成基本的消息通讯(仅支持文本消息),离线消息存储,历史消息查 ...

  8. 解决Resource doesn't have a corresponding Go package.问题

    首先上图 这个报错主要是程序要启动没有入口的原因,package main下边的mian方法才是一个程序的入口.这就要 修改目录结构如下图修改并运行就可以了

  9. 使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果

    在工作中又很多需求都不是android系统自带的控件可以达到效果的,内置的TabHost就是,只能达到简单的效果 ,所以这个时候就要自定义控件来达到效果:这个效果就是: 使用自定义RadioButto ...

  10. C# 中的浅表副本与深表副本

    public class Student { public int age; public Student(int age) { this.age = age; } } public class Gr ...