[OE-core] [PATCH] wic: add 'part-name' argument for naming GPT partitions

Ed Bartosh ed.bartosh at linux.intel.com
Wed Nov 1 12:48:08 UTC 2017


On Tue, Oct 31, 2017 at 04:08:58PM +0100, Nicolas Dechesne wrote:
> On Tue, Oct 31, 2017 at 2:33 PM, Ed Bartosh <ed.bartosh at linux.intel.com> wrote:
> >
> > On Mon, Oct 30, 2017 at 08:53:09PM +0100, Artur Mądrzak wrote:
> > > The WIC's 'part' can now give a name for GPT partition in WKS file.
> > > It's similar to '--label', but is naming partitions instead file systems.
> > > It's required by some bootloaders to partitions have specified names.
> > >
> >
> > Thank you for the patch!
> >
> > +1
> 
> Yes, +1 from me as well. The context of this patch is for the Qualcomm
> SoC based board that have *interesting* bootloaders requirements, one
> of them being to look for partition by their names.
> 
> Patchwork complained about the patch, so Artur, please address these
> comments and resend the patch.
> 
> Ed: do you think this can be backported to previous release branches?
> The lack of --part-name on previous releases make WIC unusable for us.
> The backport is not trivial since many changes have happened, but
> Artur has a equivalent patch for morty at least.
> 

Yes, I think it can be backported. It shouldn't be hard to do especially
if there is a patch for morty. Just go ahead and send it for review. It
would be a good first step in this direction.

> 
> >
> >
> > > Signed-off-by: Artur Mądrzak <artur at madrzak.eu>
> > > ---
> > >  scripts/lib/wic/help.py                  |  2 ++
> > >  scripts/lib/wic/ksparser.py              |  1 +
> > >  scripts/lib/wic/partition.py             |  1 +
> > >  scripts/lib/wic/plugins/imager/direct.py | 11 +++++++++++
> > >  4 files changed, 15 insertions(+)
> > >
> > > diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
> > > index bd9c62e2e8..2ac45e052e 100644
> > > --- a/scripts/lib/wic/help.py
> > > +++ b/scripts/lib/wic/help.py
> > > @@ -970,6 +970,8 @@ DESCRIPTION
> > >                              This option cannot be used with --fixed-size
> > >                              option.
> > >
> > > +         --part-name: This option is specific to wic. It specifies name for
> > > GPT partitions.
> > > +
> > >           --part-type: This option is specific to wic. It specifies
> > > partition
> > >                        type GUID for GPT partitions.
> > >                        List of partition type GUIDS can be found here:
> > > diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
> > > index 99b66eebc5..7850e81d2f 100644
> > > --- a/scripts/lib/wic/ksparser.py
> > > +++ b/scripts/lib/wic/ksparser.py
> > > @@ -144,6 +144,7 @@ class KickStart():
> > >          part.add_argument('--no-table', action='store_true')
> > >          part.add_argument('--ondisk', '--ondrive', dest='disk',
> > > default='sda')
> > >          part.add_argument("--overhead-factor", type=overheadtype)
> > > +        part.add_argument('--part-name')
> > >          part.add_argument('--part-type')
> > >          part.add_argument('--rootfs-dir')
> > >
> > > diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
> > > index b623bb9e6d..66e61ba70c 100644
> > > --- a/scripts/lib/wic/partition.py
> > > +++ b/scripts/lib/wic/partition.py
> > > @@ -51,6 +51,7 @@ class Partition():
> > >          self.no_table = args.no_table
> > >          self.num = None
> > >          self.overhead_factor = args.overhead_factor
> > > +        self.part_name = args.part_name
> > >          self.part_type = args.part_type
> > >          self.rootfs_dir = args.rootfs_dir
> > >          self.size = args.size
> > > diff --git a/scripts/lib/wic/plugins/imager/direct.py
> > > b/scripts/lib/wic/plugins/imager/direct.py
> > > index 60317eed22..bdb8385620 100644
> > > --- a/scripts/lib/wic/plugins/imager/direct.py
> > > +++ b/scripts/lib/wic/plugins/imager/direct.py
> > > @@ -366,6 +366,10 @@ class PartitionedImage():
> > >          for num in range(len(self.partitions)):
> > >              part = self.partitions[num]
> > >
> > > +            if self.ptable_format == 'msdos' and part.part_name:
> > > +                raise WicError("setting custom partition name is not " \
> > > +                               "implemented for msdos partitions")
> > > +
> > >              if self.ptable_format == 'msdos' and part.part_type:
> > >                  # The --part-type can also be implemented for MBR
> > > partitions,
> > >                  # in which case it would map to the 1-byte "partition type"
> > > @@ -519,6 +523,13 @@ class PartitionedImage():
> > >              self._create_partition(self.path, part.type,
> > >                                     parted_fs_type, part.start,
> > > part.size_sec)
> > >
> > > +            if part.part_name:
> > > +                logger.debug("partition %d: set name to %s",
> > > +                             part.num, part.part_name)
> > > +                exec_native_cmd("sgdisk --change-name=%d:%s %s" % \
> > > +                                         (part.num, part.part_name,
> > > +                                          self.path), self.native_sysroot)
> > > +
> > >              if part.part_type:
> > >                  logger.debug("partition %d: set type UID to %s",
> > >                               part.num, part.part_type)
> > > --
> > > 2.13.6
> > >
> > > --
> > > _______________________________________________
> > > Openembedded-core mailing list
> > > Openembedded-core at lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >
> > --
> > --
> > Regards,
> > Ed
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core

--
Regards,
Ed



More information about the Openembedded-core mailing list