[OE-core] [wic][PATCH 4/6] wic: Implement image compressing

Ed Bartosh ed.bartosh at linux.intel.com
Wed Jun 24 15:23:17 UTC 2015


On Tue, Jun 23, 2015 at 07:22:49AM -0400, Philip Balister wrote:
> Can you add a way to enable multiple threads for xz? I found this helps
> speed up file creation.
>
I thought about this and other compressor options, but didn't find a good
way to add them. Introducing new commandline option or config value doesn't
look convenient to use from my point of view.

Can you propose something better than that?

Regards,
Ed

> Philip
> 
> On 06/23/2015 05:53 AM, Ed Bartosh wrote:
> > Implemented compressing result image with specified compressor.
> > Updated reporting code to show compressed image.
> > 
> > [YOCTO #7593]
> > 
> > Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
> > 
> > diff --git a/scripts/lib/wic/imager/direct.py b/scripts/lib/wic/imager/direct.py
> > index f3f20e0..2ea7e4e 100644
> > --- a/scripts/lib/wic/imager/direct.py
> > +++ b/scripts/lib/wic/imager/direct.py
> > @@ -33,6 +33,7 @@ from wic.utils.partitionedfs import Image
> >  from wic.utils.errors import CreatorError, ImageError
> >  from wic.imager.baseimager import BaseImageCreator
> >  from wic.plugin import pluginmgr
> > +from wic.utils.oe.misc import exec_cmd
> >  
> >  disk_methods = {
> >      "do_install_disk":None,
> > @@ -71,6 +72,7 @@ class DirectImageCreator(BaseImageCreator):
> >          self.bootimg_dir = bootimg_dir
> >          self.kernel_dir = kernel_dir
> >          self.native_sysroot = native_sysroot
> > +        self.compressor = compressor
> >  
> >      def __get_part_num(self, num, parts):
> >          """calculate the real partition number, accounting for partitions not
> > @@ -318,6 +320,13 @@ class DirectImageCreator(BaseImageCreator):
> >                                                          self.bootimg_dir,
> >                                                          self.kernel_dir,
> >                                                          self.native_sysroot)
> > +        # Compress the image
> > +        if self.compressor:
> > +            for disk_name, disk in self.__image.disks.items():
> > +                full_path = self._full_path(self.__imgdir, disk_name, "direct")
> > +                msger.debug("Compressing disk %s with %s" % \
> > +                            (disk_name, self.compressor))
> > +                exec_cmd("%s %s" % (self.compressor, full_path))
> >  
> >      def print_outimage_info(self):
> >          """
> > @@ -328,7 +337,11 @@ class DirectImageCreator(BaseImageCreator):
> >          parts = self._get_parts()
> >  
> >          for disk_name, disk in self.__image.disks.items():
> > -            full_path = self._full_path(self.__imgdir, disk_name, "direct")
> > +            extension = "direct" + {"gzip": ".gz",
> > +                                    "bzip2": ".bz2",
> > +                                    "xz": ".xz",
> > +                                    "": ""}.get(self.compressor)
> > +            full_path = self._full_path(self.__imgdir, disk_name, extension)
> >              msg += '  %s\n\n' % full_path
> >  
> >          msg += 'The following build artifacts were used to create the image(s):\n'
> > 

-- 
--
Regards,
Ed



More information about the Openembedded-core mailing list