Linux嵌入式中PPP和PPP-ON腳本的編寫
在Linux嵌入式中,我們可以來完成GPRS腳本的編寫。其中涉及了PPP的內(nèi)容。這篇文章中,我們就講解了如何在Liod平臺(tái)上進(jìn)行ppp撥號(hào),實(shí)現(xiàn)GPRS上網(wǎng)的知識(shí)。首先我們來看一下硬件平臺(tái):億道Liod平臺(tái)(基于PXA270)。操作系統(tǒng):嵌入式Linux。
第一步:如果內(nèi)核不支持ppp撥號(hào),則要重新編譯內(nèi)核,添加對(duì)ppp的支持
- <*> 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
 
然后重新燒寫新生成的內(nèi)核映象!
    
第二步:下載ppp-2.4.1源碼包,交叉編譯生成撥號(hào)所需的pppd和chat這兩個(gè)程序.
源代碼下載網(wǎng)址: ftp://ftp.samba.org/pub/ppp/ 解壓源代碼包,進(jìn)入目錄,進(jìn)行交叉編譯,這里所用的交叉編譯器是arm-linux-gcc(version 3.3.2)
- #cd /root/gprs/ppp-2.4.1
 - #./configure
 - #make CC=arm-linux-gcc
 
撥號(hào)所用到的程序就是/root/gprs/ppp-2.4.1/pppd/下的pppd,和/root/gprs/ppp-2.4.1/chat/下的chat程序?yàn)榱苏{(diào)試方便,我在CF卡上新建一個(gè)目錄pppdial,將pppd和chat這兩個(gè)程序拷貝到此目錄下!
第三步:配置撥號(hào)腳本:
將 /root/gprs/ppp-2.4.1/scripts/下的ppp-on,ppp-on-dialer,ppp-off這三個(gè)腳本拷貝到/mnt/cf/pppdial/下,然后修改腳本:
1.ppp-on腳本具體要修改的內(nèi)容如下:
- TELEPHONE=*99***1# # The telephone number for the connection
 - ACCOUNT= # The account name for logon (as in 'George
 - Burns')
 - PASSWORD= # The password for this account (and 'Gracie A
 - llen')
 - LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
 - REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
 - NETMASK=255.255.255.0 # The proper netmask if needed
 - # Export them so that they will be available at 'ppp-on-dialer' time.
 - export TELEPHONE ACCOUNT
 - DIALER_SCRIPT=/mnt/cf/pppdial/ppp-on-dialer
 - # Initiate the connection
 - exec /mnt/cf/pppdial/pppd debug lock nocrtscts /dev/ttyS1 19200 \
 - asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
 - noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT usepeerdns
 
2.修改ppp-on-dialer腳本:
- #!/bin/sh
 - #
 - # This is part 2 of the ppp-on script. It will perform the connection
 - # protocol for the desired connection.
 - #
 - exec /sbin/chat -v \
 - TIMEOUT 5 \
 - ABORT '\nBUSY\r' \
 - ABORT '\nNO ANSWER\r' \
 - ABORT '\nRINGING\r\n\r\nRINGING\r' \
 - '' AT+CGDCONT=1,IP,CMNET \
 - 'OK' AT \
 - 'OK-+++\c-OK' ATH0 \
 - TIMEOUT 30 \
 - OK ATDT$TELEPHONE \
 - CONNECT
 
3.在Liod板上/etc/ppp/resolv.conf文件中加上
- nameserver 211.136.20.203
 - nameserver 211.136.18.171
 
第四步:連接gprs
gprs模塊通過串口連接到板子上的藍(lán)牙串口(/dev/ttyS1),因?yàn)長(zhǎng)iod板的FFUART用來做調(diào)試串口了,即使通過telnet登錄Liod,而將串口0騰出來用來連接GPRS模塊,撥號(hào)也會(huì)失敗.因?yàn)閺拇?會(huì)輸出調(diào)試信息,對(duì)撥號(hào)過程造成干擾.
關(guān)閉默認(rèn)網(wǎng)絡(luò)設(shè)備: ifconfig eth0 down
pppd撥號(hào): ./ppp-on
(注意:一定要先關(guān)閉閉eth0再撥號(hào),否則即使撥號(hào)能得到IP地址,也會(huì)因?yàn)槁酚慑e(cuò)誤而訪問不了外網(wǎng))















 
 
 
 
 
 
 