【发布时间】:2016-10-26 16:32:27
【问题描述】:
我最近found out如何为 U-Boot 创建 FIT 映像。
根据创建所需的*.its文件,镜像可以包含内核、根文件系统和设备树Blob。
我的问题是,是否有办法将预构建的 FIT 图像分离回其组件(甚至可能得到一个 *its 文件)。
【问题讨论】:
标签: embedded-linux u-boot
我最近found out如何为 U-Boot 创建 FIT 映像。
根据创建所需的*.its文件,镜像可以包含内核、根文件系统和设备树Blob。
我的问题是,是否有办法将预构建的 FIT 图像分离回其组件(甚至可能得到一个 *its 文件)。
【问题讨论】:
标签: embedded-linux u-boot
安装 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";
}
所以也许您可以注释掉代码,或者检查图像中的幻数并修改脚本。
【讨论】:
split_bootimg.pl image。产生了这个输出:Android Magic not found in image. Giving up.你能帮我进一步吗?顺便说一句,我的平台不是 Android。我在裸 Linux 上。