diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2015-10-02 10:25:21 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-10-03 00:01:35 +0100 |
commit | 41316293e442da24fbda5a18cc2f75a57f86ea53 (patch) | |
tree | 73321809658f2cd3db34095533dfc441eb680e80 /meta/lib/oe | |
parent | f06fb68a07b82e4b8f25d5cdf556cf8893ddf208 (diff) | |
download | openembedded-core-41316293e442da24fbda5a18cc2f75a57f86ea53.tar.gz openembedded-core-41316293e442da24fbda5a18cc2f75a57f86ea53.tar.bz2 openembedded-core-41316293e442da24fbda5a18cc2f75a57f86ea53.zip |
lib/oe/image.py: Add image generation for companion debug filesystem
The companion debug filesystem, enabled with IMAGE_GEN_DEBUGFS, was
creating the companion filesystem but was missing the code to actually
package it into a usable filesystem.
The code (and associated documentation) will allow the debugfs to generate a
companion tarball or other image.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r-- | meta/lib/oe/image.py | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/meta/lib/oe/image.py b/meta/lib/oe/image.py index f9e9bfd587..b0d81a6b22 100644 --- a/meta/lib/oe/image.py +++ b/meta/lib/oe/image.py @@ -5,7 +5,7 @@ import multiprocessing def generate_image(arg): - (type, subimages, create_img_cmd) = arg + (type, subimages, create_img_cmd, sprefix) = arg bb.note("Running image creation script for %s: %s ..." % (type, create_img_cmd)) @@ -264,9 +264,9 @@ class Image(ImageDepGraph): return (alltypes, filtered_groups, cimages) - def _write_script(self, type, cmds): + def _write_script(self, type, cmds, sprefix=""): tempdir = self.d.getVar('T', True) - script_name = os.path.join(tempdir, "create_image." + type) + script_name = os.path.join(tempdir, sprefix + "create_image." + type) rootfs_size = self._get_rootfs_size() self.d.setVar('img_creation_func', '\n'.join(cmds)) @@ -284,7 +284,7 @@ class Image(ImageDepGraph): return script_name - def _get_imagecmds(self): + def _get_imagecmds(self, sprefix=""): old_overrides = self.d.getVar('OVERRIDES', 0) alltypes, fstype_groups, cimages = self._get_image_types() @@ -320,9 +320,9 @@ class Image(ImageDepGraph): else: subimages.append(type) - script_name = self._write_script(type, cmds) + script_name = self._write_script(type, cmds, sprefix) - image_cmds.append((type, subimages, script_name)) + image_cmds.append((type, subimages, script_name, sprefix)) image_cmd_groups.append(image_cmds) @@ -355,6 +355,27 @@ class Image(ImageDepGraph): image_cmd_groups = self._get_imagecmds() + # Process the debug filesystem... + debugfs_d = bb.data.createCopy(self.d) + if self.d.getVar('IMAGE_GEN_DEBUGFS', True) == "1": + bb.note("Processing debugfs image(s) ...") + orig_d = self.d + self.d = debugfs_d + + self.d.setVar('IMAGE_ROOTFS', orig_d.getVar('IMAGE_ROOTFS', True) + '-dbg') + self.d.setVar('IMAGE_NAME', orig_d.getVar('IMAGE_NAME', True) + '-dbg') + self.d.setVar('IMAGE_LINK_NAME', orig_d.getVar('IMAGE_LINK_NAME', True) + '-dbg') + + debugfs_image_fstypes = orig_d.getVar('IMAGE_FSTYPES_DEBUGFS', True) + if debugfs_image_fstypes: + self.d.setVar('IMAGE_FSTYPES', orig_d.getVar('IMAGE_FSTYPES_DEBUGFS', True)) + + self._remove_old_symlinks() + + image_cmd_groups += self._get_imagecmds("debugfs.") + + self.d = orig_d + self._write_wic_env() for image_cmds in image_cmd_groups: @@ -369,9 +390,16 @@ class Image(ImageDepGraph): if result is not None: bb.fatal(result) - for image_type, subimages, script in image_cmds: - bb.note("Creating symlinks for %s image ..." % image_type) - self._create_symlinks(subimages) + for image_type, subimages, script, sprefix in image_cmds: + if sprefix == 'debugfs.': + bb.note("Creating symlinks for %s debugfs image ..." % image_type) + orig_d = self.d + self.d = debugfs_d + self._create_symlinks(subimages) + self.d = orig_d + else: + bb.note("Creating symlinks for %s image ..." % image_type) + self._create_symlinks(subimages) execute_pre_post_process(self.d, post_process_cmds) |