淺述PPP內核編制
PPP協(xié)議的應用非常廣泛,我們常用的設置包括ADSL等有關的撥號設置。那么這里我們則重點講解一下PPP協(xié)議的內核編制,讓我們一起來了解一下在內核中,如何設置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: 建立設備節(jié)點
- ppp,c,108,0
5: 創(chuàng)建resolv.conf文件,配置dns(可以不設,在/etc/ppp/options 選項中使用 usepeerdns )
- /etc/ppp/resolv.conf
- nameserver 211.136.20.203
- nameserver 211.136.17.107
6:創(chuàng)建撥號腳本(腳本在redhat9下成功撥號移植到開發(fā)板上去的)
- /bin : ppp-on
- ppp-off
- /etc/ppp:
- pap-secrets
- chap-secrets
- options
如果想要在開發(fā)板察看調試信息,那么將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,那么,撥號就是一件很簡單的事了.