在ARM开发板上Linux下移植PPPOE

来源:互联网 发布:杀红眼知乎 编辑:程序博客网 时间:2024/06/10 06:24

目标板信息
Target: Telechips TCC8900 development board
Linux kernel: Linux 2.6.29
Ethernet: DM9000

软件
交叉编译器:arm-2008q3-72
ppp 2.4.5
rp-pppoe 3.10

移植方法
1. 编译Linux内核,使得其支持PPP
2. 交叉编译ppp及rp-pppoe
3. 执行pppoe或pppd脚本

编译Linux内核,使得其支持PPP
在.config中将以下选项使能:
Device Drivers -> Network device support -> PPP (point-to-point protocol)
选中PPP的全部选项
Device Drivers -> Network device support -> Universal TUN/TAP device driver support

交叉编译ppp及rp-pppoe
1. 下载并编译:ppp (http://ppp.samba.org/ppp/download.html)
git clone git://ozlabs.org/~paulus/ppp.git
make CC=arm-none-linux-gnueabi-gcc
编译完后得到可执行文件pppd, 拷贝到目标板上的/sbin目录

2. 下载并编译:rp-pppoe (http://www.roaringpenguin.com/products/pppoe)
cd src
./confiugre –host=arm-linux
打开Makefile及libevent/Makefile文件,修改所有的gcc为arm-none-linux-gnueabi-gcc

编译完后得到可执行文件: pppoepppoe-serverpppoe-sniffpppoe-relay
拷贝到目标板上的/sbin目录

将./configs下的脚本文件拷贝到目标板上的/etc/ppp/,并将此目录加上可写权限

将./scripts下的所有文件拷贝到目标板上的/sbin,并修改其中的部分内容(如目录)使得其能在开发板上运行

执行pppoe和pppd的脚本
1. 首先执行pppoe-setup设置用户名,密码,DNS等相关内容

2. 执行脚本:pppoe-start,或者直接执行pppd:
pppd pty ‘pppoe -p /etc/ppp/pppoe.conf-pppoe.pid.pppd -I eth0 -T 30 -U -m 1412′ ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nodeflate nopcomp novj novjccomp user username lcp-echo-interval 20 lcp-echo-failure 3
/* 将username改为自己的用户名 */