对于ppp的内容,这里我们主要讲解一下内核中的编制。那么除了给出了内核ppp编制的方法和源码,并且分析了一些其中容易出现的错误。
在不少设置中,我们都需要进行一下PPP的内核编制。那么对于PPP协议的一些基本内容就不再进行赘述了。这次我们则主要讲解一下编译内核使支持ppp的内容。希望对大家有用。
编译内核使支持ppp
- makemenuconfig
- networkdevicesupport
- pppsupport
- pppmultilinksupport
- pppsupportforasyncserialports
- pppsupportforsyncttyports
- pppdeflatecompression
- pppBSD_compresscompression
- pppoverEthernet
- SLIP(serialline)support
- CSLIPcompressedheaders
3:编译拨号工具pppd chat,选择:
- networkapplication
- pppd
- rp-pppoe
- miscellanenousapplication
- chat
4: 建立设备节点
- ppp,c,108,0
5: 创建resolv.conf文件,配置dns(可以不设,在/etc/ppp/options 选项中使用 usepeerdns )
- /etc/ppp/resolv.conf
- nameserver211.136.20.203
- nameserver211.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,那么,拨号就是一件很简单的事了.
知优网 » 内核ppp编制和错误分析