【问题标题】:What is difference between U-boot.bin and uImage.binU-boot.bin 和 uImage.bin 有什么区别
【发布时间】:2013-09-22 07:14:53
【问题描述】:

我对@9​​87654321@ 和uImage.bin 感到困惑。我猜uImage.bin 只不过是u-boot.bin 的压缩版本,它的大小应该小于u-boot.bin。但在我的构建环境中,我发现u-boot.bin 的大小小于uImage.bin

谁能告诉我u-boot.binuImage.bin 有什么区别??

【问题讨论】:

  • 您确定 uImage.bin 实际上不是打包在一起的 Linux 内核和根文件系统映像,而 uboot 又会加载哪个?
  • 你的意思是说 U-boot 是一个引导加载程序,它会加载内核+文件系统映像,不过是 uImage 吗??
  • u-boot 绝对是一个引导加载程序。 uImage 听起来对我来说更像一个内核 + 文件系统映像,而不是不同的 u-boot 包装,但我不能说它绝对适合您的特定例子。每个有多大?
  • 我现在没有确切的尺寸,但可以说 uImage.img 比 u-boot.img 大,我猜 uboot.bin 是 ubootloader 映像,uImage 是来自“raw”的映像” ELF 形象。
  • 没有。 uImage 应该是压缩文件,否则命名错误。如果它更大,则表明它是其他东西的压缩版本 - 例如 Linux。这将符合 uboot/linux 系统上命名的传统用法。

标签: linux linux-kernel embedded-linux u-boot


【解决方案1】:

uboot.bin是bootloader,即uboot,uImage.bin是内核镜像

通常,在嵌入式系统中,NAND 闪存分为四个部分:

  1. 引导加载程序的分区(此处为 uboot.bin)
  2. uboot 保存其环境变量的小分区
  3. 内核分区(此处为 uImage.bin)
  4. rootfs 的分区

【讨论】:

  • 在基于 OMAP 的系统上还有另一个:用于加载主引导加载程序(例如 uBoot)的第一阶段引导加载程序的分区。
  • X-loader 是从 u-boot 基本代码派生的小型第一阶段引导加载程序,由 OMAP ROM 代码加载到内部静态 RAM 中。因为内部静态 ram 非常小(64k-32k),x-loader 被剥离到必需品,用于初始化内存和足够的外围设备来访问和加载第二阶段加载器(u-boot)到 main记忆。
  • 感谢 Ottavio 的回答,我想知道 uboot.bin 是如何选择 uImage.bin 的。是否有任何标准程序。你能告诉我任何好的文档吗?
  • 这取决于硬件。通常你可以用uboot做什么,你将内核从NAND复制到ram,然后你就进入了。有一个想法,你检查这个processors.wiki.ti.com/index.php/…,但我再说一遍,这有点取决于你的硬件
  • 环境变量可以和内核在同一个分区,不需要单独的分区。同样在某些平台上,uboot不会有任何分区,例如i.MX。
【解决方案2】:

uboot.bin 是 U-boot 引导加载程序的二进制文件。
uImage 是一个小内核镜像,带有修改的 Uboot 头文件,使 U-boot 能够加载这个内核映像

【讨论】:

    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 2012-05-08
    • 2022-01-08
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    相关资源
    最近更新 更多