Re: [PATCH] Gracefully abort if rootfs.img gets to big


Armin Kuster
 

Chris,

Should the hardcoded value '4160800000' be a variable so it can be overridden?

- armin

On 03/30/2015 01:50 PM, Chris Hallinan wrote:
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

Join yocto@lists.yoctoproject.org to automatically receive all group messages.