嵌入式linux ppp拨号上网时, 输入pppd call cmnet 后无反应,ifconfig查看无ppp0,求高手指教

嵌入式linux ppp拨号上网时, 输入pppd call cmnet 后无反应,ifconfig查看无ppp0,求高手指教,第1张

这样得到的内容太模糊了,大家没有办法帮您。

建议你开两个终端,然后一个终端执行

tail -f /va/log/message

一个终端执行

adsl-connet

得到message的日志内容,才能分析解决的办法

认情况在/etc/ppp/目录下建立文件gprs-connect-chat,内容如下(每个参数解释在ppp-howto中有详细解释。它是在ppp

底层会话的时候给chat进程的参数每行是一个“期望/发送”的组合序列。当出现一些经典的错误如: "LCP: timeout sending

Config-Requests" ,"serial line is not 8 bit clean...",“serial line is

looped

back”等,去参看方式2提到的两个文档,或者google。注意,为什么不能确切地给出解决的方式,原因是打印出来的同一个错误信息,我称之为现象,

同一现象可能是由很多种原因造成的,需要自己实地排查。)

#/etc/ppp/gprs-connect-chat

TIMEOUT 15

ABORT '\nBUSY\r'

ABORT '\nNO ANSWER\r'

ABORT '\nRINGING\r\n\r\nRINGING\r'

#'' AT

#'OK-+++\c-OK' ATH0

TIMEOUT 40

'' \rAT

OK ATS0=0 #这些都是标准的at命令,建议查看随模块的at命令手册

OK ATE0V1

OK AT+CGDCONT=1,"IP","CMNET" #设置isp接入网关为中国移动的cmnet,如果你想 获得更多访问资源的话

OK ATDT*99***1# #中国移动gprs的接入号吗

CONNECT ''

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

建立文件/etc/ppp/peers/gprs,它的作用是给pppd进程提供配置参数(详见man 8 pppd的输出内容,如果出现问题这个将是非常重要的参考页),内容如下:

#/etc/ppp/peers/gprs

# Usage: root>pppd call gprs

/dev/s3c2410_serial1 #改成自己的端口名

115200#改成自己串口波特率

nocrtscts

#可能你的串口是需要crtscts,硬件流控的,这是由你的串口决定的,一般嵌入式系统的串口没有带硬件流控,也不需要就加nocrtscts

modem #这个参数使得pppd进程将等待模块发回的CD (Carrier Detect)信号,与local真好相反

#noauth

debug #把调试信息输出到/var/log/messages,在调试成功后去掉它,以减少垃圾的产生。

nodetach

#hide-password

usepeerdns #以下的3个参数一般不可少

noipdefault

defaultroute

user smsong #设置接入的用户名,在chap-secrets或者pap-secets中使用

0.0.0.0:0.0.0.0 #本地和远端的ip都设为0使得接入的isp分配本地的ip地址

ipcp-accept-local #要求peer也就是isp给自己非配动态的IP地址

#ipcp-accept-remote

#lcp-echo-failure 12

#lcp-echo-interval 3

noccp #不需要压缩控制协议,有可能对端不需要,根据自己的isp的情况

#novj

#novjccomp

persist #保证在连接断开的情况下不退出,并尝试重新打开连接

connect '/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-chat'

#pppd调用chat会话进程接入对端isp,启动对端的pppd,然后本地pppd与对端的pppd一起进行协

#商网络参数和chap/pap认证,成功后,再进行ncp层的ip的分配。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#/etc/ppp/chap-secets

# Secrets for authentication using CHAP

# client server secret IP addresses

####### redhat-config-network will overwrite this part!!! (begin) ##########

####### redhat-config-network will overwrite this part!!! (end) ############

smsong * 123456 *

有点地区的GPRS可能使用pap方式认证接入用户,所以在同一级目录下,创建pap-secets文件,内容与chap-secets类似有4项的内容第2和第4项一般不限制就用*(星号)代表。反正要你在/etc/ppp/下放着这两个文件就好。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在建立了ppp0连接以后可以使用ctrl+c或者下面的脚本程序ppp-off断开ppp连接

#/etc/ppp/ppp-off

#!/bin/sh

######################################################################

#

# Determine the device to be terminated.

#

if [ "$1" = "" ]then

DEVICE=ppp0

else

DEVICE=$1

fi

######################################################################

#

# If the ppp0 pid file is present then the program is running. Stop it.

if [ -r /var/run/$DEVICE.pid ]then

kill -INT `cat /var/run/$DEVICE.pid`

#

# If the kill did not work then there is no process running for this

# pid. It may also mean that the lock file will be left. You may wish

# to delete the lock file at the same time.

if [ ! "$?" = "0" ]then

rm -f /var/run/$DEVICE.pid

echo "ERROR: Removed stale pid file"

exit 1

fi

#

# Success. Let pppd clean up its own junk.

echo "PPP link to $DEVICE terminated."

exit 0

fi

#

# The ppp process is not running for ppp0

echo "ERROR: PPP link is not active on $DEVICE"

exit 1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

做好上面的配置以后,输入pppd call gprs命令,注意如果你的gprs这个文件不在/etc/ppp/peers/目录下,在给出标注路径给pppd

[root@localhost ppp_scripts]# pppd call gprs

timeout set to 15 seconds

abort on (\nBUSY\r)

abort on (\nNO ANSWER\r)

abort on (\nRINGING\r\n\r\nRINGING\r)

timeout set to 40 seconds

send (^MAT^M^M)

expect (OK)

^M^M

OK

-- got it

send (ATS0=0^M^M)

expect (OK)

^M

AT^M

OK

-- got it

send (ATE0V1^M^M)

expect (OK)

^M

^M^M

OK

-- got it

send (AT+CGDCONT=1,"IP","CMNET"^M^M)

expect (OK)

^M

ATS0=0^M^M

OK

-- got it

send (ATDT*99***1#^M^M)

expect (CONNECT)

^M

^M^M

OK^M

ATE0V1^M^M

OK^M

^M

OK^M

^M

OK^M

^M

OK^M

^M

CONNECT

-- got it

send (^M)

Serial connection established.

using channel 20

Using interface ppp0

Connect: ppp0 /dev/ttyS0

Warning - secret file /etc/ppp/pap-secrets has world and/or group access

sent [LCP ConfReq id=0x1]

rcvd [LCP ConfRej id=0x1 ]

sent [LCP ConfReq id=0x2 ]

rcvd [LCP ConfAck id=0x2 ]

rcvd [LCP ConfReq id=0x1]

sent [LCP ConfAck id=0x1]

rcvd [CHAP Challenge id=0x1 , name = ""]

Warning - secret file /etc/ppp/chap-secrets has world and/or group access

sent [CHAP Response id=0x1 , name = "smsong"]

rcvd [CHAP Success id=0x1 ""]

CHAP authentication succeeded

CHAP authentication succeeded

sent [CCP ConfReq id=0x1 ]

sent [IPCP ConfReq id=0x1]

rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]

Protocol-Reject for 'Compression Control Protocol' (0x80fd) received

rcvd [IPCP ConfReq id=0x1]

sent [IPCP ConfNak id=0x1 ]

rcvd [IPCP ConfRej id=0x1 ]

sent [IPCP ConfReq id=0x2 ]

rcvd [IPCP ConfReq id=0x2]

sent [IPCP ConfAck id=0x2]

rcvd [IPCP ConfNak id=0x2 ]

sent [IPCP ConfReq id=0x3 ]

rcvd [IPCP ConfAck id=0x3 ]

Could not determine remote IP address: defaulting to 10.64.64.64

local IP address 10.144.202.159

remote IP address 10.64.64.64

primary DNS address 211.138.200.69

secondary DNS address 211.103.13.101

Script /etc/ppp/ip-up started (pid 4578)

Script /etc/ppp/ip-up finished (pid 4578), status = 0x0

使用ctrl+c可以断开连接,这样一般不太好测试是不是连接上了(遇有开发不上的控制台只有一个的原因),可以去掉/etc/ppp

/peers/gprs文件中的nodetach参数,要用ping,你需要将eth0即网口给禁用掉,这样ping才会通过ppp0端口寻找路由连接外

网。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

可以用命令tail -f /var/log/messages看到日志:

Mar 20 20:55:55 localhost pppd[4557]: pppd 2.4.4 started by root, uid 0

Mar 20 20:55:56 localhost chat[4558]: timeout set to 15 seconds

Mar 20 20:55:56 localhost chat[4558]: abort on (\nBUSY\r)

Mar 20 20:55:56 localhost chat[4558]: abort on (\nNO ANSWER\r)

Mar 20 20:55:56 localhost chat[4558]: abort on (\nRINGING\r\n\r\nRINGING\r)

Mar 20 20:55:56 localhost chat[4558]: timeout set to 40 seconds

Mar 20 20:55:56 localhost chat[4558]: send (^MAT^M^M)

Mar 20 20:55:56 localhost chat[4558]: expect (OK)

Mar 20 20:55:56 localhost chat[4558]: ^M^M

Mar 20 20:55:56 localhost chat[4558]: OK

Mar 20 20:55:56 localhost chat[4558]: -- got it

Mar 20 20:55:56 localhost chat[4558]: send (ATS0=0^M^M)

Mar 20 20:55:56 localhost chat[4558]: expect (OK)

Mar 20 20:55:56 localhost chat[4558]: ^M

Mar 20 20:55:56 localhost chat[4558]: AT^M

Mar 20 20:55:56 localhost chat[4558]: OK

Mar 20 20:55:56 localhost chat[4558]: -- got it

Mar 20 20:55:56 localhost chat[4558]: send (ATE0V1^M^M)

Mar 20 20:55:56 localhost chat[4558]: expect (OK)

Mar 20 20:55:56 localhost chat[4558]: ^M

Mar 20 20:55:56 localhost chat[4558]: ^M^M

Mar 20 20:55:56 localhost chat[4558]: OK

Mar 20 20:55:56 localhost chat[4558]: -- got it

Mar 20 20:55:56 localhost chat[4558]: send (AT+CGDCONT=1,"IP","CMNET"^M^M)

Mar 20 20:55:57 localhost chat[4558]: expect (OK)

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: ATS0=0^M^M

Mar 20 20:55:57 localhost chat[4558]: OK

Mar 20 20:55:57 localhost chat[4558]: -- got it

Mar 20 20:55:57 localhost chat[4558]: send (ATDT*99***1#^M^M)

Mar 20 20:55:57 localhost chat[4558]: expect (CONNECT)

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: ^M^M

Mar 20 20:55:57 localhost chat[4558]: OK^M

Mar 20 20:55:57 localhost chat[4558]: ATE0V1^M^M

Mar 20 20:55:57 localhost chat[4558]: OK^M

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: OK^M

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: OK^M

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: OK^M

Mar 20 20:55:57 localhost chat[4558]: ^M

Mar 20 20:55:57 localhost chat[4558]: CONNECT

Mar 20 20:55:57 localhost chat[4558]: -- got it

Mar 20 20:55:57 localhost chat[4558]: send (^M)

Mar 20 20:55:57 localhost pppd[4557]: Serial connection established.

Mar 20 20:55:57 localhost pppd[4557]: Using interface ppp0

Mar 20 20:55:57 localhost pppd[4557]: Connect: ppp0 /dev/ttyS0

Mar 20 20:55:58 localhost pppd[4557]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access

Mar 20 20:56:00 localhost pppd[4557]: Warning - secret file /etc/ppp/chap-secrets has world and/or group access

Mar 20 20:56:00 localhost pppd[4557]: CHAP authentication succeeded

Mar 20 20:56:00 localhost pppd[4557]: CHAP authentication succeeded

Mar 20 20:56:01 localhost kernel: PPP Deflate Compression module registered

Mar 20 20:56:02 localhost pppd[4557]: Could not determine remote IP address: defaulting to 10.64.64.64

Mar 20 20:56:02 localhost pppd[4557]: local IP address 10.144.202.159

Mar 20 20:56:02 localhost pppd[4557]: remote IP address 10.64.64.64

Mar 20 20:56:02 localhost pppd[4557]: primary DNS address 211.138.200.69

Mar 20 20:56:02 localhost pppd[4557]: secondary DNS address 211.103.13.101


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7183676.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存