下面我们主要讲解一下在Linux系统下PPP的有关配置。重点讲解的是pppd通过GPRS上网的内容。希望对大家有所帮助。
前面的内容,我们都讲解了PPP协议的一些基本应用,以及一些相关的配置。那么这里我们就主要讲解一下实现Linux下pppd通过GPRS拨号上网的过程。昨天把开发板的bootloader删了,没办法,只得在PC上调GPRS拨号了.先在windows下拨号成功,然后用工具看拨号时具体使用了哪些AT命令,再使用这些命令到linux下使用pppd来拨号,最后终于成功了,之前开发板上不能成功拨号极有可就是AT指令有问题,现在只有等开发板回来后再到ARM7上调了.
下面贴一下拨号使用的几个脚本,GPRS模块是使用的华为的GTM900-B:
1, /etc/ppp/peers/gprs: 复制内容到剪贴板
代码:
- #/etc/ppp/peers/gprs
- #ThisispppdscriptforChinaMobile,usedHuaweiGTM900-BGPRSModule
- #Usage:root>pppdcallgprs
- /dev/ttyS0
- 19200
- crtscts
- modem
- #noauth
- debug
- nodetach
- #hide-password
- usepeerdns
- noipdefault
- defaultroute
- user"cmnet"
- 0.0.0.0:0.0.0.0
- #ipcp-accept-local
- #ipcp-accept-remote
- #lcp-echo-failure12
- #lcp-echo-interval3
- #noccp
- #novj
- #novjccomp
- #persist
- connect'/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'2
gprs-connect-chat: 复制内容到剪贴板
代码:
- #/etc/ppp/gprs-connect-chat
- #chatscriptforChinaMobile,usedHuaWeiGTM900-BGPRSmodule.
- TIMEOUT15
- ABORT"DELAYED"
- ABORT"BUSY"
- ABORT"ERROR"
- ABORT"NODIALTONE"
- ABORT"NOCARRIER"
- TIMEOUT40
- ''\rAT
- OKATS0=0
- OKATE0V1
- OKAT+CGDCONT=1,"IP","CMNET"
- OKATDT*99***1#
- CONNECT''3
用于chap认证的密码文件:chap-secrets,由于移动的GPRS服务不需要用户名和密码,所以刚开始没设用户名和密码,结果在chap认证的时候总不能通过.后来在gprs里添加user "cmnet"和这个密码文件后就OK了. 复制内容到剪贴板
代码:
- #/etc/ppp/chap-secrets
- #clientserversecretIPaddress
- "cmnet"*"cmnet"*4
- 另外还有个可选的,断开连接的脚本如下:复制内容到剪贴板
代码:
- ABORTOK
- ABORTBUSY
- ABORTDELAYED
- ABORT"NOANSWER"
- ABORT"NOCARRIER"
- ABORT"NODIALTONE"
- ABORTVOICE
- ABORTERROR
- ABORTRINGING
- TIMEOUT12
- ""\\k\\k\\k\\d+++ATH
- "使用:将PC上的DNS删掉后运行如下:
- [root@localhostppp]#pppdcallgprs
- timeoutsetto15seconds
- aborton(DELAYED)
- aborton(BUSY)
- aborton(ERROR)
- aborton(NODIALTONE)
- aborton(NOCARRIER)
- timeoutsetto40seconds
- send(^MAT^M)
- expect(OK)
- ^M^M
- OK
- --gotit
- send(ATS0=0^M)
- expect(OK)
- ^M
- AT^M
- OK
- --gotit
- send(ATE0V1^M)
- expect(OK)
- ^M
- ATS0=0^M^M
- OK
- --gotit
- send(AT+CGDCONT=1,"IP","CMNET"^M)
- expect(OK)
- ^M
- ATE0V1^M^M
- OK
- --gotit
- send(ATDT*99***1#^M)
- expect(CONNECT)
- ^M
- ^M
- OK^M
- ^M
- CONNECT
- --gotit
- send(^M)
- Serialconnectionestablished.
- usingchannel42
- Usinginterfaceppp0
- Connect:ppp0<-->/dev/ttyS0
- sent[LCPConfReqid=0x1<asyncmap0x0><magic0x8c5e3d45><pcomp><accomp>]
- rcvd[LCPConfRejid=0x1<magic0x8c5e3d45>]
- sent[LCPConfReqid=0x2<asyncmap0x0><pcomp><accomp>]
- rcvd[LCPConfAckid=0x2<asyncmap0x0><pcomp><accomp>]
- rcvd[LCPConfReqid=0x1<asyncmap0x0><authchapMD5><pcomp><accomp>]
- sent[LCPConfAckid=0x1<asyncmap0x0><authchapMD5><pcomp><accomp>]
- rcvd[CHAPChallengeid=0x1<fb17db52a81bc14997f72e2932ab0b342bab961d49c611>,name=""]
- sent[CHAPResponseid=0x1<2c757eac52b8d9a7d80ca7a77c419ad9>,name="cmnet"]
- rcvd[CHAPSuccessid=0x1""]
- CHAPauthenticationsucceeded
- sent[CCPConfReqid=0x1<deflate15><deflate(old#)15>]
- sent[IPCPConfReqid=0x1<compressVJ0f01><addr0.0.0.0><ms-dns10.0.0.0><ms-dns30.0.0.0>]
- rcvd[LCPProtRejid=0x180fd0101000c1a04780018047800]
- rcvd[IPCPConfReqid=0x1<addr221.177.160.163>]
- sent[IPCPConfAckid=0x1<addr221.177.160.163>]
- rcvd[IPCPConfRejid=0x1<compressVJ0f01>]
- sent[IPCPConfReqid=0x2<addr0.0.0.0><ms-dns10.0.0.0><ms-dns30.0.0.0>]
- rcvd[IPCPConfNakid=0x2<addr10.165.226.25><ms-dns1211.137.64.163><ms-dns3211.136.20.203>]
- sent[IPCPConfReqid=0x3<addr10.165.226.25><ms-dns1211.137.64.163><ms-dns3211.136.20.203>]
- rcvd[IPCPConfAckid=0x3<addr10.165.226.25><ms-dns1211.137.64.163><ms-dns3211.136.20.203>]
- localIPaddress10.165.226.25
- remoteIPaddress221.177.160.163
- primaryDNSaddress211.137.64.163
- secondaryDNSaddress211.136.20.203
再将这里的DNS给PC或作个连接到/etc/ppp/resolf.conf应该就OK了.
转载请说明出处
知优网 » PPP设置之pppd拨号(PPP拨号)
知优网 » PPP设置之pppd拨号(PPP拨号)