diff options
Diffstat (limited to 'scripts/lib/wic/imager/direct.py')
| -rw-r--r-- | scripts/lib/wic/imager/direct.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/scripts/lib/wic/imager/direct.py b/scripts/lib/wic/imager/direct.py index 5a3b655a0c..ffde232c2b 100644 --- a/scripts/lib/wic/imager/direct.py +++ b/scripts/lib/wic/imager/direct.py | |||
| @@ -33,7 +33,7 @@ from wic.utils.partitionedfs import Image | |||
| 33 | from wic.utils.errors import CreatorError, ImageError | 33 | from wic.utils.errors import CreatorError, ImageError |
| 34 | from wic.imager.baseimager import BaseImageCreator | 34 | from wic.imager.baseimager import BaseImageCreator |
| 35 | from wic.plugin import pluginmgr | 35 | from wic.plugin import pluginmgr |
| 36 | from wic.utils.oe.misc import exec_cmd | 36 | from wic.utils.oe.misc import exec_cmd, exec_native_cmd |
| 37 | 37 | ||
| 38 | disk_methods = { | 38 | disk_methods = { |
| 39 | "do_install_disk":None, | 39 | "do_install_disk":None, |
| @@ -71,7 +71,8 @@ class DirectImageCreator(BaseImageCreator): | |||
| 71 | """ | 71 | """ |
| 72 | 72 | ||
| 73 | def __init__(self, oe_builddir, image_output_dir, rootfs_dir, bootimg_dir, | 73 | def __init__(self, oe_builddir, image_output_dir, rootfs_dir, bootimg_dir, |
| 74 | kernel_dir, native_sysroot, compressor, creatoropts=None): | 74 | kernel_dir, native_sysroot, compressor, creatoropts=None, |
| 75 | bmap=False): | ||
| 75 | """ | 76 | """ |
| 76 | Initialize a DirectImageCreator instance. | 77 | Initialize a DirectImageCreator instance. |
| 77 | 78 | ||
| @@ -93,6 +94,7 @@ class DirectImageCreator(BaseImageCreator): | |||
| 93 | self.kernel_dir = kernel_dir | 94 | self.kernel_dir = kernel_dir |
| 94 | self.native_sysroot = native_sysroot | 95 | self.native_sysroot = native_sysroot |
| 95 | self.compressor = compressor | 96 | self.compressor = compressor |
| 97 | self.bmap = bmap | ||
| 96 | 98 | ||
| 97 | def __get_part_num(self, num, parts): | 99 | def __get_part_num(self, num, parts): |
| 98 | """calculate the real partition number, accounting for partitions not | 100 | """calculate the real partition number, accounting for partitions not |
| @@ -333,12 +335,17 @@ class DirectImageCreator(BaseImageCreator): | |||
| 333 | self.bootimg_dir, | 335 | self.bootimg_dir, |
| 334 | self.kernel_dir, | 336 | self.kernel_dir, |
| 335 | self.native_sysroot) | 337 | self.native_sysroot) |
| 336 | # Compress the image | 338 | |
| 337 | if self.compressor: | 339 | for disk_name, disk in self.__image.disks.items(): |
| 338 | for disk_name, disk in self.__image.disks.items(): | 340 | full_path = self._full_path(self.__imgdir, disk_name, "direct") |
| 339 | full_path = self._full_path(self.__imgdir, disk_name, "direct") | 341 | # Generate .bmap |
| 340 | msger.debug("Compressing disk %s with %s" % \ | 342 | if self.bmap: |
| 341 | (disk_name, self.compressor)) | 343 | msger.debug("Generating bmap file for %s" % disk_name) |
| 344 | exec_native_cmd("bmaptool create %s -o %s.bmap" % (full_path, full_path), | ||
| 345 | self.native_sysroot) | ||
| 346 | # Compress the image | ||
| 347 | if self.compressor: | ||
| 348 | msger.debug("Compressing disk %s with %s" % (disk_name, self.compressor)) | ||
| 342 | exec_cmd("%s %s" % (self.compressor, full_path)) | 349 | exec_cmd("%s %s" % (self.compressor, full_path)) |
| 343 | 350 | ||
| 344 | def print_outimage_info(self): | 351 | def print_outimage_info(self): |
