通过U-Boot引导操作系统

时间:2019-03-21 06:41:26

标签: linux-kernel operating-system u-boot

我最近开始在imx6上启动与板相关的项目,并且我看到u-boot将在所有项目中使用。

我从维基百科(https://en.wikipedia.org/wiki/Das_U-Boot#References)开始对u-boot进行研究

它指出u-boot通过读取内核和任何其他相关数据(例如dts文件)来引导操作系统,然后使用适当的参数执行内核。 但是,当我们加载映像时,我们仅加载u-boot,内核和rootfs,那么u-boot如何引导操作系统?它已经存在于板卡的内部存储器中吗? 还是正在运行的内核实例称为操作系统?

1 个答案:

答案 0 :(得分:0)

您没有提供所使用的确切命令,但是可能由于加载了名为uImage的文件(被称为u-boot内核映像)而感到困惑: br />

但是,当我们加载映像时,我们仅加载u-boot内核和rootfs

如果是这种情况,请注意,它不是u-boot映像(如果可以使用诸如bootm之类的命令,则已经在运行u-boot),而是u-boot映像格式的Linux内核映像。使用u-boot mkimage实用程序创建-请参见here

uImage实际上是Linux内核映像本身,它是由u-boot实用程序mkimage使用特殊的u-boot格式转换为文件的。

从Linux内核zImage文件创建uImage的典型命令例如:
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d arch/arm/boot/zImage uImage。 uImage确实包含Linux操作系统,这就是为什么您能够通过将其与rootfs一起加载来引导系统的原因。