[OpenWrt-Devel] [PATCH 1/2] build: define check-kernel-size to remove unflashable images
Jeff Kletsky
lede at allycomm.com
Wed Nov 13 16:09:48 EST 2019
From: Jeff Kletsky <git-commits at allycomm.com>
Certain boards have limitations on U-Boot that prevent flashing
of images where the kernel size exceeds a threshold, yet
sysupgrade can sucessfully manage larger kernels. The current
check-size will remove the target artifact if its total size
exceeds the threshold. If applied after append-kernel,
it will remove the kernel, but the remaining image-assembly
steps will continue, resulting in an image without a kernel
that is likely unbootable.
By defining check-kernel-size, it is now possible to prevent release
of such unbootable images through a construct similar to:
IMAGE/factory.img := append-kernel | pad-to $$$$(GL_UBOOT_UBI_OFFSET) | \
append-ubi | check-kernel-size $$$$(GL_UBOOT_UBI_OFFSET)
Cc: Chuanhong Guo <gch981213 at gmail.com>
Signed-off-by: Jeff Kletsky <git-commits at allycomm.com>
---
include/image-commands.mk | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/image-commands.mk b/include/image-commands.mk
index 5dfd6a2c2f..f561ad4669 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -271,6 +271,13 @@ define Build/check-size
}
endef
+define Build/check-kernel-size
+ @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $(IMAGE_KERNEL))" ] || { \
+ echo "WARNING: Kernel for $@ is too big > $(1)" >&2; \
+ rm -f $@; \
+ }
+endef
+
define Build/combined-image
-sh $(TOPDIR)/scripts/combined-image.sh \
"$(IMAGE_KERNEL)" \
--
2.20.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list