Chinaunix首页 | 论坛 | 博客
  • 博客访问: 495095
  • 博文数量: 63
  • 博客积分: 1187
  • 博客等级: 少尉
  • 技术积分: 706
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-05 16:53
个人简介

Must Be

文章分类

全部博文(63)

文章存档

2019年(1)

2017年(4)

2016年(6)

2015年(2)

2014年(1)

2013年(3)

2012年(10)

2011年(36)

我的朋友

分类: 嵌入式

2011-06-09 15:55:00

1. 加入内核支持:
Device Drivers -> Network device support->PPP (point-to-point protocol) support
PPP multilink support (EXPERIMENTAL)
PPP support for async serial ports
PPP support for sync tty ports
PPP Deflate compression
PPP BSD-Compress compression


2. 下载ppp
wget -c ftp://ftp.samba.org/pub/ppp/ppp-2.4.5.tar.gz

3. 交叉编译
# ./configure
# make CC=arm-linux-gcc

4. 将目录下pppd chat pppdump pppstats下可执行程序pppd, chat, pppdump, pppstats拷贝到开发板/usr/sbin目录下

5. mkdir /etc/ppp; mkdir /etc/ppp/peers
然后建立如下4个文件:
1)/etc/ppp/peers/gprs
/dev/s3c2410_serial1
115200
nocrtscts ##important! 一定要注意这里,开发板与PC机不同,没有硬件流控,导致我chat总是没有回应,折腾了一上午才发现!
nodetach   ##去掉该项,拨号就在后台运行。
noauth
usepeerdns
noipdefault
ipcp-accept-local
ipcp-accept-remote
defaultroute
user itlanger
connect '/usr/sbin/chat -s -v -f /etc/ppp/chat-gprs-connect'

2) /etc/ppp/chat-gprs-connect
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'

TIMEOUT 5
'' AT
OK ATE0

TIMEOUT 60
SAY "Press CTRL-C to break the connection process.\n"
OK AT+CGREG=1
OK AT+CGATT=1
OK 'AT+CGDCONT=1,"IP","CMNET"'
OK AT+CGQMIN=1,0,0,0,0,31
OK AT+CGACT=1,1
OK ATDT*99***1#

TIMEOUT 60
SAY "Waiting for connect...\n"
CONNECT ''
SAY "Connect Success!\n"

3) /etc/ppp/pap-secrets
itlanger        *       ''

4) /etc/ppp/chap-secrets
itlanger        *       ''


6. 进行拨号连接:
[root@srp-arm /]# /usr/sbin/pppd call gprs
timeout set to 5 seconds
abort on (\nBUSY\r)
abort on (\nERROR\r)
abort on (\nNO ANSWER\r)
abort on (\nNO CARRIER\r)
abort on (\nNO DIALTONE\r)
timeout set to 5 seconds
send (AT^M)
expect (OK)

^M
OKOK
-- got it

send (ATE0^M)
timeout set to 60 seconds
Press CTRL-C to break the connection process.
expect (OK)

^M

^M
OKOK
-- got it

send (AT+CGREG=1^M)
expect (OK)

^M

^M
OKOK
-- got it

send (AT+CGATT=1^M)
expect (OK)

^M

^M
OKOK
-- got it

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

^M

^M
OKOK
-- got it

send (AT+CGQMIN=1,0,0,0,0,31^M)
expect (OK)

^M

^M
OKOK
-- got it

send (AT+CGACT=1,1^M)
expect (OK)

^M

^M
OKOK
-- got it

send (ATDT*99***1#^M)
timeout set to 60 seconds
Waiting for connect...
expect (CONNECT)

^M

^M
CONNECTCONNECT
-- got it

send (^M)
Connect Success!

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/s3c2410_serial1
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Warning - secret file /etc/ppp/chap-secrets has world and/or group access
CHAP authentication succeeded
CHAP authentication succeeded
not replacing existing default route via 192.168.0.1
local IP address 10.24.19.4
remote IP address 192.168.254.254
primary   DNS address 211.137.160.5
secondary DNS address 211.136.17.107



7. 解决问题:
1)解决出现的警告:
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Warning - secret file /etc/ppp/chap-secrets has world and/or group access
只要去掉这两个文件的权限即可:
chmod 600 /etc/ppp/*-secrets

2) 后台拨号:
去掉gprs文件中的nodetach
并且 mkdir /var/log

3)关闭ppp连接
在控制终端中用CTRL-C就可以断开连接
在后台可以用如下脚本文件实现: /etc/ppp/ppp-off
#!/bin/sh

if [ -r /var/run/ppp0.pid ]; then
   kill -INT `cat /var/run/ppp0.pid`
fi

if [ ! "$?" = "0" ]; then
    rm -f /var/run/ppp0.pid
        echo "ERROR: close ppp0 failed!"
        exit 1
fi
              
echo "SUCCESS: ppp0 was closed!"
exit 0


8. 发现使用ppp拨号后,就再也不用AT指令建立socket连接了,方便多了。
哈哈。。。
阅读(3752) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~