求助: Linux 下使用MC35实现GPRS拨号上网 点击:2737 | 回复:6



welmanwenzi

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2005年5月08日
发表于:2005-05-08 15:37:00
楼主
我拷了ppp-on,ppp-off,ppp-on-dialer三个脚本 在ppp-on里改了电话号码为*99***1# 将账号与密码清除, 改了DIALER_SCRIPT的路径 把下面的设备改成/dev/ttyS0,速率改为19200 将crtscts参数去掉, 在ppp-on-dialer里把帐号密码那块都去掉了 然后我./ppp-on执行脚本 tail -f /var/log/messages 查看消息 May 8 14:40:51 localhost pppd[4566]: pppd 2.4.1 started by root, uid 0 May 8 14:40:52 localhost chat[4567]: timeout set to 3 seconds May 8 14:40:52 localhost chat[4567]: abort on (\nBUSY\r) May 8 14:40:52 localhost chat[4567]: abort on (\nNO ANSWER\r) May 8 14:40:52 localhost chat[4567]: abort on (\nRINGING\r\n\r\nRINGING\r) May 8 14:40:52 localhost chat[4567]: send (rAT^M) May 8 14:40:52 localhost chat[4567]: expect (OK) May 8 14:40:55 localhost chat[4567]: alarm May 8 14:40:55 localhost chat[4567]: send (+++) May 8 14:40:55 localhost chat[4567]: expect (OK) May 8 14:40:58 localhost chat[4567]: alarm May 8 14:40:58 localhost chat[4567]: Failed May 8 14:40:58 localhost pppd[4566]: Connect script failed 随即退出. 我还有那边设的不对呢???



welmanwenzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2005年5月08日
发表于:2005-05-08 20:06:00
1楼
我发誓我什么都没改,它就好了,现在可以拨号了,可是还有个问题,我不是很清楚,在拨号的提示消息中有这样几句: May 8 19:57:37 localhost pppd[3725]: Using interface ppp0 May 8 19:57:37 localhost pppd[3725]: Connect: ppp0 <--> /dev/ttyS0 May 8 19:57:39 localhost modprobe: modprobe: Can't locate module ppp-compress-21 May 8 19:57:39 localhost modprobe: modprobe: Can't locate module ppp-compress-21 May 8 19:57:42 localhost pppd[3725]: not replacing existing default route to eth0 [202.119.118.254] May 8 19:57:42 localhost pppd[3725]: local IP address 10.141.27.23 May 8 19:57:42 localhost pppd[3725]: remote IP address 192.168.254.254 最后两句是拨号成功了,可是中间的这个 Can't locate module ppp-compress-21 是什么意思呢,我还是不太明白

galaxy_zyj

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2005年1月30日
发表于:2006-11-07 18:53:00
2楼
我怎么拨不通阿,我也是这样改的阿

galaxy_zyj

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2005年1月30日
发表于:2006-11-07 19:17:00
3楼
我怎么拨不上去阿,你的ppp-on和ppp-on-dialer脚本是怎么设置的,给我发一下吧!谢谢……
yjzhang_001@yahoo.com.cn

鸣镝

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 117回
  • 年度积分:0
  • 历史总积分:174
  • 注册:2003年8月14日
发表于:2006-11-10 14:38:00
4楼
/etc/ppp/dialup
/usr/sbin/pppd /dev/ttyS0 57600 modem nocrtscts lock connect /etc/ppp/chat-connect user "" debug defaultroute
这个命令的作用是:(可以使用man pppd查看帮助)
运行/usr/sbin/pppd程序,给它传入命令行参数的意义是:
/dev/ttyS0  : 拨号所用的MODEM所连接的串口(ttyS0是串口1,ttyS1是串口2...)
57600  : MODEM的通信速率(57600 BPS)
modem  : 用MODEM进行拨号。
nocrtscts  : 无流控
lock  : 锁定这个设备
connect /etc/ppp/chat-connect :使用/etc/ppp/chat-connect进行拨号前运行程序
user ""  : 用户名
debug  :输出调试信息
defaultroute : 此拨号连接作为默认路由


/etc/ppp/chat-connect
chat -v -f /etc/ppp/chat-dialscript
这个文件中调用chat命令,并且指定/etc/ppp/chat-dialscript脚本来进行拨号。
chat命令的帮助请参考man -a chat查看。

/etc/ppp/chat-dialscript
ABORT BUSY
ABORT ERROR
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT RING
<--------如果遇到MODEM回应"BUSY","ERROR","NO CARRIER","NO DIALTONE"则立即报错并退出拨号。
"" AT <--------外送"AT"命令。
"OK" "AT+CGDCONT=1,\042ip\042,\042cmnet\042" <---当判到“OK"回应时,外送AT+CGDCONT=1,"ip","cmnet" 命令。
"OK" "ATDT*99***1#" <---当判到“OK"回应时,外送ATDT*99***1# 命令。
"CONNECT" <---当判到“CONNECT"回应时,拨号结束,程序退出。


/etc/ppp/iflineconnected
if [ `ifconfig|grep ppp|wc -l` -gt 0 ] <--运行ifconfig,如果在其中找到有"ppp"字符串的行时,表明ppp接口已经连上并且已经有了ppp设备.
then
        #echo "ppp already start"
echo 1 > /var/iflineconnected
        exit
fi
echo 0 > /var/iflineconnected


/etc/ppp/pppstop
#ppp stop scripts --------------------
pid=`ps -aux|grep /usr/sbin/pppd |grep -v grep|awk '{printf $2}'` <--运行ps -aux,查看进程是否已经运行,如果已经运行则通过grep和awk配合处理得到其进程号.
if [ -z $pid ]
then
echo "ppp not start."
else
kill $pid <--给pppd进程号发送KILL信号,令其中止,并挂断连接.
fi

mafengxi

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年12月04日
发表于:2007-06-22 09:56:00
5楼
急求助: Linux 下实现GPRS拨号上网
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
然后我./ppp-on执行脚本
  tail -f /var/log/messages
  查看消息
un 22 09:48:50 mfx pppd[2119]: pppd 2.4.1 started by root, uid 0
Jun 22 09:48:51 mfx chat[2120]: timeout set to 3 seconds
Jun 22 09:48:51 mfx chat[2120]: abort on (\nBUSY\r)
Jun 22 09:48:51 mfx chat[2120]: abort on (\nNO ANSWER\r)
Jun 22 09:48:51 mfx chat[2120]: abort on (\nRINGING\r\n\r\nRINGING\r)
Jun 22 09:48:51 mfx chat[2120]: send (rAT^M)
Jun 22 09:48:52 mfx chat[2120]: expect (OK)
Jun 22 09:48:52 mfx chat[2120]: AT^M^M
Jun 22 09:48:52 mfx chat[2120]: OK
Jun 22 09:48:52 mfx chat[2120]:  -- got it
Jun 22 09:48:52 mfx chat[2120]: send (ATH0^M)
Jun 22 09:48:52 mfx chat[2120]: timeout set to 30 seconds
Jun 22 09:48:52 mfx chat[2120]: expect (OK)
Jun 22 09:48:52 mfx chat[2120]: ^M
Jun 22 09:48:52 mfx chat[2120]: ATH0^M^M
Jun 22 09:48:52 mfx chat[2120]: OK
Jun 22 09:48:52 mfx chat[2120]:  -- got it
Jun 22 09:48:52 mfx chat[2120]: send (AT+IPR=115200^M)
Jun 22 09:48:52 mfx chat[2120]: expect (OK)
Jun 22 09:48:52 mfx chat[2120]: ^M
Jun 22 09:48:52 mfx chat[2120]: AT+IPR=115200^M^M
Jun 22 09:48:52 mfx chat[2120]: OK
Jun 22 09:48:52 mfx chat[2120]:  -- got it
Jun 22 09:48:52 mfx chat[2120]: send (AT+CGDCONT=1,IP,CMNET^M)
Jun 22 09:48:52 mfx chat[2120]: expect (OK)
Jun 22 09:48:52 mfx chat[2120]: ^M
Jun 22 09:48:52 mfx chat[2120]: AT+CGDCONT=1,IP,CMNET^M^M
Jun 22 09:48:52 mfx chat[2120]: ERROR^M
Jun 22 09:49:22 mfx chat[2120]: alarm
Jun 22 09:49:22 mfx chat[2120]: Failed
Jun 22 09:49:22 mfx pppd[2119]: Connect script failed
Jun 22 09:49:23 mfx pppd[2119]: Exit.
随即退出.
  我还有那里设的不对呢?请给予指点

#
# 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'                 \
ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
''              \rAT                            \
'OK-+++\c-OK'   ATH0                            \
TIMEOUT         30                              \
OK    AT+IPR=115200                               \
OK    AT+CGDCONT=1,"IP","CMNET"                 \
OK    AT+CGACT=1,1                              \
OK              ATDT$TELEPHONE                  \
CONNECT         ''
#       ogin:--ogin:    $ACCOUNT                        \
#       assword:        $PASSWORD
~

无线通

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2007年11月19日
发表于:2007-11-19 10:13:00
6楼
拨不通有时跟低层的bios有关,要看一下低层的设置。

热门招聘
相关主题

官方公众号

智造工程师