关于4G模块常见的品牌与型号:

品牌

型号

市场价格

芯片组

状态

HUAWEI

ME909s-821

210-260

海思芯片,只有五模

在售

HUAWEI

ME909s-521

400左右

高通芯片

在售

中兴

ME3760

260左右

中芯微

停产

中兴

MW3630

210左右

高通9x07

在售

移远

EC20

240-290

高通9x15

在售

移远

EC20 V2.0

190-240

高通9x07

在售

龙尚

8300系列

260左右

高通9x15

停产

龙尚

U9300系列

200左右的区间

高通9x07

在售

综合分析:今年和接下来的时间里基本会是高通9x07和海思方案的天下,由于海思基本是华为在用;其它厂家基本转向9x07了。

中兴一代的3760、龙尚的8300系列产品是市场上最早见的模块;技术相当不成熟,加上原厂的支持较差,不建议使用。

还有一些品牌,因为市场占有率较小未统计在表格中。

移远在几家中技术支持算是最好的了,加上性价比较好。后面慢慢变成了我们用的主要模块。今天就以移远模块为例,说说linux驱动的移植。

平台:TI AM3352

OS:ubuntu 12.04 arm

内核:3.2.0

第一步:内核驱动的修改。

相关的配置项位于menuconfig的Device Drivers->USB Support-> USB Serial Converter support-> USB driver for GSM and CDMA modems

在上面的配置项中可以看到USB Serial Converter,实际上4G模块在操作系统中的介面就是串口设备(USB转的Serial),所谓的内核驱动移植其实就是在USB转串口驱动中加上对应usb设备的pid和vid,具体可以通过lsusb查询得到。

具体代码修改:

1、在”#define QUALCOMM_VENDOR_ID               0x05C6”下面加上移远模块的PID和VID。

//add by alan 150820

#define QUECTEL_VENDOR_ID                 0x2C7C

#define QUECTEL_PRODUCT_UC15                 0x9090

#define QUECTEL_PRODUCT_UC20                 0x9003

#define QUECTEL_PRODUCT_EC20                  0x9215

#define QUECTEL_PRODUCT_EC25                  0x0125

#define QUECTEL_PRODUCT_EC21                  0x0121

2、在“static const struct usb_device_id option_ids[]”函数中的

“{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */”后面加上

//add by alan 150820

{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, /* QUECTEL UC15 */

{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20)}, /* QUECTEL UC20 */

{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_EC20)}, /* QUECTEL EC20 */

{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25)}, /* QUECTEL EC25 */

{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21)}, /* QUECTEL EC21 */

3、在” option_probe”函数的”    data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);”前面加上

// Add to cancel the binding of UC20 NDIS interface -> start

if (serial->dev->descriptor.idVendor == 0x05c6 &&

serial->dev->descriptor.idProduct == 0x9003 &&

serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

return -ENODEV;

// Add to cancel the binding of UC20 NDIS interface -> end

// Add to cancel the binding of EC20 NDIS interface -> start

if (serial->dev->descriptor.idVendor == 0x05c6 &&

serial->dev->descriptor.idProduct == 0x9215 &&

serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

return -ENODEV;

// Add to cancel the binding of EC20 NDIS interface -> end

// Add to cancel the binding of EC25 NDIS interface -> start

if (serial->dev->descriptor.idVendor == 0x2C7C &&

serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

return -ENODEV;

// Add to cancel the binding of EC25 NDIS interface -> end

注:其实在步骤1、步骤2中增加的代码已经足够将模块驱动起来了,这里的代码主要是为了NDIS方式拨号。

4、模块一般有多种拨号方式,比较老的有PPP方式拨号,很多用过3G模块的朋友都会知道这个方法。由于4G模块的上下行速度都非常快,用PPP方式受协议限制速率跑不高,一般现在建议用NDIS或QWAN方式。移远模块自带了一套驱动和拨号软件叫GobiNet。将

Quectel_Linux_GobiNet_SR01A02V15.zip解压到内核的drivers/net/usb/目录下,并修改Makefile,添加:

obj-$(CONFIG_USB_GOBI_NET)       += Quectel_GobiNet_SR01A02V13/

修改Kconfig文件,在endmenu前加上:

config USB_GOBI_NET

tristate "Gobi USB Net driver for Quectel module"

help

Support Quectel module.

A modem manager with support for GobiNet is recommended.

To compile this driver as a module, choose M here: the module will be called GobiNet.

5、做完这些,就可以进行内核的配置了。

Make menuconfig,确认以下选项:

Device Drivers->USB Support-> USB Serial Converter support-> USB driver for GSM and CDMA modems       选择为M或*

Device Drivers->Network device support->USB Network Adapters->Gobi USB Net driver for Quectel module       选择为M

6、编译并下载到目标机上测试

Make uImage && make modules

7、系统启动后,ls /dev/ttyUSB*,正如驱动正常一般会有/dev/ttyUSB0到ttyUSB3的接口出现,说明USB Serial的驱动已正常工作。

8、编译quectel-CM拨号程序。这个软件的使用比较简单,直接执行就行了,软件帮你自动识别APN。

写在最后:这个文档主要目的是把整个移植的流程进行说明,实际应用中使用其它模块也可以的。以前3G时代的PPP尽量不要用在4G模块上,否则模块的性能根本跑不出来。

至于模块的硬件电路,供电部分非常重要。最好采用独立电源,而且最大电流能支持3A,并就近加上470的钽电容,有了这个设计基本上可以兼容市面上大部分的模块了。

模块的驱动资料,可以加我的QQ 527130394。我会尽快发给你.

Linux移植EC20 4G模块驱动简易教程相关推荐

  1. linux ec20 usb驱动移植,linux下EC20 4G模块驱动移植

    之前有移植过ME909s MU609,主要工作就是把4G模块当做USB设备,挂载在linux上,驱动移植主要是能够让板子识别到模块,并产生SUB多个虚拟的节点,用于操作模块,拨号上网 关于内核的配置, ...

  2. 小白求,用RE文件管理器移植移远EC20 4G模块驱动。 有重谢。请加w jiao1998524

    小白求,用RE文件管理器移植移远EC20   4G模块驱动.  有重谢.请加w  jiao1998524

  3. 迅为干货 | Linux系统移远EC20 4G模块移植方法

    硬件平台:迅为i.MX6Q开发板 1. 4G网络连接 对于嵌入式Linux而言,4G网络连接是一个比较容易实现的功能,大多数的4G模块接口都是MiniPCIE接口,但是深入了解一下就会发现,4G模块的 ...

  4. linux系统华为4G模块移植及pppd拨号上网开发总结

    一.开发环境简介 开发系统: Ubuntu 14.04 内核版本:linux 3.10 4G模块:ME909-821和ME909-120 模块接口:pcle SIM卡:联通 二.内核驱动配置 需向li ...

  5. i.MX6ULL终结者Linux 4G通信实验EC20 4G模块配置

    文章目录 1 添加USB设备信息 2 Linux内核配置 1 添加USB设备信息 要使用EC20 4G模块首先需要在Linux内核中添加EC20的USB信息,这样内核启动后,才能正确识别EC20 4G ...

  6. STM32F407通过自带USB驱动EC20 4G模块-完整工程

    EC20 4G模块可以通过串口和USB去驱动,但是串口速度比较慢,所以通过USB驱动才能提高通信速率. 硬件连接: STM32F407: EC20模块: 部分参考代码: /* USER CODE EN ...

  7. 驱动程序开发:基于EC20 4G模块自动拨号联网的两种方式(GobiNet工具拨号和PPP工具拨号)

    目录 一.EC20 4G模块简介 二.根据移远官方文档修改EC20 4G模组驱动   1.因为EC20 4G模组min-pice接口其实就是usb接口,因此需要修改Linux内核源码drivers/u ...

  8. ubuntu加载4G模块驱动的调试过程记录

    一个工业平板电脑,原本安装的是win7系统,希望改用ubuntu系统.其他的驱动都好说,关键是有个4G模块,平板电脑厂家使用的是一个小品牌的,ubuntu内部没有集成驱动,需要自己编译驱动.这个对li ...

  9. linux怎么使用4g模块的网络,在ARM-linux上实现4G模块PPP拨号上网(示例代码)

    在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...

最新文章

  1. oracle glogin.sql sql _user,为什么我的login.sql不执行?
  2. 什么是textRNN?有什么用途?结构是什么样子的?
  3. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 五 )
  4. 如何采集病变脏器照片和处理图像?
  5. Hello World, S/4HANA for Customer Management 1.0
  6. mysql 数据库事务处理_MySQL数据库事务及其原理
  7. java多线程中几个常用的方法
  8. 苹果自己设计芯片,但是还是绕不过高通
  9. linux ftp 操作命令
  10. Unix Shell 通配符、转义字符、元字符、特殊字符
  11. WMI-Win32_BIOS 参数说明
  12. oracle获取用户名,Oracle 用户名详解
  13. 利用python绘制雪景图_用AI绘制冬季雪景森林场景插画图片
  14. 使用ExtendSim进行物流、供应链和运输建模仿真
  15. Directx使用基础
  16. USB协议(1)USB基础知识
  17. 制作纯净系统U盘教程(详细版)
  18. Linux学习-账户管理
  19. C++核心编程-5 文件操作
  20. Android系统屏幕亮度调节Brightness

热门文章

  1. 聊聊RabbitMq动态监听这点事
  2. canvas实现扭蛋机动画效果
  3. 跟着Nature Microbiology学作图:R语言ggplot2做散点图添加拟合曲线和p值
  4. 高音符號的由來是怎樣的
  5. 腾讯视频QLV格式转换mp4的方法
  6. matlab 数组横向纵向拼接
  7. 图说当下——人生感悟
  8. VMware15Pro 安装CentOS7
  9. 前端获取微信头像 base64 数据的踩坑实践
  10. jboot学习之路(一)