嵌入式技术论坛
直播中

linzhao

7年用户 625经验值
擅长:嵌入式技术
私信 关注
[经验]

迅为3399开发板-PCIE 4G模块测试-测试程序

7 ITOP-3399 开发板上预留了一个 Mini PCIE 的 4G 接口,可以连接迅为提供的 EC20 模块。下面我们来演示下如何使用 EC20 4G 模块。
8 首先我们准备一个 EC20 4G 模块连接到 ITOP-3399 开发板的 Mini PCIE 接口上,然后准备一个 4G 天线,接到 EC20 模块的天线座上面,然后插入一张能联网的 SIM 卡,如图所示:

9 然后我们给开发板上电启动,我们通过调试串口登录到开发板上,如下图所示:

10 待系统启动后,进入/etc 目录,然后创建 ppp 目录,具体命令如下:
cd /etc //进入 etc 目录
mkdir ppp //创建 ppp 目录
11 目录创建完后,使用 U 盘将上一节编译的 chat、pppd、pppdump、pppstats 四个可执行文件拷贝到/etc/ppp 目录下,然后在/etc/ppp 目录下创建 pap-secrets 文件,使用下面命令:
touch pap-secrets //创建 pap-secrets 文件
vi pap-secrets //打开 pap-secrets 文件
输入如下内容:
# Secrets for authentication using PAP
# client server secret IP addresses
card * card * 在 4G 信号在通信时候有一个密码的比对,密码对了就可以通信了。上面显示用户是 card,密码是card。
12 然后在/etc/ppp 目录下创建新文件夹 peers,命令“mkdir peers”。进入 peers 文件夹,创建 wcdma
文件,命令如下:
touch wcdma
vi wcdma
输入如下内容:

需要注意的是使用/dev/ttyUSB2 设备节点文件。“user "card"”和“password "card"”对应了 pap-secrets文件中的用户名和密码。
13 在/etc/ppp/peers 目录下创建 wcdma-chat-connect 文件:

在这里 OK AT+CGDCONT=1,"IP","cmnet",,0,0
OK-AT-OK ATDT*98*1#
这两句话会根据移动联通或者是电信而变化,这里用的是移动 4G。
注意:如果你换成其他营运商,需要改 apn 和拨号,不然连不上网
APN 设置:
移动: at+cgdcont=1,"ip","cmnet" 联通: at+cgdcont=1,"ip","3gnet" 电信: at+cgdcont=1,"ip","ctnet" 拨号:
移动:*99***1#或*98*1#
联通: *99#
电信: #777
14 在/etc/ppp/peers 目录下创建 wcdma-chat-disconnect 文件:
touch wcdma-chat-disconnect
vi wcdma-chat-disconnect
内容如下:
ABORT "ERROR" ABORT "NO DIALTONE" SAY "INSending break to the modemn"
""k"
""+++ATH" SAY "nGood byen" 15 现在所需的文件创建完成了,就可以进行联网测试了。我们提供的 Linux 镜像是配置好 4G 模块的,烧写后可以直接进行测试。创建文件如下图所示:

16 开始测试,我们首先首先关闭 eth0 设备,因为和 EC20 4G 模块有冲突,同时只能使用一个设备。命令如下:
ifconfig eth0 down
然后输入“ifconfig”来查看下 eth0 是否关闭。

17 在/etc/ppp 目录下输入指令开始联网,&表示后台运行的意思。
./pppd call wcdma &
结果如下:


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

19.这时使用 ping 命令查看能够 ping 通百度,命令如下
ping www.baidu.com-c 5 “-c”选项指定 ping 网络的次数。
20 如果发现不能 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.68
nameserver 221.130.33.52
nameserver 221.130.33.60
nameserver 192.168.1.1
nameserver 114.114.114.114

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

输入如下内容:
#!/bin/sh
ifconfig eth0 down
cp /etc/resolv.conf_back /etc/resolv.conf
/etc/ppp/pppd call wcdma&

修改 ppp0 文件的执行权限:
chmod 777 ppp0
这里第一步是将 eth0 关掉,第二步将我们的 DNS 文件覆盖到 resolv.conf 上,第三步运行。然后重新开机,执行 ppp0 脚本,命令如下:
/etc/ppp0
脚本执行成功后,重新使用 ping 命令 ping 百度,结果如下图所示:

我们在调试串口终端输入“ifconfig”命令查看下网络设备信息状态,运行结果如图所示:

从上图我们可以看到通过 EC20 模块可以联网成功了。

更多回帖

发帖
×
20
完善资料,
赚取积分