Chinaunix首页 | 论坛 | 博客
  • 博客访问: 950508
  • 博文数量: 214
  • 博客积分: 10173
  • 博客等级: 上将
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 13:48
文章分类

全部博文(214)

文章存档

2012年(1)

2010年(13)

2009年(5)

2008年(98)

2007年(97)

分类: LINUX

2008-03-18 13:57:30

PPP拨号在ARM2410平台上的移植

本次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就行了。

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:

$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)上对程序源文件进行从头到尾的编译、连接,让它首先在宿主机上跑起来。弄清 每一个步骤及其工作的具体内容,在向目标板移植的过程中一定要保证交叉编译,其它文件配置和操作步骤跟宿主机上几乎完全一样。

阅读(1623) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~