boot.scr 在 buildroot 中重建

boot.scr rebuild in buildroot

有没有办法在不清理整个项目的情况下重建 boot.scr 脚本? 我删除了旧的 boot.scr 脚本,但不知道如何生成新脚本(只有 make clean 有帮助)

变量 BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE 已设置。

make uboot-dirclean uboot-tools-dirclean 没有帮助。

我发现创建boot.scr的mkimage脚本是从uboot-tools安装规则中调用的,但是即使我清除了uboot-toolsboot.scr也不再生成

U-Boot 提供了mkimage 工具。在基于 Debian 的发行版中,它位于 u-boot-tools 包中。鉴于您有一个包含脚本命令的文件 boot.txt,您可以使用

创建 boot.scr
mkimage -T script -n 'My fancy title' -d boot.txt boot.scr

如果你 dirclean host-uboot-tools 它将重建你的脚本。原因是在uboot-tools.mk文件中的HOST_UBOOT_TOOLS_INSTALL_CMDS函数中调用了mkimage(生成脚本)

由于您的个人脚本位于您的外部 buildroot 目录中,您可能希望快速迭代编写和测试它,所以您每次都希望创建它。每次 运行 时都有一种方法可以做到这一点。无需清洁任何东西。 post 图像脚本是关键。

例如,创建您的 post-image.sh 脚本并在您的 defconfig 文件中指定它。

BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/board/RK3308/post-image.sh"

在那个post-iamge.sh脚本中,运行生成你的启动脚本的命令,这里有一个例子:

# Generate the uboot script
$ubootName/tools/mkimage -C none -A arm -T script -d $BR2_EXTERNAL_RK3308_PATH/board/RK3308/boot.cmd $BINARIES_DIR/boot.scr

每次运行 make,都会重新生成boot.scr。

如果您想在上下文中查看所有这些内容,here is an external buildroot repo for the rk3308 chipset

这是post-image.sh file

这是the definition of that file in the defonconfig file

接受的答案是正确的,但还有更简单的方法。 boot.scr 是由 host-uboot-tools 而不是 uboot-tools 编译的,所以你只需要执行这个:

make host-uboot-tools-rebuild