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. 2018-2019-1 20189218《Linux内核原理与分析》第七周作业

    task_struck数据结构 在Linux内核中,通过task_struct这个结构体对进程进行管理,我们可以叫他PCB或者进程描述符.这个结构体定义在include/linux/sched.h中. ...

  2. C++ 单例模式(转载)

    转载:http://www.cnblogs.com/cxjchen/p/3148582.html 转载:http://blog.csdn.net/hackbuteer1/article/details ...

  3. IDEA开发常用快捷键

    以下快捷键均为初始快捷键,可以进行自定义. 查询快捷键CTRL+N   查找类 CTRL+SHIFT+N  查找文件 CTRL+SHIFT+ALT+N 查找类中的方法或变量 CIRL+B   找变量的 ...

  4. dubbo 配置属性

    1,服务方 <dubbo:application name="demo-provider" /> <!-- 使用zookeeper注册中心暴露服务地址 --> ...

  5. SublimeText3常用快捷键和优秀插件(亲测)

    SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...

  6. c# 、 Asp.net 获取本地IP和MAC地址

    using System; using System.Management; using System.Net; public class Program { static void Main(str ...

  7. MVC ---- DBHelper.ttinclude

    在通过T4模版引擎之基础入门 对T4有了初步印象后,我们开始实战篇.T4模板引擎可以当做一个代码生成器,代码生成器的职责当然是用来生成代码(这不是废话吗).而这其中我们使用的最普遍的是根据数据库生成实 ...

  8. hdu 4352 XHXJ's LIS 数位dp+状态压缩

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others ...

  9. mysql处理时间戳

    select name,telphone,FROM_UNIXTIME(add_time,'%Y-%m-%d %H:%i') as add_time from tf_apply_join order b ...

  10. re.sub

    1.re.sub主要功能实现正则的替换. re.sub定义: sub(pattern, repl, string, count=0, flags=0) 意思为:对字符串string按照正则表达式pat ...