移植rp-pppoe到s3c2440(mini2440)实现ADSL拨号上网
在这个基础上移植的:http://blog.csdn.net/yang_rong_yong/article/details/4292123
一:总的来说可以分四点
1:arm linux 内核支持ppp
2: install ppp-2.4.4 (rp-pppoe要ppp的支持才能正常运行)。
3: install rp-pppoe。
4:把步骤(2)(3)中生成的相应文件下载到目标板,根据相应提示适当修改就行了。
二:需要的包
移植需要rp-pppoe和ppp。我用的是rp-pppoe3.10和ppp-2.4.4的组合。
三:具体过程
1: 配置编译内核
在内核原代码主目录下 make menuconfig
-> Device Drivers -> Network device support -> PPP (point-to-point protocol) 中,选中所有ppp选项。退出,保存配置,重新执行make zImage.
将arch/arm/boot/下的zImage下载到开发板上重启系统。
2: install ppp-2.4.4 (Mini2440内核已经自带,不用移植)
下载的是ppp-2.4.4.tar(http://www.samba.org/ftp/ppp/)解压。进入源码目录。执行./configure。
完成后。执行make,这里要进行交叉编译。因此,我在这里指定CC为arm gcc,整个命令为
make CC=arm-linux-gcc
(NOTE: 这里为你自己机子上的交叉编译器,根据具体名字而定)
编译完成后,进入pppd目录,将生成的pppd可执行文件拷贝到目标板文件系统的/usr/sbin下。
3:install rp-pppoe3.10
1)下载rp-pppoe3.10(http://www.roaringpenguin.com/files/download/)后,解压源码。进入源码目录。再进入src目录。
2)执行./configure后,程序报生成两个makefile文件,一是在src 下的,一是在libevent下的。然后再手工修改其中的gcc为arm-linux-gcc.
3)maker后src目录下会产生pppoe,pppoe-server,pppoe-sniff,pppoe-relay。把这些程序下载到目标机/usr/sbin目录下。
复制配置文件
1)rp-pppoe-3.10/configs目录下是rp-pppoe所需的配置文件,把这些文件全部复制到目标机的/etc/ppp目录下(没有就自己建一个)。
2)拨号相关的脚本程序共有6个,在rp-pppoe-3.10/scripts中。
pppoe-setup:配置程序,把输入的帐号密码等信息存入配置文件。
pppoe-start:拨号程序,连接网络。
pppoe-stop:断开。
pppoe-status:查看连接状态。
pppoe-connect:连接网络,被pppoe-start所调用。
pppoe-init:初始化,被其他程序调用。
把这些脚本也放到/usr/sbin目录下。
4: 在目标板上测试运行
./pppoe-setup(下面是一些说明供参考)
>> Enter your PPPoE user name: ——此处输入拨号帐号的用户名
>> Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where n is a number. (default eth0): ——输eth0(视情况而定)
>> Enter the demand value (default no): ——输no
>> Enter the DNS information here: ——输IP(eg:69.45.45.34)(视当地运营商的DNS服务器IP而定)
>> Please enter your PPPoE password: ——输网通用户口令
>> Choose a type of firewall (0-2): ——输0 (0为不要防火墙)
>> Accept these settings and adjust configuration files (y/n)? ——输y
执行pppoe-start后。出现connected!的提示,说明ADSL已拨号成功,可以ping 下baidu看通不。
Welcome to the Roaring Penguin PPPoE client setup. First, I will run
some checks on your system to make sure the PPPoE client is installed
properly...
Oh, dear, I don't see the file '/etc/ppp/pppoe.conf' anywhere. Please
ping 115.239.210.27