ppp linux交叉编译,ppp与pppoe 交叉编译移植

(交叉编译链为arm-hismall-linux-)

一:总的来说可以分四点

1:arm linux 内核支持ppp

2:

install ppp-2.4.4 (rp-pppoe要ppp的支持才能正常运行)。

3:

install rp-pppoe。

4:把步骤(2)(3)中生成的相应文件下载到目标板,根据相应提示适当修改就行了。

(有的文档说需要交叉编译libcap 源码包下载地址为:测试不需要)

二:需要的源码包

移植需要rp-pppoe和ppp。我用的是rp-pppoe3.8和ppp-2.4.5的组合。

使用rp-pppoe-3.11版本时,编译出错,原因至今不明,故选用rp-pppoe-3.8版本)

三:具体过程

1: 配置编译内核

在内核原代码主目录下make

menuconfig内核加入了ppp,socket 等选项

Device

Drivers -> Network device support -> PPP

(point-to-point protocol)中,选中所有ppp选项:

Device

Drivers ->

Network Device Support->

PPP (point-to-point protocol)

support

[*] PPP multilink

support

PPP support for async serial

ports

PPP support for sync tty

ports

SLIP (serial line)

support

[*] CSLIP compressed

headers

Device

Drivers -> Network device support ->

Universal TUN/TAP device driver

support

退出,保存配置,重新执行make

bzImage.

将arch/arm/boot/下的zImage下载到开发板上重启系统。

我的内核设置为:

Device

Drivers -> Network device support -> PPP

(point-to-point protocol)中,选中所有ppp选项:

Device

Drivers ->

Network Device Support->

PPP (point-to-point protocol)

support

[*] PPP multilink

support

PPP support for async serial

ports

PPP support for sync tty

ports

SLIP (serial line)

support

[*] CSLIP compressed

headers

Device

Drivers -> Network device support ->

Universal TUN/TAP device driver

support

需要将未安装的模块使用insmod命令加载.ko。 也可以直接向上面那样,编译出具有这些功能的内核(推荐)

2: install ppp-2.4.5

解包

# tar

zxvf ppp-2.4.5.tar.gz

配置

# cd

ppp-2.4.5

#

./configure

编译

# make

CC=arm-hismall-linux-gcc

(这里arm-hismall-linux-gcc交叉编译器)

编译完成后,进入pppd目录,将生成的pppd可执行文件拷贝到目标板文件系统的/usr/sbin下。

将pppd目录下的已经编译好的pppd文件拷贝至开发板短的文件系统的/usr/sbin目录下,在板子上输入pppd,看看是否有乱码出来(若内核没有加载ppp模块,则提示内核不支持),如果有乱码,恭喜这一步ok了

3:install

rp-pppoe-3.8

解包

# tar

zxvf rp-pppoe-3.8.tar.gz

配置

# cd

rp-pppoe-3.8/src

#

./confiugre --host=arm-linux

修改Makefile

# vim

Makefile//将其中所有的gcc改为arm-hismall-linux-gcc,所有的ar改arm-hismall-linux-ar

(这里arm-hismall-linux-gcc交叉编译器)

编译

#

make

安装

# make

install

4:把步骤(2)(3)中生成的相应文件下载到目标板

make

install之后,把宿主pc机中/usr/sbin目录下产生的关于pppoe的所有文件(pppoe,pppoe-server, pppoe-sniff, pppoe-relay,

pppoe-setup, pppoe-start, pppoe-stop, pppoe-status,pppoe-connect

)拷贝到开发板/usr/sbin目录下

(注意:其中pppd不是宿主机/usr/sbin目录中的pppd,而是../ppp-2.4.5/pppd/pppd)

五: 全部移植结束,在开发板下进行安装和调试

1:目标板配置

接好网线以后,直接输入pppoe-setup

#

pppoe-setup

安装提示输入你的信息,在dns那可以暂时选择server(这会使接下来ping的时候只能用

ip ping 不能直接跟网址,如果你知道你所在网络的接入商的dns的话就填进入),防火墙选择0,ok.如果这个时候就使用pppoe-start

#

pppoe-start

开始连接的话,很大情况下你会得到timeout的提示,那么我们该怎么做呢?需要在dev目录下创建一个pts的文件夹,进入pts,创建节点mknod 0 c 136 0:mknod1 c 136 1.每次连接都需要建立,比较麻烦,所以还是把这几条指令写进脚本吧.如果不错的话,一般都会得到一个connect信息.

刘席廷

2002-08-21

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值