1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 嵌入式Linux 4G模组使用 命令 EC20 EC25...

嵌入式Linux 4G模组使用 命令 EC20 EC25...

时间:2023-02-01 00:25:48

相关推荐

嵌入式Linux 4G模组使用 命令 EC20 EC25...

嵌入式Linux开发中,移远4G模组通过ppp拨号上网,命令操作过程如下。

chat:调制解调器的自动对话脚本,Chat程序定义了一个计算机和调制解调器之间对话交流,其主要目的是用来在本地PPPD和远端PPPD程序之间建立连接(简单说就是与4G模块进行AT命令交互的流程表,最终实现与ISP运营商的连接)。

pppd:点对点协议守护进程,其功能为实现ppp策略性的内容,包括所有鉴权、压缩/解压和加密/解密等扩展功能的控制协议。

pppdump:将使用pppd记录选项编写的文件转换为人类可读的格式。

pppstats:显示PPP连线状态。pppstats(point to point protocol status)。

一、Test AT Function。

方法一:

root@ms:~# ls /dev/ttyU*/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4root@ms:~#root@ms:~# cat /dev/ttyUSB2 &[1] 1292root@ms:~# echo -en "AT\r\n" > /dev/ttyUSB2root@ms:~# ATOKATOKroot@ms:~#

方法二(本人测试没反应):

root@ms:~# busybox microcom /dev/ttyUSB2

二、Test PPP Function。

1、关闭其它网络,eth*和wlan*。不关闭,需手动更改默认路由。

root@ms:~# ifconfig eth0 downroot@ms:~#root@ms:~# ifconfiglo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:4 errors:0 dropped:0 overruns:0 frame:0TX packets:4 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:312 (312.0 B) TX bytes:312 (312.0 B)root@ms:~#

root@ms:~# route add defatult 0.0.0.0 mask 255.255.255.255 10.64.64.64route: resolving defatultroot@ms:~#

2、所需文件。移远EC20、EC25的Modem path为/dev/ttyUSB3。

必须文件:wcdma、wcdma-chat-connect、wcdma-chat-disconnect,目录为/etc/ppp/peers/。

不必须文件:ip-up、ip-down,目录为/etc/ppp。可从Ubuntu系统中拷贝。

/etc/ppp/ip-up、/etc/ppp/ip-down这两个文件分别在ppp链路成功、链接断开时执行一次。可以利用这个去实现pppoe断线自动重连。

3、启动ppp服务。

root@ms:~# pppd call wcdma &[1] 1288root@ms:~# pppd options in effect:debug # (from /etc/ppp/peers/wcdma)nodetach# (from /etc/ppp/peers/wcdma)dump # (from /etc/ppp/peers/wcdma)noauth# (from /etc/ppp/peers/wcdma)user password # (from /etc/ppp/peers/wcdma)remotename 3gppp# (from /etc/ppp/peers/wcdma)/dev/ttyUSB3 # (from /etc/ppp/peers/wcdma)115200# (from /etc/ppp/peers/wcdma)lock # (from /etc/ppp/peers/wcdma)connect /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect# (from /etc/ppp/peers/wcdma)disconnect /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect # (from /etc/ppp/peers/wcdma)crtscts # (from /etc/ppp/peers/wcdma)local # (from /etc/ppp/peers/wcdma)hide-password # (from /etc/ppp/peers/wcdma)novj # (from /etc/ppp/peers/wcdma)novjccomp# (from /etc/ppp/peers/wcdma)ipcp-accept-local# (from /etc/ppp/peers/wcdma)ipcp-accept-remote # (from /etc/ppp/peers/wcdma)ipparam 3gppp # (from /etc/ppp/peers/wcdma)noipdefault # (from /etc/ppp/peers/wcdma)defaultroute # (from /etc/ppp/peers/wcdma)usepeerdns # (from /etc/ppp/peers/wcdma)noccp # (from /etc/ppp/peers/wcdma)abort on (BUSY)abort on (NO CARRIER)abort on (NO DIALTONE)abort on (ERROR)abort on (NO ANSWER)timeout set to 120 secondssend (AT^M)expect (OK)AT^M^MOK-- got itsend (^MATZ^M)expect (OK)^MATZ^M^MOK-- got itsend (^MAT+CGDCONT=1,"IP","3gnet",,0,0^M)expect (OK)^MAT+CGDCONT=1,"IP","3gnet",,0,0^M^MOK-- got itsend (ATDT*99#^M)expect (CONNECT)^MATDT*99#^M^MCONNECT-- got itsend (\d)Script /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect finished (pid 1289), status = 0x0Serial connection established.using channel 1Using interface ppp0Connect: ppp0 <--> /dev/ttyUSB3Warning - secret file /etc/ppp/pap-secrets has world and/or group accesssent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4794f369> <pcomp> <accomp>]rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xac3f292c> <pcomp> <accomp>]No auth is possiblesent [LCP ConfRej id=0x0 <auth chap MD5>]rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x4794f369> <pcomp> <accomp>]rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xac3f292c> <pcomp> <accomp>]sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xac3f292c> <pcomp> <accomp>]sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]rcvd [LCP DiscReq id=0x2 magic=0xac3f292c]rcvd [IPCP ConfReq id=0x0]sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]rcvd [IPCP ConfNak id=0x1 <addr 10.221.137.224> <ms-dns1 61.156.60.66> <ms-dns2 202.102.128.68>]sent [IPCP ConfReq id=0x2 <addr 10.221.137.224> <ms-dns1 61.156.60.66> <ms-dns2 202.102.128.68>]rcvd [IPCP ConfReq id=0x1]sent [IPCP ConfAck id=0x1]rcvd [IPCP ConfAck id=0x2 <addr 10.221.137.224> <ms-dns1 61.156.60.66> <ms-dns2 202.102.128.68>]Could not determine remote IP address: defaulting to 10.64.64.64local IP address 10.221.137.224remote IP address 10.64.64.64primary DNS address 61.156.60.66secondary DNS address 202.102.128.68Script /etc/ppp/ip-up started (pid 1295)Script /etc/ppp/ip-up finished (pid 1295), status = 0x0root@ms:~#

4、检查IP/DNS/Route。

root@ms:~# ifconfig ppp0ppp0Link encap:Point-to-Point Protocolinet addr:10.221.137.224 P-t-P:10.64.64.64 Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1RX packets:4 errors:0 dropped:0 overruns:0 frame:0TX packets:4 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:52 (52.0 B) TX bytes:58 (58.0 B)root@ms:~#root@ms:~# cat /etc/resolv.confmeserver 61.132.163.68nameserver 202.102.213.68root@ms:~#root@ms:~# route -nKernel IP routing tableDestinationGateway Genmask Flags Metric Ref Use Iface0.0.0.0 0.0.0.0 0.0.0.0 U00 0 ppp010.64.64.640.0.0.0 255.255.255.255 UH 00 0 ppp0root@ms:~#root@ms:~# ping PING (14.215.177.38): 56 data bytes64 bytes from 14.215.177.38: seq=0 ttl=50 time=55.281 ms64 bytes from 14.215.177.38: seq=1 ttl=50 time=58.692 ms64 bytes from 14.215.177.38: seq=2 ttl=50 time=60.334 ms^C--- ping statistics ---3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max = 55.281/58.102/60.334 msroot@ms:~#

5、关闭PPP call。

root@ms:~# killall pppdTerminating on signal 15Connect time 3.0 minutes.Sent 488 bytes, received 971 bytes.Script /etc/ppp/ip-down started (pid 1305)sent [LCP TermReq id=0x2 "User request"]rcvd [LCP TermAck id=0x2]Connection terminated.root@ms:~# abort on (ERROR)abort on (NO DIALTONE)\send (\k"^M)send (+++ATH"^M)Good bayScript /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect finished (pid 1307), status = 0x0Serial link disconnected.Script /etc/ppp/ip-down finished (pid 1305), status = 0x0[1]+ Done(5) pppd call wcdmaroot@ms:~#

6、查看网络节点。

root@ms:~# ifconfiglo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)root@ms:~#

附:

1、指定网络节点ping命令:ping -I ppp0 。

2、在拨号之前已经启用了以太网eth0,ping广域网失败,原因有两个,一个是路由表中的默认值为eth0生成的,另一个是默认dn服务器地址不能被ppp0识别。

3、默认网关解决如下。

在pppd脚本中使能了defaultroute后,pppd会在拨号成功后向路由表中添加一条默认网关信息,但是因为之前已经有一条默认网关了,于是添加失败,默认网关依然是之前eth设置的,因此在pppd call gprs之前我们应该先route del default来删除默认路由(最好写个脚本来实现删除默认路由–拨号等一系列操作)。

或者将ppp0设置为默认路由。

先删除原来路由,route del default

再将ppp0设置为默认路由,route add default dev ppp0

4、dns问题解决如下。

在pppd脚本中使能了usepeerdns后,pppd会在拨号成功后,在/etc/ppp下生成resolv.conf,这是ISP运营商提供的dns,我们应该将拷贝或者连接到/etc目录下,当然这件事就可以交给ip-up来做。

按照ppp拨号过程中打印信息可以发现,在退出pppd进程时,会调用/etc/ppp/ip-down。因此删除默认网关,恢复dns就交由ip-down脚本做了。

ip-up脚本:

#!/bin/bash#ip-updns_file="/etc/resolv.conf"rm "$dns_file"ln /etc/ppp/resolv.conf "$dns_file"

ip-down脚本

#!/bin/bash#ip-down#set -vxdns_file="/etc/resolv.conf"rm $dns_filecat > "$dns_file" <<EOF# auto create by ip-downnameserver 114.114.114.114nameserver 8.8.8.8EOFchmod 755 "$dns_file"/etc/init.d/networking restartecho "Set dns for eth0"

5、设置了断线重拨(lcp-echo-failure、lcp-echo-interval)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。