[oe-commits] [openembedded-core] 04/14: wic: Make disk partition size consistently computed

git at git.openembedded.org git at git.openembedded.org
Thu Aug 8 21:49:39 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 8e48b4d6c4d0ed213089a7449fea63aa0656e786
Author: Jason Wessel <jason.wessel at windriver.com>
AuthorDate: Thu Aug 8 13:23:59 2019 -0700

    wic: Make disk partition size consistently computed
    
    When using different root directories with a wks file wic is using the
    value from the original ROOTFS_SIZE which is not correct.  Example:
    
    Number  Start   End     Size    File system  Name       Flags
     1      20.5kB  318MB   318MB   fat16        otaefi     legacy_boot, msftdata
     2      318MB   636MB   318MB   ext4         otaboot
     3      636MB   1709MB  1074MB  ext4         otaroot
     4      1709MB  2027MB  318MB   ext4         otaboot_b
     5      2027MB  3101MB  1074MB  ext4         otaroot_b
     6      3101MB  5249MB  2147MB  ext4         fluxdata
    
    The partitions 1, 2, and 3 incorrectly inherit the size, instead of using
    a computed size.  With the patch applied it is working properly:
    
    Number  Start   End     Size    File system  Name       Flags
     1      20.5kB  14.5MB  14.5MB  fat16        otaefi     legacy_boot, msftdata
     2      14.5MB  65.3MB  50.8MB  ext4         otaboot
     3      65.3MB  1139MB  1074MB  ext4         otaroot
     4      1139MB  1190MB  50.8MB  ext4         otaboot_b
     5      1190MB  2264MB  1074MB  ext4         otaroot_b
     6      2264MB  4411MB  2147MB  ext4         fluxdata
    
    As for the removal of the bb.warn, if the size is not specified, it is
    not something to warn the end user about.  Some of my default images
    make use of the head room + a computed directory size or while generating
    images.
    
    Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/lib/wic/partition.py | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index f427c81..2a71d7b 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -212,19 +212,13 @@ class Partition():
         if os.path.isfile(rootfs):
             os.remove(rootfs)
 
-        # Get rootfs size from bitbake variable if it's not set in .ks file
+        # If size is not specified compute it from the rootfs_dir size
         if not self.size and real_rootfs:
-            # Bitbake variable ROOTFS_SIZE is calculated in
-            # Image._get_rootfs_size method from meta/lib/oe/image.py
-            # using IMAGE_ROOTFS_SIZE, IMAGE_ROOTFS_ALIGNMENT,
-            # IMAGE_OVERHEAD_FACTOR and IMAGE_ROOTFS_EXTRA_SPACE
-            rsize_bb = get_bitbake_var('ROOTFS_SIZE')
-            if rsize_bb:
-                logger.warning('overhead-factor was specified, but size was not,'
-                               ' so bitbake variables will be used for the size.'
-                               ' In this case both IMAGE_OVERHEAD_FACTOR and '
-                               '--overhead-factor will be applied')
-                self.size = int(round(float(rsize_bb)))
+            # Use the same logic found in get_rootfs_size()
+            # from meta/classes/image.bbclass
+            du_cmd = "du -ks %s" % rootfs_dir
+            out = exec_cmd(du_cmd)
+            self.size = int(out.split()[0])
 
         prefix = "ext" if self.fstype.startswith("ext") else self.fstype
         method = getattr(self, "prepare_rootfs_" + prefix)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list