【问题标题】:Can you partition a U-Boot FIT Image back into its components?您可以将 U-Boot FIT 映像分区回其组件吗?
【发布时间】:2016-10-26 16:32:27
【问题描述】:

我最近found out如何为 U-Boot 创建 FIT 映像。

根据创建所需的*.its文件,镜像可以包含内核、根文件系统和设备树Blob。

我的问题是,是否有办法将预构建的 FIT 图像分离回其组件(甚至可能得到一个 *its 文件)。

【问题讨论】:

    标签: embedded-linux u-boot


    【解决方案1】:

    安装 device-tree-compiler(apt-get install) 并下载脚本 split_bootimg.pl(github)。运行脚本以提取内核映像、ramdisk 和 dtb 文件。然后你得到了每个组件。并且您可以使用 device-tree-compiler 从 dtb 中提取设备树文件。

    如果您有“Android Magic not found in image。放弃。”那么问题来了:

    从 split_bootimg.pl 中,FIT 图像的格式应该是:

    =格式(来自 bootimg.h)

    ** +-----------------+

    ** |引导头 | 1 页

    ** +-----------------+

    ** |内核 | n 页

    ** +-----------------+

    ** |内存盘 | m 页

    ** +-----------------+

    ** |第二阶段| o 页面

    ** +-----------------+

    boot-header 包含一个magic-number 字段,脚本将检查该字段以验证图像是否为android。下面的代码检查幻数:

    # Read the Magic
    read(INF, $buf, BOOT_MAGIC_SIZE);
    unless ($buf eq BOOT_MAGIC) {
    die "Android Magic not found in $fn. Giving up.\n";
    }
    

    所以也许您可以注释掉代码,或者检查图像中的幻数并修改脚本。

    【讨论】:

    • 我找到了这个 perl 脚本:gist.github.com/jberkel/1087743 并像这样使用它:split_bootimg.pl image。产生了这个输出:Android Magic not found in image. Giving up.你能帮我进一步吗?顺便说一句,我的平台不是 Android。我在裸 Linux 上。
    • 从 split_bootimg.pl 中,FIT 图像的格式应该是:
    • ** +-----------------+ ** |引导头 | 1 页 ** +----------------+ ** |内核 | n 页 ** +-----------------+ ** |内存盘 | m 页 ** +-----------------+ ** |第二阶段| o 页 ** +-----------------+
    • 这似乎只适用于给定的图像结构。但是根据上面的链接,有任何可能的配置。我没有让它与我的图像一起使用。
    猜你喜欢
    • 2014-12-24
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2011-12-18
    • 2013-04-17
    相关资源
    最近更新 更多