PPP拨号在三星ARM2410平台上的嫁接

出处:互联网    发布于:2011-07-05 10:31:47

 

  点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP.除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

  本次PPP移植是在三星arm2410的平台上进行的,所用的工作环境为:

  Kernel: 2.4.18

  Sysvinit:2.86

  Tinylogin:1.4

  Glibc: 2.2.5

  CC:3.3

  PPP: 2.4.1

  U-boot:1.1.3

  一、具体操作步骤

  首先编译内核支持 PPP:

  $make menuconfig l

  $make ARCH=arm Cross_COMPILE=//arm-linux- zImage

  $./mkimage2410 uImage

  其中mkimage2410文件来自u-boot1.1.1 需要根据你的路径修改mkimage2410的内容,指定mkimage文件的位置。

  第二步,制作文件系统:

  1. 编译Busybox

  $make menuconfig

  Build options ---->

  [*] Build BusyBox as a static binary (no shared libs)

  [*] Do you want to build BusyBox with a Cross Compiler?

  (/usr/local/arm/3.3/bin/arm-linux-) Cross Compiler prefix

  $make

  $make PREFIX=//rootfs/ install

  注意:Busybox的README中说用make busybox 来编译busybox但是这样做好像有点问题,有时不能成功,其实直接用make就行了。

  PPP的特点:

  PPP协议是一种点--点串行通信协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP.PPP是面向字符类型的协议。

  2. 编译System V init

  $cd src

  $make CROSS=//arm-linux- PREFIX=//rootfs/ all

  $make PREFIX=//rootfs install

  3. 编译 Tinylogin

  $make CROSS=//arm-linux- PREFIX=//rootfs/ all

  $make PREFIX=//rootfs install

  4.交叉编译 PPP:

  交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓 平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。

  $export CROSS_COMPILE=//arm-linux-

  $export CC=//arm-linux-gcc

  $make

  这样就在目录: //ppp-2.4.1/pppd,//ppp-2.4.1/pppdump,//ppp-2.4.1/pppstats and //ppp-2.4.1/chat下得到了可执行程序pppd,pppdump,pppstats 和 chat.

  将它们复制到 //rootfs/usr/sbin 目录下

  移到文件系统根目录

  #mkdir etc dev

  #cd dev

  #mknod 600 console 5 1

  #mknod ppp c 108 0

  #cd

  配制/etc目录下的文件和文件夹,如: inittab fstab host.conf rc.d以便内核参正确启动文件系统。

  ,从//3.3/lib目录下选出所需要的库文件放到文件系统根目录rootfs/lib下面。

  $su

  #mkdir tmp/initrd

  #dd if=/dev/zero of=images/initrd.img bs=1k count=8192

  #/sbin/mke2fs –F –v –m0 images/initrd.img

  #mount –o loop images/initrd.img tmp/initrd

  #cp –av rootfs/* tmp/initrd

  #umount tmp/initrd

  #exit

  $gzip –9 < images/initrd.img > images/initrd.bin

  这样,就得到了我们所需要的uImage 和initrd.bin.将U-boot烧到板子上并设置好环境变量后就能通过tftpkernel 和ramdisk到目标板上运行了。

  总结:嵌入式linux下 应用程序的移植,实际上是一个系统平台转换的过程。能先在宿主机(X86)上对程序源文件进行从头到尾的编译、连接,让它首先在宿主机上跑起来。弄清 每一个步骤及其工作的具体内容,在向目标板移植的过程中一定要保证交叉编译,其它文件配置和操作步骤跟宿主机上几乎完全一样。

 



  
关键词:ARM

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!