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

-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to