迅为干货 | Linux系统移远EC20 4G模块移植方法
硬件平台:迅为i.MX6Q开发板
对于嵌入式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所示:
要使用EC20 4G模块首先需要在Linux内核中添加EC20的USB信息,这样内核启动后,才能正确识别EC20 4G模块。打开Linux内核下的drivers/usb/serial/option.c?文件,添加如下信息:
其中第1813行是EC20 4G模块的USB信息。
添加完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。
首先拷贝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进行配置,命令如下:
http://element-ui.cn/article/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模块联网测试。
首先安装好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 AT+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目录下输入指令:
http://element-ui.cn/article/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模块就可以正常使用了。
最近更新娱乐资讯
- 获奖影评赏析|《阿丽塔·战斗天使》
- 人生必看十部好看的纪录片(十部必看的现实主义纪录片)
- 日本十大禁欲动漫盘点:唯美霸道下的污镜头
- 墨西哥大麻即将合法化,美媒:美国夹在两个“卖大麻的邻居”之间
- “和合”文化背景下昭君文化的价值生成
- 马来酸阿法替尼片人体生物等效性试验
- 原创《满城尽带黄金甲》:喧哗与沉静的戏台,道德与伦理的悲歌
- 裴旖旎
- 隐适美附件又掉了,从第一天掉了2颗,第二天掉了1颗,今晚我还戴牙套吗?
- 电视剧《最美的青春》:好作品是如何炼就的
- 狗头萝莉出摊卖煎饼大家怎么看?
- 记者的职业伦理:我该何时放下相机
- 绝命毒师电影,「蚁人」改造DNA,首部Netflix华语剧...10月流媒体片单
- 这是一部非常独特的「成人动画」,少儿不宜
- 高分电影推荐!六部直击人性黑暗面的韩国片!部部引人深省!
- 2022天津解放军464医院整形美容中心整形价格表(价目表)全新发布
- 精 [电影推荐]一再婚女人因拯救女儿,让两个家庭面临人性考验,此电影令人感动
- 缓冲晶体溶液与生理盐水对重症监护病房患者急性肾损伤的影响:SPLIT随机临床试验
- 未成年人千万别看这部片子,简直太变态了!!!
- 生态在文学中的位置
- 与3800多名女性发生过关系,世界小电影之王,终于那啥了
- 新加坡电影《爸妈不在家》爆冷获多项金马奖
- 调查称52%受访者认为国产电影色情暴力问题严重
- 红楼梦初中读书笔记
- 家庭伦理剧,小品剧本《家庭矛盾》