2009年6月27日星期六

编译2.6.31内核和busybox1.14.2

源代码下载就不说了。
目标板versatile。
CPU核: ARM926T,arm9tdmi
ARM指令集:armv5te

交叉编译工具:
http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
内核配置:
先使用源码自带的
make versatile_defconfig
另外将CONFIG_AEABI选项也选择了。
配置好后,make 编译就行了。

busybox的配置。
配置时候,添加如下的附加编译器条件:
-mlittle-endian -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog
-mabi=aapcs-linux -mno-thumb-interwork -march=armv5te -mtune=arm9tdmi
-msoft-float -fno-stack-protector -fno-optimize-sibling-calls -fwrapv

编译

最后,确认下编译好的内核和busybox
查看ELF Header内核和busybox要保持一致
readelf -h vmlinux
readelf -h busybox

Version: 1 (current)
OS/ABI: UNIX -System V
ABI Version: 0
Machine: ARM
Version: 0x1
Flags: 0x5000002, has entry point, Version5 EABI

没有评论: