[uboot] uboot启动kernel篇(一)——Legacy-uImage & FIT-uImage

Uboot 验签linux kernel uboot如何验签linux kernel 阅读详情

一、uImage

编译kernel之后,会生成Image或者压缩过的zImage。但是这两种镜像的格式并没有办法提供给uboot的足够的信息来进行load、jump或者验证操作等等。因此,uboot提供了mkimage工具,来将kernel制作为uboot可以识别的格式,将生成的文件称之为uImage。
uboot支持两种类型的uImage。

  • Legacy-uImage
    在kernel镜像的基础上,加上64Byte的信息提供给uboot使用。

  • FIT-uImage
    以类似FDT的方式,将kernel、fdt、ramdisk等等镜像打包到一个image file中,并且加上一些需要的信息(属性)。uboot只要获得了这个image file,就可以得到kernel、fdt、ramdisk等等镜像的具体信息和内容。

Legacy-uImage实现较为简单,并且长度较小。但是实际上使用较为麻烦,需要在启动kernel的命令中额外添加fdt、ramdisk的加载信息。
而FIT-uImage实现较为复杂,但是使用起来较为简单,兼容性较好,(可以兼容多种配置)。但是需要的额外信息也较长。

二、Legacy-uImage

1、使能需要打开的宏

CONFIG_IMAGE_FORMAT_LEGACY=y

注意,这个宏在自动生成的autoconf.mk中会自动配置,不需要额外配置。

2、如何制作 & 使用

(1)工具mkimage
编译完uboot之后会在uboot的tools目录下生成mkimage可执行文件
(2)命令

mkimage -A arm -O linux -C none -T kernel -a 0x20008000 -e 0x20008040 -n Linux_Image -d zImage uImage 

各个参数意义如下
Usage: mkimage -l image
          -l ==> list image header information
       mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
          -A ==> set architecture to 'arch'  // 体系
          -O ==> set operating system to 'os' // 操作系统
          -T ==> set image type to 'type' // 镜像类型
          -C ==> set compression type 'comp' // 压缩类型
          -a ==> set load address to 'addr' (hex) // 加载地址
          -e ==> set entry point to 'ep'
ubootFIT功能 某大佬的解释,特别清晰: u-boot FIT image介绍1. 前言 Linux kernel在ARM架构中引入device tree(全称是flattened device tree,后续将会以FDT代称)的时候[1],其实怀揣了....http://www.wowotech.net/u-boot/fit_image_overview.htmlgit上对于FIT的说明文档: doc/uImage.FIT/source_file_format.txthttps://github.com/wowot 阅读详情

相关推荐

[uboot] uboot启动kernel(三)——uboot解析uImagekernel信息

bootm启动kernel的过程中解析Legacy-uImage的原理和流程。 bootm启动kernel的过程中解析FIT-uImage的原理和流程。

ooonebook的博客 9189

使用U-Boot的mkimage制作FIT镜像或给镜像加协议头

1.环境信息:   Version Info:U-Boot 2016.092.0+g199df35 (Nov 20 2016 - 12:55:17 +0800)   ARCH:arm   CPU:Freescale LS1020 Serial   Cross Compiler: arm-linux-gnueabihf- 2.制作镜像:  FIT镜像制作示例,FIT是内核、设备树、文件系统合并成个文件的种镜像,并且FIT镜像里边可能包含了很多个内核、设备树、文件系统等; <1>.

kunkliu的博客 4781

MTK Android Driver知识大全

转载请注明出处:http://blog.csdn.net/cbk861110/article/details/40931835 、Display 1.lcm 相关概念 1.1) MIPI接口:共有三种接口:DBI(也做CPU或MCU接口)、DPI(也叫RGB接口)、DSI. 在使用DSI接口时,目前75/77都只支持到2条data lane,加上条clock lane. 使用DPI接口时...

caobaokang的专栏 4万+

ubootFIT-uImage

uImage 编译kernel之后,会生成Image或者压缩过的zImage。但是这两种镜像的格式并没有办法提供给uboot的足够的信息来进行load、jump或者验证操作等等。因此,uboot提供了mkimage工具,来将kernel制作为uboot可以识别的格式,将生成的文件称之为uImageuboot支持两种类型的uImageLegacy-uImagekernel镜像的基础上,加上64Byte的信息提供给uboot使用。 FIT-uIma...

kunkliu的博客 3996

[uboot] uboot启动kernel(二)——bootm跳转到kernel的流程

bootm命令执行流程 跳转到kernel的流程

ooonebook的博客 2万+

U-boot启动流程[三]

本文基于以下软硬件假定:架构:AARCH64软件:U-boot 2022.10。

jia_weihui的博客 1750

8Gb核心板ICETEK138成功烧写文件系统时的环境配置信息和文件系统的启动信息

Booting with TI UBL Device OPP (372MHz, 1.2V) U-Boot 2009.11 ( 4鏈18 2012 - 13:32:22) I2C: ready DRAM: 128 MB NAND: 1024 MiB MMC: davinci: 0 Bad block table found at page 524224, version 0x01 B

知人者智自知者明 3910

Qemu下u-Boot + Kernel + rootfs完整启动移植

对于Ubuntu12.04系统,首先要安装如下的库文件,不然在后续的移植过程中会出错 1、zlib库 sudo apt-get install zlib1g-dev 2、glib库的安装 1)在Ubuntu下,通过如下命令来获取glib库,命令为:git clone https://git.gnome.org/browse/glib 2)下载完后,进入glib库所在的目录。cd ~/gl

Second的专栏 1万+

【嵌入式Linux之QEMU模拟器】5、使用u-boot加载Linux内核

在前面的实验中,我们都是直接运行Linux内核。而在实际的嵌入式系统中都是通过BootLoader加载Linux镜像,然后再去运行。 嵌入式BootLoader 功能类似PC中的BIOS,用以检测硬件是否正常。 加载操作系统镜像到RAM 设置不同启动方式 NOR/NAND Flash启动 从SD卡启动 BootLoader从网络加载内核启动 下面将介绍QEMU从Ubuntu加载镜像然后启...

悟已往之不谏 知来者之可追 2895

u-boot FIT image介绍

1. 前言 Linux kernel在ARM架构中引入device tree(全称是flattened device tree,后续将会以FDT代称)的时候[1],其实怀揣了个Unify Kernel的梦想----个Image,可以支持多个不同的平台。随着新的ARM64架构将FDT列为必选项,并将和体系结构有关的代码剥离之后,这个梦想已经接近实现: 在编译linux kern

wdsfup的专栏 5863

kernel编译生成Image zImage uImage的区别

内核编译(make)之后会生成两个文件,个Image,个zImage,其中Image为内 核映像文件,而zImage为内核的种映像压缩文件,Image大约为4M,而zImage不到2M。     那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区

做一个有技术追求的人 2万+

在u-boot启动linux内核

1,从emmc启动 检查emmc中是否有系统镜像文件和设备树文件 mmc dev 1 //切换到emmc设备 fatls mmc 1:1 //查看设备1分区1 fatload mmc 1:1 80800000 zimage //拷贝镜像文件 fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb //拷贝设备树文件 bootz 80800000 - 83000000 //启动内核 2,...

初心不辜的博客 1048
上一篇: [uboot] (番外篇)uboot dm-gpio使用方法以及工作流程
下一篇: [uboot] uboot启动kernel篇(二)——bootm跳转到kernel的流程
ooonebook
博客等级 码龄10年 1103粉丝 48原创
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值