PPP协议的应用非常广泛,我们常用的设置包括ADSL等有关的拨号设置。那么这里我们则重点讲解一下PPP协议的内核编制,让我们一起来了解一下在内核中,如何设置PPP吧。
编译内核使支持ppp
- make menuconfig
- network device support
- ppp support
- ppp multilink support
- ppp support for async serial ports
- ppp support for sync tty ports
- ppp deflate compression
- ppp BSD_compress compression
- ppp over Ethernet
- SLIP(serial line )support
- CSLIP compressed headers
3:编译拨号工具pppd chat,选择:
- network application
- pppd
- rp-pppoe
- miscellanenous application
- chat
4: 建立设备节点
- ppp,c,108,0
5: 创建resolv.conf文件,配置dns(可以不设,在/etc/ppp/options 选项中使用 usepeerdns )
- /etc/ppp/resolv.conf
- nameserver 211.136.20.203
- nameserver 211.136.17.107
6:创建拨号脚本(脚本在redhat9下成功拨号移植到开发板上去的)
- /bin : ppp-on
- ppp-off
- /etc/ppp:
- pap-secrets
- chap-secrets
- options
如果想要在开发板察看调试信息,那么将syslogd 编译进内核。进入uclinux后,可以在/var/log/messages处察看调试信息。
另外,以下是我总结出的一些容易出错的LOG信息。
“Lcp : timeout sending config-requests”
这种情况一般是没有连接上server,所以出错的情况有很多种,比如拨的号码填写错误,串口,波特率是否正确 等
“authentication 相关的”
在rh9的下,默认是“auth”,所以,认证用户名,密码都不能为空
(貌似cdma采用的是chap认证方式,gprs采用的是pap认证方式 )
“lcp terminated by peer”
一般情况下是认证失败导致的,检查options ,pap-secrets,chap-secrets等文件
“connect scripts failed”
这样的错误,一般是由connect 选项引起的,检查你的脚本路径,串口,波特率是否正确。
还有一种错误信息是在chat 会话中出现的 比如
- sending( )
- expected ()
- alarm
这样的情况得检查chat 会话。
***一种情况 : “Serial line is looped back.“
如果你遇到这种情况,那就证明你运气实在太好了 - -! ,要解决这个问题,可以检查串口驱动,串口的连接.另外,在chat会话后加上"~",也许是你解决问题的办法.
-mn no magic
或者改波特率,有的moden对波特率有特别的限制。
总之,拨号前一定要明白ppp实现原理,所以,ppp-howto,FAQ是必须得看得,我想,如果你真的看懂了howto,FAQ,那么,拨号就是一件很简单的事了.