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. cmd命令分类

    1.系统功能类 AT:计划在计算机上运行的命令和程序.ATTRIB:显示或更改文件属性.BREAK:设置或清除扩展式 CTRL+C 检查.CACLS:显示或修改文件的访问控制列表(ACLs).CALL ...

  2. Python3基础 os listdir curdir 查看当前工作目录的所有文件的名字

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. ADT Bundle下载和安装

    下载官方adt集成包(即ADT Bundle)并安装. Android官方已经推出adt集成包,包含了eclipse.sdk和SDK Manager,只需解压出来,然后就能运行Eclipse. 官方集 ...

  4. ubuntu下交叉编译mono

    环境:ubuntu16.04 wget download.mono-project.com/sources/mono/mono-4.8.1.0.tar.bz2 配置: CC=arm-linux-you ...

  5. P2894 [USACO08FEB]酒店Hotel 线段树

    题目大意 多次操作 查询并修改区间内长度==len的第一次出现位置 修改区间,变为空 思路 类似于求区间最大子段和(应该是这个吧,反正我没做过) 维护区间rt的 从l开始向右的最长长度 从r开始向左的 ...

  6. Python 逗号的几种作用

    转自http://blog.csdn.net/liuzx32/article/details/7831247 最近研究Python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传 ...

  7. C#学习笔记(四):switch语句

    条件语句 switch语句快速生成枚举方法,复制枚举名在switch()里,双击TAB 快速生成方法,用纠错功能 随机数 using System; using System.Collections. ...

  8. Visual Studio 项目模板制作(四)

    上一篇,介绍了VSIX安装模板的方法,那么,你是不是要问,为何有些项目模板却可以有向导,那是怎么做到的 今天这篇文章就是介绍如何为自己的模板添加向导,向导可以引导你完成项目中各种参数的设置,比如项目创 ...

  9. ZOJ 3869 Ace of Aces

    There is a mysterious organization called Time-Space Administrative Bureau (TSAB) in the deep univer ...

  10. JS post 数组道后台

    $("#aSave").click(function () { if ($("#TaskName").val() == "") { aler ...