1、vmlinux 编译出来的最原始的内核elf文件,未压缩。
2、zImage 是vmlinux经过objcopy gzip压缩后的文件, objcopy实现由vmlinux的elf文件拷贝成elf文件解压后在内存中的二进制形式。
3、uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。
如何从elf文件生成u-boot专用映像文件?
(1)制作uboot 时,在uboot 的tools 目录下会生成mkimage 工具,约52kB.
(2)将tools 目录下生成的mkimage 文件拷贝到/bin 目录中.
# cp u-boot/tools/mkimage /bin
(3)内核编译结束后,在arch/arm/boot 下生成zImage 文件.进入该目录,并在该目录下执行命令:
# mkimage -n 'linux-2.6.34.7' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage.img
Image Name : linux-2.6.34.7
Created : Sat Dec 25 00:27:42 2010
Image Type : ARM Linux Kernel Image(uncompressed)
Data Size : 1950476 Bytes = 1904.76kB = 1.86 MB
Load Address: 30008000
Entry Point : 30008000
(4)系统会在arch/arm/boot 目录下生成uImage.img 镜像文件.这样就完成了从zImage 到uImage 的制作.