2024年5月10日发(作者:)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

linux环境下pppd gprs拨号上网总结

2010/06/25 0 我们的gprs拨号上网已经做好了,当初做这个东西的时候对面

这方面的东西一点也不懂,好在网上很多前辈有自己的经验介绍,少走了不少冤枉

路。现在我也把自己GPRS拨号上网的东西总结下,如有错误请大家及时给我纠

正。

  网上大部分的GPRS案例都是华为GTM900模块的,我们的拨号用的是中兴的

ME3000模块,模块对拨号程序是没有影响的。一个可以拨号上去另一个也可以

拨。

  我先介绍下我参考主要资料:nix/u3/90973/showart_博

客,我用的pppd拨号,我本身是要移植到达芬奇平台上面的,本人移植过程中没有

遇到什么问题,感觉移植很是方便。其他的我也没有怎么试。我推荐大家使用这个

拨号。

  我建议大家实现GPRS拨号的不要一开始就在网上拷贝几个脚本直接运行,有可

能一下你就成功了,这是有可能的。但是你还是不知道GPRS到底是怎么实现拨号

的,建议大家先去看看拨号的原理和各个阶段分别实现什么功能,好好的阅读你的

拨号模块的说明文档,这对拨号成功后上网功能的实现是很有帮助的。

  当你对拨号原理和模块的使用方法了解以后就可以开始实现拨号了。

  我建议你分两步走,第一步可以在windows环境下实现这个拨号这个功能。这

里主要难点是使用GPRS模块在xP上面新建一个为模块拨号的modem。至于方法

你可以在网上找一下,这个功能我实现,但是具体的步骤我不记得了,如果实现成

功了电脑的链接速度就会显示171.2k,过程不难。这个过程可以让你了解GPRS拨号

的过程和一些at命令。

  第二阶段可以在linux下面拨号了,我使用的pppd拨号主要是以下几个脚本:

第一个是拨号参数配置文件,其中最重的两个参数端口名称和波特率。我把我的参

数配置文件贴出来:

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

 #/etc/ppp/peers/gprs# This is pppd script for China Mobile, used Huawei GTM900-B

GPRS Module# Usage: root pppd call gprs/dev/ttyUSB0//端口名称9600//波特率

nocrtscts//无流控制mtu 2000//最大发送字节数mru 2000//最大接收字节数

modem#noauthdebugnodetach#hide-passwordusepeerdnsnoipdefaultdefaultrouteuser

“cmnet”//我拨号用的是中国移动,联通也是这个名字0.0.0.0:0.0.0.0ipcp-accept-

localipcp-accept-remote#lcp-echo-failure 12#lcp-echo-interval

0#noccp#novj#novjccomp#persistconnect ‘/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-

chat’#connect ‘/bin/chat -v -s -f /etc/ppp/gprs-connect-chat’//这里是拨号的时候调用一个

验证脚本,账号加密用的#disconnect ‘/bin/chat -v -f /etc/ppp/gprs-disconnect-chat’

 我的校验文本上是gprs-connect-chat的具体内容是:

 #/etc/ppp/gprs-connect-chat# chat script for China Mobile, usedZTE ME3000GPRS

T 15ABORT “DELAYED”ABORT “BUSY”ABORT

“ERROR”ABORT “NO DIALTONE”ABORT “NO CARRIER”TIMEOUT 40’’

/rATOKAT*TSIMINS?OKAT+ZSTR=2OKAT+CPASOKAT+CSQOKAT+COPS?OKA

T+CREG?OK ATS0=0OK ATE0V1#OKAT+CGDCONT=1,”IP”,”UNINET”#OK

AT+CGDCONT=1,”IP”,”uninet”OK AT+CGDCONT=1,”IP”,”CMNET”#OKATDT#777

OKATDT*99***1#CONNECT ‘‘

 参数文件配置好之后,介绍下拨号程序脚本文件,gprs_

 #!/bin/shdns1=“ “dns2=“ “cd /etc/ppp/peerspppd call gprs //通过pppd拨号调用gprs

参数配置文件,利用模块进行拨号,下面程序是为了GPRS程序可用了写的,简言

之就是仅仅完成拨号,我们的拨号依然是一个玩具,不能给别人用echo “pppd

ok”sleep 12echo “sleep ok”cp -rf /etc/ppp/ /etc/sed -n ‘1p’ /etc/

/etc/ppp/primarydnssed -n ‘2p’ /etc/ /etc/ppp/seconddnsdns1=`cut -f 2 -d ‘ ‘

/etc/ppp/primarydns`dns2=`cut -f 2 -d ‘ ‘ /etc/ppp/seconddns`echo $dns1echo $dns2

 这个文件是拨号成功后记录网络服务提供商的dns的域名服务器的IP

的,这个文件时非常重要的。因为以后的拨号软件的健壮性是靠它来实现的。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

 这样应该就可以进行拨号了,如果有什么问题,可以看下是不是以下原因:sim

卡有无,GPRS服务是否开通,模块的波特率是否配置正确,端口名称是否正确等

等。

 我这里GPRS拨号的总结对GPRS拨号上网部分总结不是非常的细致,主要原因

是我在做这个的时候晕倒的主要问题并不是GPRS拨号这部分,而是如何使GPRS

拨号尽可能的稳定比如说断点续拨,异常处理等等。后面的处理才是最麻烦的。不

是有经验的人指导是比较难处理后面的环节的,因此我把拨号的细节说的不是很清

楚,大家要多多的自己慢慢钻研。如果有问题可以可以留言,有能力一定帮你。

 顺便说一下联通和移动的拨号所用的拨号脚本和拨号的配置文件时完全相同的。

不要奇怪,这是因为联通原来是CDMA网络,后来联通重组将自己的CDMA网络

划分给了电信,自己加入了GPRS网络,如果你拨号成果你就会发现移动和联通的

DNS服务器IP地址是相同的。

 tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!