一、配置内核支持PPP
1、进入内核源码根目录
# cd kernel
2、配置内核
# make menuconfig
进入菜单,选中一下选项
Device Drivers --->
-*- Network device support --->
{*} PPP (point-to-point protocol) support
[*] PPP multilink support (EXPERIMENTAL)
[*] PPP filtering
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
<*> PPP Deflate compression
<*> PPP BSD-Compress compression
<*> PPP MPPE compression (encryption) (EXPERIMENTAL)
<*> PPP over Ethernet (EXPERIMENTAL)
<*> PPP over ATM
<*> PPP on L2TP Access Concentrator (NEW)
<*> PPP on PPTP Network Server (NEW)
<*> SLIP (serial line) support
[*] CSLIP compressed headers
3、重新编译内核
# make uImage
二、移植ppp
1、下载ppp源码
ftp://ftp.samba.org/pub/ppp/
2、解压ppp源码
# tar -xvf ppp-2.4.7.tar.gz
3、进入ppp源码
# cd ppp-2.4.7
4、执行配置脚本
# ./configure
5、编译源码
# make CC=arm-linux-gcc
6、复制文件到开发板
将./chat/chat复制到开发板的/usr/bin目录
将./pppd/pppd复制到开发板的/usr/bin目录
将./pppdump/pppdump复制到开发板的/usr/bin目录
将./pppstats/pppstats复制到开发板的/usr/bin目录
7、在开发板中建立ppp设备
# mknod /dev/ppp c 108 0
c:代表字符设备
108:主设备号
0:次设备号
# chmod 600 /dev/ppp
8、编辑开发板/etc/modules.conf文档
增加一行options ppp_async flag_time=0
9、编辑开发板/etc/resolv.conf添加域名解析服务器地址
nameserver 211.136.17.107
211.136.17.107为GPRS域名解析服务器DNS地址
10、检查开发板/etc/host.conf脚本,确保有order hosts,bind
11、在开发板/etc/ppp/peers中建立gprs文件
#/etc/ppp/peers/gprs
# Usage: root>pppd call gprs
/dev/s3c2410_serial1 #改成自己的端口名
115200 #改成自己串口波特率
nocrtscts #使用硬件流控制使用RTS和CTS信号
modem #这个参数使得pppd进程将等待模块发回的CD (Carrier Detect)信号,与local真好相反
#noauth #不需要ISP认证本身
debug #把调试信息输出到/var/log/messages,在调试成功后去掉它,以减少垃圾的产生。
nodetach
#hide-password
usepeerdns #以下的3个参数一般不可少
noipdefault
defaultroute #通过PPP链路添加默认网络路由
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的分配。
12、在开发板/etc/ppp中建立gprs-connect-chat文件
gprs-connect-chat文件是在ppp 底层会话的时候给chat进程的参数每行是一个“期望/发送”的组合序列
#!/bin/sh
#
# File:
# /etc/ppp/gprs-connect-chat
#命令字说明
#TIMEOUT:超时时间,
#SAY:输出内容,如:SAY "/n内容/n"
# The actual chat script:
exec chat /
TIMEOUT 5 /
ECHO ON /
ABORT '/nBUSY/r' /
ABORT '/nERROR/r' /
ABORT '/nNO ANSWER/r' /
ABORT '/nNO CARRIER/r' /
ABORT '/nNO DIALTONE/r' /
ABORT '/nRINGING/r/n/r/nRINGING/r' /
'' AT /
TIMEOUT 12 /
SAY "Press CTRL-C to close the connection at any stage!" /
SAY "/ndefining PDP context.../n" /
OK AT+CGATT? / #这些都是标准的at命令,建议查看随模块的at命令手册
OK AT+CGATT=1 /
OK AT+CGATT? /
OK 'AT+CGDCONT=1,"IP"' / #设置isp接入网关为中国移动的cmnet
OK AT+CGQREQ=1,0,0,3,0,0 /
OK AT+CGACT=1,1 /
OK ATDT*99***1# / #中国移动gprs的接入号吗
TIMEOUT 120 /
SAY "/nwaiting up to 2 mintues for connect.../n"/
CONNECT "" /
SAY "/nConnected. now logging in.../n" /
SAY "/nIf the following ppp negotiations fail,/n" /
SAY "try restarting the phone./n"
# NOTE: PDP context可能会因你的猫不同而有所区别,查它的手册来写吧
13、在开发板/etc/ppp中建立gprs-disconnect-chat文件
#!/bin/sh
#
# File:
# /etc/ppp/gprs-disconnect-chat
#
# send break
exec /usr/sbin/chat -V -s -S /
ABORT "BUSY" /
ABORT "ERROR" /
ABORT "NO DIALTONE" /
SAY "/nSending break to the modem/n" /
"" "/K" /
"" "+++ATH" /
SAY "/nPDP context detached/n"
14、在开发板/etc/ppp中建立chap-secrets文件
# File:
# /etc/ppp/chap-secrets
# 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 *
15、在开发板/etc/ppp中建立pap-secrets文件
# File:
#/etc/ppp/pap-secrets
# Secrets for authentication using PAP
# client server secret IP addresses
####### redhat-config-network will overwrite this part!!! (begin) ##########
####### redhat-config-network will overwrite this part!!! (end) ############
smsong * "" *
16、在开发板中运行ppp
# pppd call gprs
17、查看日志
# tail -f /var/log/messages
阅读(3538) | 评论(0) | 转发(0) |