zImage和uImage的区别联系
注:本文是学习朱老师课程整理的笔记,基于linux2.6.35.7和九鼎X210BV3S开发板进行移植。
uboot为了启动linux内核,还发明了一种内核格式叫uImage。uImage是由zImage加工得到的,uboot中有一个工具,可以将zImage加工生成uImage。注意:uImage不关linux内核的事,linux内核只管生成zImage即可,然后uboot中的mkimage工具再去由zImage加工生成uImage来给uboot启动。这个加工过程其实就是在zImage前面加上64字节的uImage的头信息即可。
注:如果直接在kernel底下去make uImage会提示mkimage command not found。解决方案是去uboot/tools目录下执行cp mkimage /usr/local/bin/,复制mkimage工具到系统目录下。再去make uImage即可。
原则上uboot启动时应该给他uImage格式的内核镜像,但是实际上uboot中也可以支持zImage,是否支持就看是否定义了LINUX_ZIMAGE_MAGIC这个宏。所以大家可以看出:有些uboot是支持zImage启动的,有些则不支持。但是所有的uboot肯定都支持uImage启动。