linux内核镜像格式及uboot引导

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 的制作.

猜你喜欢

转载自www.cnblogs.com/llc-blog/p/9283426.html