硬件平台:迅为i.MX6Q开发板

1. 4G网络连接

对于嵌入式Linux而言,4G网络连接是一个比较容易实现的功能,大多数的4G模块接口都是MiniPCIE接口,但是深入了解一下就会发现,4G模块的通信接口都是USB,所以4G模块的驱动就是USB驱动,只要USB驱动正常,4G模块在硬件上就能正常通信。下面看一下4G模块的硬件原理图:

在原理图中,U25是4G模块的MiniPCIE接口,然后通信引脚会接到U15的HUB芯片上,所以4G模块会被识别成USB设备,CON5是SIM卡接口,在使用4G模块时,需要先插入SIM卡。在i.MX6UL终结者开发板上使用的EC20 4G模块,如图 1.3所示:

2. EC20 4G模块配置

2.1. 添加USB设备信息

要使用EC20 4G模块首先需要在Linux内核中添加EC20的USB信息,这样内核启动后,才能正确识别EC20 4G模块。打开Linux内核下的drivers/usb/serial/option.c 文件,添加如下信息:

其中第1813行是EC20 4G模块的USB信息。

2.2. Linux内核配置

添加完EC20 4G模块的USB信息后,需要修改Linux 内核配置来支持USBNET功能。具体配置如下:

配置如图 2.2.1所示:

接下来我们还需要使能 USB 串口 GSM、CDMA 驱动,配置路径如下:

配置如图 2.2.2所示:

然后配置ppp,配置路径如下:

配置如图 2.2.3所示:

配置完成后,重新编译内核,然后使用新的内核启动开发板。如果配置成功开发板启动后会有如图 2.2.4信息打印:

可以看出EC20 4G模块识别成功,并且虚拟出5个USB设备,分别为ttyUSB0~ttyUSB4。

3. EC20 4G模块联网测试

3.1. PPP软件包编译

首先拷贝ppp-2.4.4.tar.gz到Ubuntu下,然后执行下面的命令解压:

tar -xvf ppp-2.4.4.tar.gz

解压完成得到ppp-2.4.4目录,进入ppp-2.4.4目录如图 3.1.1所示:

使用configure进行配置,命令如下:

./configure

结果如图 3.1.2所示:

配置完成后,使用下面的命令进行编译:

make CC=arm-linux-gnueabihf-gcc

“CC=arm-linux-gnueabihf-gcc”指定编译器,和开发板Linux内核使用同一个编译器。编译完成如图 3.1.3所示:

编译完成后,分别在chat、pppd、pppdump、pppstats四个目录下生成chat、pppd、pppdump、pppstats可执行文件,用于后面的4G模块联网测试。

3.2. EC20 4G模块联网测试

首先安装好EC20 4G模块、天线和SIM卡,如图 3.2.1所示:

开发板准备好后启动Linux系统,待系统启动后,进入/etc目录,然后创建ppp目录,具体命令如下:

cd /etc //进入etc目录

mkdir ppp //创建ppp目录

目录创建完后,使用U盘将上一节编译的chat、pppd、pppdump、pppstats四个可执行文件拷贝到/etc/ppp目录下,如图 3.2.2所示:

然后在/etc/ppp目录下创建pap-secrets文件,使用下面命令:

输入如下内容:

在4G信号在通信时候有一个密码的比对,密码对了就可以通信了。上面显示用户是card,密码是card。

然后创建新文件夹peers,命令“mkdir peers”。进入peers文件夹,创建wcdma文件,命令如下:

touch wcdma

vi wcdma

输入如下内容:

# /etc/ppp/peers/wcdma# This is pppd script for China liantong# Usage: root>pppd call wcdma

hide-password

noauth

connect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'

disconnect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'

debug

/dev/ttyUSB2

115200

defaultroute

noipdefault

novj

novjccomp

noccp

ipcp-accept-local

ipcp-accept-remote

local

lock

dump

nodetach

user "card"

password "card"

crtscts

remotename 3gppp

ipparam 3gppp

usepeerdns

需要注意的是使用/dev/ttyUSB2设备节点文件。

“user "card"”和“password "card"”对应了pap-secrets文件中的用户名和密码。

创建wcdma-chat-connect文件:

touch wcdma-chat-connect

vi wcdma-chat-connect

内容如下:

在这里 OK \rAT+CGDCONT=1,"IP","3gnet",,0,0 OK-AT-OK ATDT*99#这两句话会根据移动联通或者是电信而变化,这里用的是移动4G。

创建wcdma-chat-disconnect文件:

touch wcdma-chat-disconnect

vi wcdma-chat-disconnect

内容如下:

所需文件创建完成后,就可以进行联网测试了。

首先关闭eth0设备,因为和EC20 4G模块有冲突,同时只能使用一个设备。命令如下:

ifconfig eth0 down

然后在/etc/ppp目录下输入指令:

./pppd call wcdma &

结果如图 3.2.3所示:

上图表示联网成功后的IP地址为10.47.135.182,使用ifconfig命令查看结果如图 3.2.4:

这时使用ping命令查看能够ping通外网,命令如下:

ping 202.108.22.5 -c 4

“-c”选项指定ping网络的次数。“202.108.22.5”是百度的IP地址,结果如图 3.2.5:

发现不能ping通外网,愿意是因为DNS没有设置对,在etc下有一个文件resolv.conf。这个文件是用来放DNS的。就是这个里面的域名没有设置对。然而在eth0的运行脚本里强制性的把这个文件复制为了192.168.1.1 。这就造成即便在这里文件里设置上正确的DNS,再开机后也会发现这个文件里已经是192.168.1.1了。这是因为eth0,是开机自启动的。

我们在/etc目录下新建一个文件resolv.conf_back:

touch resolv.conf_back

vi resolv.conf_back

输入如下内容:

nameserver 202.99.160.68nameserver 221.130.33.52nameserver 221.130.33.60nameserver 192.168.1.1

然后在新建一个脚本文件ppp0:

touch ppp0

vi ppp0

输入如下内容:

#!/bin/shifconfig eth0 downcp /etc/resolv.conf_back /etc/resolv.conf/etc/ppp/pppd call wcdma&

修改ppp0文件的执行权限:

chmod 777 ppp0

这里第一步是将eth0关掉,第二步将我们的DNS文件覆盖到resolv.conf上,第三步运行。然后重新开机,执行ppp0脚本,命令如下:

/etc/ppp0

脚本执行成功后,重新使用ping命令,结果如图 3.2.6所示:

图片显示可以正常ping通百度的IP地址。至此EC20 4G模块就可以正常使用了。返回搜狐,查看更多

责任编辑:

迅为干货 | Linux系统移远EC20 4G模块移植方法相关推荐

  1. 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网

    摘自:移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码-电脑看 地址:https://www.bilibili.com/video/BV1EJ411P7CR?from= ...

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

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

  3. 海思3531添加移远EC20 4G模块

    在linux下加载驱动有两种常用方法:静态加载和动态加载. 静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用.静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率 ...

  4. 移远EC20 4G模块的GPS部件刷新率修改方法,附GPS数据格式说明

    关键词:移远  EC20  全功能版  CE FAG  GPS  GNSS  GLONASS  全球定位系统  刷新率  Quectel_EC20_GNSS_AT_Commands_Manual_V1 ...

  5. 树莓派CM4_TBOX扩展板(针对车机和工业应用)之移远EC20 4G模块的操作演示

    关键词:树莓派  CM4  TBOX  车机  数据终端  工业采集  RS485  CAN  4G  移远  即插即用  免驱  免拨号  IPv6  物联网 概述:TBOX是一款基于树莓派CM4的 ...

  6. 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码

    usb转tdl ath 挂断 22点评,要接转送帽 AT+QGPSLOC? gps定位 AT+QGPS=1通过命令启动 启动好之后 505还没有启动 516 还没有定位好, 新版本数据模块,带电瓶转换 ...

  7. 迅为IMX6UL驱动移植——移远EC20 GobiNet驱动移植

    迅为IMX6UL驱动移植--移远EC20 GobiNet驱动移植 本文参考<Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0>进行操作 ...

  8. 基于Xavier 移植移远EG25G 4G模块

    基于Jetson Xavier NX 移植移远EG25G 4G模块 先敲一下黑板,使劲敲 大家一定先试一下直接插上4G模块后,linux能否读出来,就是右上角的wifi设置那里面出不出现移动网络信息, ...

  9. 树莓派烧写OpenWrt系统后外接华为ME909或移远EC20 4G LTE模块实现4G软路由即MiFi

    By Mcuzone 关键词:OpenWrt  4G  LTE  软路由  华为ME909s  移远 EC20  树莓派  Raspberry  Pi  3B  4B  WiFi  热点  SSID ...

最新文章

  1. 数据库权限的分配与回收
  2. WMframework成长日记(一)——框架介绍
  3. SAP UI5 应用开发教程之五十八 - 使用工厂方法在运行时动态创建不同类型的列表行项目控件
  4. 牛客练习赛84F-牛客推荐系统开发之下班【莫比乌斯反演,杜教筛】
  5. Keras与PyTorch全方位比较 哪一个深度学习框架更适合初学者?
  6. 同步工具之CyclicBarrier循环栅栏
  7. java考前复习之Scanner 类
  8. 光子不维护服务器,光子云和光子服务器
  9. 运行php web文件路径,php的web路径获取
  10. Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序
  11. springboot做梦网云科技短信业务
  12. 通达信 python插件选股_通达信插件选股说明
  13. 如何评价的测试用例好坏以及如何写好一份测试用例
  14. CodeForces 1457C Bouncing Ball
  15. 哈密顿插值c语言,哈密顿系统有限元方法的长时间性质研讨——冯康猜想的证明.pdf...
  16. 【机器学习】线性回归实战案例一:多元素情况下广告投放效果分析步骤详解
  17. DEV C++编写程序出现 [errror]Id returned 1 exit status报错可能出现的原因及解决办法
  18. 2019年就业前景最好的7大编程语言(内附python教程分享)
  19. 迅雷近年产品经理笔试题汇总
  20. 集美大学计算机主要学什么,集美大学计算机科学与技术专业课程教学大纲

热门文章

  1. SpringCloud微服务安装lombok(小辣椒)插件
  2. Vmware 12 和CentOS 7 镜像下载
  3. 什么护眼灯对眼睛好?眼科专家推荐护眼灯
  4. 购物返利源码代购网站源码
  5. matlab井函数,地下水动力学中Matlab的运用(井函数与贝塞尔函数)
  6. Feign调用出现错误,应用无法启动:to {POST /cart/add}: There is already ‘cartController‘ bean method
  7. 用C语言实现strlen函数
  8. 如何将手机中的视频做成动图?手机端视频转gif怎么操作
  9. 悟空CRM-WEB的问题解决
  10. 关于个人开发者上线Android-App步骤浅谈