FIT Image 介绍
Kernel Image 外网参考资源:http://www.wowotech.net/u-boot/fit_image_overview.html。未来需要改用 FIT Image (ITB Image)。
-
uImage:U-Boot 定义的一种启动镜像格式,由 64 字节的 U-Boot Image header 加上镜像内容构成。
uImage 中的镜像内容,可以是未压缩的 Image,也可以是压缩的 Image,由 Linux kernel 编译时生成(依赖 uboot-tools 包中的 mkimage 工具)。新版的 Linux kernel 不再生成 uImage 文件。
uImage 文件的启动命令:
bootm kernel addr - dtb addr
其中 kernel addr 即 uImage 所在的内存地址。
-
zImage:Image 经过压缩和打包后,生成的文件。
将压缩后的 Image 作为 Payload,与一段解压缩代码一起编译链接,生成 zImage,因此 zImage 是一个可直接启动的自解压镜像。
启动命令为:bootz kernel addr - dtb addr
其中 kernel addr 即 zImage 所在的内存地址。
ARM64,RISCV 架构的 Linux kernel 编译,不再生成 zImage 格式的文件。
-
Image.gz:Linux kernel 编译时生成的压缩文件,使用 gzip 算法直接对 Image 文件进行压缩生成。
除了 Image.gz,使用其他压缩算法和压缩工具还可以生成下列标准压缩文件:
-
Image.lzo
-
Image.lz4
-
Image.bz2
-
Image.lzma
U-Boot 的启动命令为:
booti kernel addr - dtb addr
其中 kernel addr 即 Kernel 压缩文件所在的内存地址。
-
-
Image:Linux kernel 编译时生成的未压缩 Image。
U-Boot 可以通过 booti 命令直接运行该 Image(ARMv7 是 ArtInChip 自行添加的命令支持启动),启动命令格式为:booti kernel addr - dtb addr
其中kernel addr 是 Image 文件所在的内存地址。
Image 文件的格式,在不同芯片架构上是不一样的。对于 ARM64 和 RISCV64,会有一个格式头。但是对于 ARM32,则没有 头信息。
-
FIT Image (ITB Image):Flattened Image Tree
原始参考文档:source/uboot-2021.10/doc/usage/fit.rst source/uboot-2021.10/doc/uImage.FIT/howto.txt source/uboot-2021.10/doc/uImage.FIT/source_file_format.txt source/uboot-2021.10/doc/uImage.FIT/command_syntax_extensions.txt
如 howto.txt 开篇所提,当前社区使用 FIT Image 的主要理由是:
-
更灵活的处理各种类型的 image 类型(压缩、非压缩、各种格式,各种配置组合)
-
可以处理安全启动过程中的安全校验(签名校验)
-