本次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[page]
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烧到板子上并设置好环境变量后就能通过tftp下载kernel 和ramdisk到目标板上运行了。
总结:嵌入式linux下 应用程序的移植,实际上是一个系统平台转换的过程。最好能先在宿主机(X86)上对程序源文件进行从头到尾的编译、连接,让它首先在宿主机上跑起来。弄清 每一个步骤及其工作的具体内容,在向目标板移植的过程中一定要保证交叉编译,其它文件配置和操作步骤跟宿主机上几乎完全一样。
上一篇:ARM微处理器ISP升级程序设计与应用
下一篇:ARM的uClinux的设计与应用
推荐阅读最新更新时间:2024-03-16 13:15
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况