急求助: Linux 下实现GPRS拨号上网 点击:1571 | 回复:5



mafengxi

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年12月04日
发表于:2007-06-22 10:05:00
楼主
ppp-on脚本内容如下:
# These are the parameters. Change as needed.
TELEPHONE=*99***1#      # The telephone number for the connection
ACCOUNT=        # The account name for logon (as in 'George Burns')
PASSWORD=               # The password for this account (and 'Gracie Allen')
LOCAL_IP=0.0.0.0        # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0       # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0   # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in.  Please use the absolute file name as the $PATH variable is not
# used on the connect option.  (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/home/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
exec /usr/sbin/pppd  lock modem  /dev/ttyS1 115200 \
syncmap 0 kdebug 4 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute\
 connect $DIALER_SCRIPT&

ppp-on-dialer脚本的内容如下:
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v                                            \
TIMEOUT         3                               \
ABORT           '\nBUSY\r'                      \
ABORT           '\nNO ANSWER\r'        



林湘建

  • 精华:18帖
  • 求助:0帖
  • 帖子:49帖 | 1012回
  • 年度积分:0
  • 历史总积分:1686
  • 注册:2003年4月07日
发表于:2007-06-22 17:55:00
1楼
1. 将Saro无线Modem接到Pc机的串口1(/dev/ttyS0)上。
2. 首先使用minicom(强烈建议在linux的图形用户界面下新建一个Terminal,然后运行minicom),将速率设置成为57600、8N1,Hardware Flow Control.
3. 运行AT,看是否会返回OK。如果没有返回则表明串口设置有问题,或者Saro Modem的串口速率设置有问题;
4. 输入AT+CSQ?看信号质量如何,如果结果类似+CSQ: 22,99(逗号前的数字在12~31之间)为正常。
5. 输入AT+CGDCONT=1,”IP”,”cmnet”    ,看是否会返回OK。这条命令的作用是设置Apn(访问接入点名)。如果您的Apn是其他值,请相应地将cmnet替换掉即可。例如假设您的Apn是gdyd.yl,请输入AT+CGDCONT=1,”IP”,”gdyd.yl” ;
6. 输入ATDT*99***1#看是否会返回CONNECT。正常情况下应当返回CONNECT,而且后面应当出现一些数据;
7. 退出minicom软件。
8. 运行wvdialconf /etc/wvdial.conf 。可以看到系统自动开始查找modem,并且将成功找到Modem安装在ttyS0上,并且速率为57600,如下图示:
[root@test ppp]# wvdialconf /etc/wvdial.conf
Scanning your serial ports for a modem.
 
ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 4800 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 4800 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 19200 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 19200 baud, next try: 57600 baud
ttyS0<*1>: ATQ0 V1 E1 -- OK
ttyS0<*1>: ATQ0 V1 E1 Z -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyS0<*1>: Modem Identifier: ATI – Siemens Mc35 Gprs Modem
ttyS0<*1>: Max speed is 57600; that should be safe.
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
 
Found a modem on /dev/ttyS0.
Modem configuration written to /etc/wvdial.conf.
ttyS0<Info>: Speed 57600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

如果结果和上面不同,请多试几次,系统最后总会成功找到Modem的。

9. vi /etc/wvdial.conf ,将这个文件修改为如下:
[Dialer Defaults]
Modem = /dev/ttyS0
Baud = 57600
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Username = 
Password = 
10. 编辑 /etc/chap-secrets和/etc/pap-secrets
将两个文件中的内容都改为
“” * “”
注意,第一对引号为用户名,*号表明对服务器名没有限制,第二对的引号内为校验密码。
11. 运行wvdial,可以看到结果如下:
[root@test ppp]# wvdial
--> WvDial: Internet dialer version 1.53
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Waiting for prompt.
~[7f]}#@!}!}!} }7}"}&} } } } }#}%B#}%}%}&I=}3[18]}(}"}^}#~
--> PPP negotiation detected.
--> Starting pppd at Thu May 13 17:47:11 2004
--> pid of pppd: 19535
12. 另开一个Terminal,运行ifconfig可以看到接口中已经出现了ppp0设备,如下图所示:
ppp0      Link encap:Point-to-Point Protocol
          inet addr:220.192.68.149  P-t-P:220.192.64.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:66 (66.0 b)  TX bytes:84 (84.0 b)
可以看到已经获得了动态地址220.192.68.149
13. 这时候需要手工添加一条默认路由:route add default ppp0 ,添加完成后可以ping远端的一个地址试试是否真的上网了,例如说在公网上可以ping 166.111.8.238,应该会通;
14. 如果要挂断ppp联接,很简单,只要切换到wvdial所在的Terminal,然后按Ctrl + C即可,也可以给kill掉wvdial 进程,结果如下:
Caught signal #2!  Attempting to exit gracefully...
--> Disconnecting at Thu JULY 13 17:58:26 2004
[root@test ppp]# ppp0      Link encap:Point-to-Point Protocol

mafengxi

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年12月04日
发表于:2007-07-03 15:54:00
2楼
ATDT*99***1#
CONNECT
~?}#.!}!}!} }3}"}&} } } } }#}%.#}%}'}"}(}"W}0~~?}#.!}!}!} }3}"}&} } } } }#}%.#}%}'}"}(}"W}0~~?}~
NO CARRIER

其他的命令都正确,只有这条命令是这样的结果.
[root@mfx ppp]# wvdial
--> WvDial: Internet dialer version 1.53
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Configuration does not specify a valid login name.
--> Configuration does not specify a valid password.
林工,你看这是哪里 出错了 呀,你遇到过吗?希望能得到你的帮助

mafengxi

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年12月04日
发表于:2007-07-04 14:42:00
3楼
[root@mfx ppp]# ./ppp-on
Serial connection established.
using channel 18
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
sent [LCP ConfReq id=0x1 <asyncmap 0x20a0000> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x20a0000> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x4 <asyncmap 0x0> <auth chap MD5> <pcomp> <accomp>]
sent [LCP ConfRej id=0x4 <auth chap MD5>]
rcvd [LCP ConfReq id=0x5 <asyncmap 0x0> <pcomp> <accomp>]
sent [LCP ConfAck id=0x5 <asyncmap 0x0> <pcomp> <accomp>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0xb <c08133623919b199284330e5773f91406d00031784df43d509029437768a804f8f804d553f7d3e31301b8fc92c1f2e0a366339b867843bf68a51269577ee10>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0xc <30cbae9bbd499130c7262256f6ac5ef10c9e521abedd56aa56dd09880acc10b3197c8d0eab1461ef667b2266d080db4d67c9861482824a49e6c175ea27>, name = ""]
rcvd [CHAP Challenge id=0xd <386bc5a92485027868c48433c7cfaf315c76c0fe0e7eaa0ad12cb113a192c7543f9ba96baa>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0xe <b90b5c099a664a6b8e5798c58f5320302e>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0xf <a1a92fecc758e22edf9d3fd956e0c965f6151f2b>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0x10 <12628c49904ae0f5030725731ad9641d146ee2cec9ff0c627329>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0x11 <ef418c9bc49a256626316cbfc5cd2de800d62692dd9f6608c675601c046bd2d2fde358ce2dddcf7d>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0x12 <ff6a06c76896effe358f8f3dcfbf387dfbda20759f>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0x13 <14d955fbdb53b1566b4252bfce35ab3dd2268f8c73777e7309adb2e632eee7dc7d3beeeedb6ef0b5c6f383e02e466e1728303c93>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [CHAP Challenge id=0x14 <c1837a140cf1fb67a51c2ea6db06a9e6b671e227afe84740328a1f8ad4951e4f54b6cbf1531392da>, name = ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
rcvd [LCP TermReq id=0x3 1d]
LCP terminated by peer (^])
sent [LCP TermAck id=0x3]
Connection terminated.
tail -f /var/log/messages:
Jul  4 14:33:30 mfx pppd[3548]: pppd 2.4.1 started by root, uid 0
Jul  4 14:33:31 mfx chat[3549]: timeout set to 3 seconds
Jul  4 14:33:31 mfx chat[3549]: abort on (\nBUSY\r)
Jul  4 14:33:31 mfx chat[3549]: abort on (\nNO ANSWER\r)
Jul  4 14:33:31 mfx chat[3549]: abort on (\nRINGING\r\n\r\nRINGING\r)
Jul  4 14:33:31 mfx chat[3549]: send (rAT^M)
Jul  4 14:33:31 mfx chat[3549]: expect (OK)
Jul  4 14:33:31 mfx chat[3549]: ^M^M
Jul  4 14:33:31 mfx chat[3549]: OK
Jul  4 14:33:31 mfx chat[3549]:  -- got it
Jul  4 14:33:31 mfx chat[3549]: send (ATH0^M)
Jul  4 14:33:31 mfx chat[3549]: timeout set to 30 seconds
Jul  4 14:33:31 mfx chat[3549]: expect (OK)
Jul  4 14:33:31 mfx chat[3549]: ^M
Jul  4 14:33:31 mfx chat[3549]: ATH0^M^M
Jul  4 14:33:31 mfx chat[3549]: OK
Jul  4 14:33:31 mfx chat[3549]:  -- got it
Jul  4 14:33:31 mfx chat[3549]: send (AT+IPR=115200^M)
Jul  4 14:33:31 mfx chat[3549]: expect (OK)
Jul  4 14:33:31 mfx chat[3549]: ^M
Jul  4 14:33:31 mfx chat[3549]: AT+IPR=115200^M^M
Jul  4 14:33:31 mfx chat[3549]: OK
Jul  4 14:33:31 mfx chat[3549]:  -- got it
Jul  4 14:33:31 mfx chat[3549]: send (AT+CGDCONT=1,"IP","CMNET"^M)
Jul  4 14:33:32 mfx chat[3549]: expect (OK)
Jul  4 14:33:32 mfx chat[3549]: ^M
Jul  4 14:33:32 mfx chat[3549]: AT+CGDCONT=1,"IP","CMNET"^M^M
Jul  4 14:33:32 mfx chat[3549]: OK
Jul  4 14:33:32 mfx chat[3549]:  -- got it
:Jul  4 14:33:32 mfx chat[3549]: send (AT+CGACT=1,1^M)
Jul  4 14:33:32 mfx chat[3549]: expect (OK)
Jul  4 14:33:32 mfx chat[3549]: ^M
Jul  4 14:33:35 mfx chat[3549]: AT+CGACT=1,1^M^M
Jul  4 14:33:35 mfx chat[3549]: OK
Jul  4 14:33:35 mfx chat[3549]:  -- got it
Jul  4 14:33:35 mfx chat[3549]: send (ATDT*99***1#^M)
Jul  4 14:33:35 mfx chat[3549]: expect (CONNECT)
Jul  4 14:33:35 mfx chat[3549]: ^M
Jul  4 14:33:35 mfx chat[3549]: ATDT*99***1#^M^M
Jul  4 14:33:35 mfx chat[3549]: CONNECT
Jul  4 14:33:35 mfx chat[3549]:  -- got it
Jul  4 14:33:35 mfx chat[3549]: send (^M)
Jul  4 14:33:35 mfx pppd[3548]: Serial connection established.
Jul  4 14:33:35 mfx pppd[3548]: Using interface ppp0
Jul  4 14:33:35 mfx pppd[3548]: Connect: ppp0 <--> /dev/ttyS0
Jul  4 14:33:36 mfx /etc/hotplug/net.agent: assuming ppp0 is already up
Jul  4 14:34:08 mfx pppd[3548]: LCP terminated by peer (^])
Jul  4 14:34:11 mfx pppd[3548]: Connection terminated.
Jul  4 14:34:11 mfx pppd[3548]: Exit.
Jul  4 14:34:11 mfx /etc/hotplug/net.agent: NET unregister event not supported
请问有谁遇到过这样的问题吗?请遇到过 解决了的先知们 给予帮助,我将不胜感激!急需帮助!

云飘渺

  • 精华:1帖
  • 求助:0帖
  • 帖子:5帖 | 46回
  • 年度积分:0
  • 历史总积分:338
  • 注册:2003年10月17日
发表于:2007-07-04 17:45:00
4楼
楼主留一个邮箱,我发几个拨号脚本给你。。。
还有可能是默认路由添加没做,可以试试看·~~

mafengxi

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年12月04日
发表于:2007-07-05 15:34:00
5楼
我的邮箱是mafengxi2004@yahoo.com.cn
          mafengxi2004@163.com
你把拨号脚本发到上面我的邮箱里吧!谢谢!谢谢!

热门招聘
相关主题

官方公众号

智造工程师