ppp与pppoe 交叉编译移植

    xiaoxiao2021-03-26  35

    ppp 与 pppoe 交叉编译移植

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

     

    一:总的来说可以分四点

    1arm linux 内核支持ppp

    2: install  ppp-2.4.4 (rp-pppoeppp的支持才能正常运行)

    3: install  rp-pppoe

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

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

    二:需要的源码包

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

    ppp-2.4.5.tar.gz  下载地址:ftp://ftp.samba.org/pub/ppp

    rp-pppoe-3.8.tar.gz 下载地址:http://download.chinaunix.net/download/0010000/9073.shtml

    使用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->

           <M> PPP (point-to-point protocol) support

           [*]   PPP multilink support

           <M> PPP support for async serial ports

           <M> PPP support for sync tty ports

           <M> SLIP (serial line) support

           [*]   CSLIP compressed headers

    Device Drivers -> Network device support -> <M> 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,所有的ararm-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信息.

    转载请注明原文地址: https://ju.6miu.com/read-662709.html

    最新回复(0)