[OE-core] [PATCH 3/3] wic: apply --extra-space + --overhead to squashfs
Ed Bartosh
ed.bartosh at linux.intel.com
Mon Sep 11 13:41:50 UTC 2017
On Fri, Sep 08, 2017 at 07:33:03PM +0200, Enrico Scholz wrote:
> From: Enrico Scholz <enrico.scholz at ensc.de>
>
> The --extra-space and --overhead option did not had an effect to squashfs
> partitions. Although squashfs is read-only, it can be useful to allocate
> more space for the on-disk partition to avoid repartitioning of the whole
> disk when a new (and larger) squashfs image is written on later updates.
>
Is it possible to just use --size or --fixed-size in .wks to allocate
partition of certain size?
> Patch calls get_rootfs_size() *after* creating the image and truncates
> it then.
>
> Signed-off-by: Enrico Scholz <enrico.scholz at ensc.de>
> ---
> scripts/lib/wic/partition.py | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
> index b623bb9..da651f8 100644
> --- a/scripts/lib/wic/partition.py
> +++ b/scripts/lib/wic/partition.py
> @@ -195,6 +195,17 @@ class Partition():
> "larger (%d kB) than its allowed size %d kB" %
> (self.mountpoint, self.size, self.fixed_size))
>
> + def __extend_rootfs_image(self, rootfs):
Do we really need to mangle name of this method?
Please, consider reading this for further details:
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#naming
As this function is not going to be used anywhere I'd just use this code
in prepare_rootfs_squashfs. It would be less generic, but much more
readable and understandable.
> + """Enlarges the rootfs so that it fulfills size/overhead-factor
> + constraints"""
> +
> + sz = (os.stat(rootfs).st_size + 1023) // 1024
> + pad_sz = self.get_rootfs_size(sz)
> +
> + if pad_sz > sz:
> + with open(rootfs, 'a') as f:
> + os.ftruncate(f.fileno(), pad_sz * 1024)
> +
> def prepare_rootfs(self, cr_workdir, oe_builddir, rootfs_dir,
> native_sysroot):
> """
> @@ -338,6 +349,8 @@ class Partition():
> (rootfs_dir, rootfs, extraopts)
> exec_native_cmd(squashfs_cmd, native_sysroot, pseudo=pseudo)
>
> + self.__extend_rootfs_image(rootfs)
> +
> def prepare_empty_partition_ext(self, rootfs, oe_builddir,
> native_sysroot):
> """
--
Regards,
Ed
More information about the Openembedded-core
mailing list