From 6acd4fc8d5e642b5c6c75fcc40dd8f37caf7ddcf Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Mon, 7 Jul 2014 02:33:58 -0700 Subject: lib/oe/image.py: check the rootfs size against IMAGE_ROOTFS_MAXSIZE * Check the rootfs size against IMAGE_ROOTFS_MAXSIZE (if set) * Add comments for IMAGE_ROOTFS_SIZE to not confuse with IMAGE_ROOTFS_MAXSIZE [YOCTO #2610] Signed-off-by: Robert Yang Signed-off-by: Saul Wold --- meta/conf/bitbake.conf | 4 ++++ meta/lib/oe/image.py | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 311e9a04c4..f4870d52a9 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -688,6 +688,10 @@ IMAGE_FSTYPES ?= "tar.gz" INITRAMFS_FSTYPES ?= "cpio.gz" DEFAULT_TASK_PROVIDER ?= "packagegroup-base" MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}" + +# The size in Kbytes for the generated image if it is larger than +# the required size (du -ks IMAGE_ROOTFS * IMAGE_OVERHEAD_FACTOR), +# and no effect if less than it. IMAGE_ROOTFS_SIZE ?= "65536" # Forcefully set CACHE now so future changes to things like diff --git a/meta/lib/oe/image.py b/meta/lib/oe/image.py index c9b9033132..354a676f42 100644 --- a/meta/lib/oe/image.py +++ b/meta/lib/oe/image.py @@ -144,6 +144,7 @@ class Image(ImageDepGraph): overhead_factor = float(self.d.getVar('IMAGE_OVERHEAD_FACTOR', True)) rootfs_req_size = int(self.d.getVar('IMAGE_ROOTFS_SIZE', True)) rootfs_extra_space = eval(self.d.getVar('IMAGE_ROOTFS_EXTRA_SPACE', True)) + rootfs_maxsize = self.d.getVar('IMAGE_ROOTFS_MAXSIZE', True) output = subprocess.check_output(['du', '-ks', self.d.getVar('IMAGE_ROOTFS', True)]) @@ -158,6 +159,13 @@ class Image(ImageDepGraph): base_size += rootfs_alignment - 1 base_size -= base_size % rootfs_alignment + # Check the rootfs size against IMAGE_ROOTFS_MAXSIZE (if set) + if rootfs_maxsize: + rootfs_maxsize_int = int(rootfs_maxsize) + if base_size > rootfs_maxsize_int: + bb.fatal("The rootfs size %d(K) overrides the max size %d(K)" % \ + (base_size, rootfs_maxsize_int)) + return base_size def _create_symlinks(self, subimages): -- cgit 1.2.3-korg