gpt4 book ai didi

linux-kernel - 图像与 zImage 与 uImage

转载 作者:行者123 更新时间:2023-12-03 05:25:35 25 4
gpt4 key购买 nike

它们有什么区别?

我知道u-boot需要uImage格式的内核。

我使用的系统首先从第一阶段加载程序启动,然后调用 u-boot。我想放弃 u-boot 并直接从第一阶段加载程序启动。我必须使用哪种类型的内核镜像?

最佳答案

What is the difference between them?

Image:通用 Linux 内核二进制镜像文件。

zImage:自解压的 Linux 内核镜像的压缩版本。

uImage:具有 U-Boot 包装器(由 mkimage 实用程序安装)的镜像文件,其中包含操作系统类型和加载程序信息。
一种非常常见的做法(例如典型的 Linux 内核 Makefile)是使用 zImage 文件。由于 zImage 文件是自解压的(即不需要外部解压缩器),包装器将指示该内核“未压缩”,即使它实际上是压缩的。

<小时/>

请注意,U-Boot 的作者/维护者认为在 uImage 中使用 zImage 的(广泛)使用是有问题的:

Actually it's pretty stupid to use a zImage inside an uImage. It is much better to use normal (uncompressed) kernel image, compress it using just gzip, and use this as poayload for mkimage. This way U-Boot does the uncompresiong instead of including yet another uncompressor with each kernel image.

(引自 https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )

<小时/>

Which type of kernel image do I have to use?

您可以选择任何您想要编程的内容。
为了节省存储空间,您可能应该选择压缩图像而不是未压缩图像。
请注意,执行内核(大概是 Linux 内核)不仅仅涉及将内核镜像加载到内存中。根据架构(例如 ARM)和 Linux 内核版本(例如带或不带 DTB),可能需要为内核准备寄存器和内存缓冲区。在一种情况下,U-Boot 执行的硬件初始化也必须被复制。

附录

I know that u-boot needs a kernel in uImage format.

这对于仅具有 bootm 命令的所有 U-Boot 版本都是准确的。
但更新版本的 U-Boot 也可能具有可以启动 zImage 的 bootz 命令。

关于linux-kernel - 图像与 zImage 与 uImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22322304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com