[OE-core] [rocko][PATCH] wic: add 'part-name' argument for naming GPT partitions
akuster808
akuster808 at gmail.com
Wed Nov 8 15:46:11 UTC 2017
On 11/08/2017 03:04 AM, Nicolas Dechesne wrote:
> From: Artur Mądrzak <artur at madrzak.eu>
>
> The WIC's 'part' can now give a name for GPT partition in WKS file.
> It's similar to '--label', but is naming partintions instead file systems.
> It's required by some bootloaders to partitions have specified names.
>
> Backport from master, without it WIC cannot be used on Qualcomm based machines.
This is adding new functionality to a stable release. What other
machines need this to work?
- armin
>
> Signed-off-by: Artur Mądrzak <artur at madrzak.eu>
> Signed-off-by: Nicolas Dechesne <nicolas.dechesne at linaro.org>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> (cherry picked from commit 9b60e3466ed7cff0cea10815851eb1304002eb52)
> ---
> 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)
More information about the Openembedded-core
mailing list