aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/bitbake.conf4
-rw-r--r--meta/lib/oe/image.py8
2 files changed, 12 insertions, 0 deletions
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):