[yocto] [PATCH] Gracefully abort if rootfs.img gets to big
Chris Hallinan
challinan at gmail.com
Mon Mar 30 13:50:53 PDT 2015
See https://bugzilla.yoctoproject.org/show_bug.cgi?id=7541
Current implementation of live image type cannot support image size
greater than 4GB. If the image gets too large, the build simply
hangs silently, without any clues or debug output to indicate why.
This patch prevents the build hanging on rootfs.img getting too big.
---
meta/classes/bootimg.bbclass | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass
index b1c03ba..e143e24 100644
--- a/meta/classes/bootimg.bbclass
+++ b/meta/classes/bootimg.bbclass
@@ -84,6 +84,13 @@ populate() {
fi
if [ -n "${ROOTFS}" ] && [ -s "${ROOTFS}" ]; then
+ ROOTFS_FILE_SIZE=`stat -L -c "%s" ${ROOTFS}`
+ bbnote "do_bootimg(): rootfs.img size = ${ROOTFS_FILE_SIZE}"
+ # Actual limit is difficult to determine
+ # This leaves ~128MiB headroom for initrd and boot files
+ if [ ${ROOTFS_FILE_SIZE} -gt 4160800000 ]; then
+ bbfatal "Root fs (rootfs.img) is too big for live image"
+ fi
install -m 0644 ${ROOTFS} ${DEST}/rootfs.img
fi
--
1.9.1
More information about the yocto
mailing list