【问题标题】:How to extract files in uImage?如何提取uImage中的文件?
【发布时间】:2017-12-07 15:31:06
【问题描述】:

这是我的问题

我有一个 uImage 文件,其中包含 kernel + dtb + initramfs。 initramfs 有一些专有的二进制文件,因此我无法从源代码重建它。但出于不同的原因,我需要更改 Linux 内核。

因此我想如果以下步骤可以解决我的问题:

  1. 解压上面的uImage文件,
  2. 用新建的文件替换内核和dtb文件,
  3. 使用 new-kernelnew-dtbold-initramfs 重新创建较新版本的 uImage 文件。

是否有可用的工具来执行此操作?如果没有,我很感激开发相同的任何投入。

【问题讨论】:

  • 这个页面有一些相关信息:buffalo.nas-central.org/wiki/How_to_Extract_an_uImage 但是,脚本会从中生成一个zImage。并没有像我预期的那样真正提取文件。
  • 另一个有用的link
  • 您想要做的事情对于提供的信息没有意义。 uImage 文件只是文件的包装器。您只需删除包装器即可将 uImage 文件转换为其原始文件(并仅在包装器指示时解压缩文件)。该 uImage 中的内核映像和 dtb 应该以与 initramfs 相同的方式处理。所以 “提取” 一个但保持另一个 “原样” 是没有意义的。见stackoverflow.com/questions/22322304/image-vs-zimage-vs-uimage/…
  • @sawdust,我提供了更多信息/背景。让我知道这是否有帮助。您提供的link 帮助我了解 uImage 的结构。这样我就可以单独删除 uImage 包装器。关于如何提取文件系统部分和 dtb 部分的任何输入?
  • uImage 中的内容独立于 mkimage 实用程序进行组合。您可能需要检查 makefile 和/或 U-Boot bootcmd 以了解这些部分是如何组合和/或然后使用的。我知道 DTB 可以附加到内核 zImage(参见 events.linuxfoundation.org/sites/events/files/slides/… 的第 8 页),并且 initramfs 通常附加到 zImage,但不确定如何附加 both . .itb 可以参与吗? (见casper.berkeley.edu/svn/trunk/roach/sw/uboot/doc/uImage.FIT/…

标签: kernel u-boot


【解决方案1】:

试试这个命令:

mkimage -l kernel.uImage

详情请看link

【讨论】:

  • 链接中的示例是关于提取 2 个打包为单个图像的 uImage。就我而言,内核 + dtb + 文件系统被打包为一个 uImage。当我执行“mkimage -l ”时,输出显示好像只有一个图像
  • @AananthCN 我还收到一个输出,表明只有一个图像。您是否设法找到提取内容的方法?
  • @AananthCN,如果你提取那一张图片并再次运行mkimage -l(即嵌套图片),你会得到什么?
猜你喜欢
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多