diff options
author | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-02-09 00:16:23 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-14 08:40:35 +0000 |
commit | 20fe0c7202724187dbe80eb2101d8ef69e86b94e (patch) | |
tree | 1799618d3fc40bc4d667db6f14d82b1ece673d24 | |
parent | 9f7fe71a10bcdd1864d2f838f3510e96810ef42e (diff) | |
download | openembedded-core-20fe0c7202724187dbe80eb2101d8ef69e86b94e.tar.gz openembedded-core-20fe0c7202724187dbe80eb2101d8ef69e86b94e.tar.bz2 openembedded-core-20fe0c7202724187dbe80eb2101d8ef69e86b94e.zip |
wic: allow to configure overhead factor per partition
Introduce a new option --overhead-factor to replace
IMAGE_OVERHEAD_FACTOR.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | scripts/lib/image/help.py | 6 | ||||
-rw-r--r-- | scripts/lib/wic/kickstart/custom_commands/partition.py | 14 | ||||
-rw-r--r-- | scripts/lib/wic/utils/oe/misc.py | 1 |
3 files changed, 18 insertions, 3 deletions
diff --git a/scripts/lib/image/help.py b/scripts/lib/image/help.py index 8e026986aa..e1eb265979 100644 --- a/scripts/lib/image/help.py +++ b/scripts/lib/image/help.py @@ -749,6 +749,12 @@ DESCRIPTION beyond the size specified by --size. By default, 10MB. + --overhead-factor: This option is specific to wic. The + size of the partition is multiplied by + this factor. It has to be greater than or + equal to 1. + The default value is 1.3. + * bootloader This command allows the user to specify various bootloader diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py index 8bde1b80e1..44df20c58a 100644 --- a/scripts/lib/wic/kickstart/custom_commands/partition.py +++ b/scripts/lib/wic/kickstart/custom_commands/partition.py @@ -51,6 +51,7 @@ class Wic_PartData(Mic_PartData): self.rootfs = kwargs.get("rootfs-dir", None) self.no_table = kwargs.get("no-table", False) self.extra_space = kwargs.get("extra-space", "10M") + self.overhead_factor = kwargs.get("overhead-factor", 1.3) self.source_file = "" self.size = 0 @@ -66,6 +67,7 @@ class Wic_PartData(Mic_PartData): if self.no_table: retval += " --no-table" retval += " --extra-space=%d" % self.extra_space + retval += " --overhead-factor=%f" % self.overhead_factor return retval @@ -233,7 +235,7 @@ class Wic_PartData(Mic_PartData): extra_blocks = self.extra_space rootfs_size = actual_rootfs_size + extra_blocks - rootfs_size *= IMAGE_OVERHEAD_FACTOR + rootfs_size *= self.overhead_factor msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \ (extra_blocks, self.mountpoint, rootfs_size)) @@ -280,7 +282,7 @@ class Wic_PartData(Mic_PartData): extra_blocks = self.extra_space rootfs_size = actual_rootfs_size + extra_blocks - rootfs_size *= IMAGE_OVERHEAD_FACTOR + rootfs_size *= self.overhead_factor msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \ (extra_blocks, self.mountpoint, rootfs_size)) @@ -512,6 +514,11 @@ class Wic_Partition(Mic_Partition): removedAttrs = Mic_Partition.removedAttrs def _getParser(self): + def overhead_cb (option, opt_str, value, parser): + if (value < 1): + raise OptionValueError("Option %s: invalid value: %r" % (option, value)) + setattr(parser.values, option.dest, value) + op = Mic_Partition._getParser(self) # use specified source file to fill the partition # and calculate partition size @@ -529,4 +536,7 @@ class Wic_Partition(Mic_Partition): # extra space beyond the partition size op.add_option("--extra-space", dest="extra_space", action="store", type="size", nargs=1, default="10M") + op.add_option("--overhead-factor", dest="overhead_factor", + action="callback", callback=overhead_cb, type="float", + nargs=1, default=1.3) return op diff --git a/scripts/lib/wic/utils/oe/misc.py b/scripts/lib/wic/utils/oe/misc.py index fa14fee1ab..ea9b6e8ec4 100644 --- a/scripts/lib/wic/utils/oe/misc.py +++ b/scripts/lib/wic/utils/oe/misc.py @@ -122,7 +122,6 @@ def add_wks_var(key, val): wks_vars[key] = val BOOTDD_EXTRA_SPACE = 16384 -IMAGE_OVERHEAD_FACTOR = 1.3 __bitbake_env_lines = "" |