[PATCH] wic/plugins: Fix boot plugin

25 views
Skip to first unread message

Vijai Kumar K

unread,
Nov 26, 2020, 3:04:06 AM11/26/20
to isar-...@googlegroups.com, henning...@siemens.com, Vijai Kumar K
When we use --use-uuid along with bootimg plugin, it is observed
that the uuid updated in /etc/fstab is not same as the one the
disk created by bootimg has.

The latest wic[1] creates a UUID for use for these plugins, our ISAR
version of these plugins were not consuming the uuid generated by
wic while generating the partition. Instead a default volume id is
generated which is different from what is written by wic in fstab;
resulting in boot failure.

Fix the ISAR bootimg plugins to use the uuid from wic.
Also, enable --use-uuid with bootimg-pcbios-isar plugin in
common-isar.wks.inc for a testcase.

[1] https://github.com/openembedded/openembedded-core/commit/9256b8799495634ee8aee5d16ff71bd6e6e25ed4

Reported-by: Henning Schild <henning...@siemens.com>
Signed-off-by: Vijai Kumar K <Vijaikumar_...@mentor.com>
---
meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc | 2 +-
meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 3 ++-
meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py | 3 ++-
3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc b/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc
index cc38a01..4290edb 100644
--- a/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc
+++ b/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc
@@ -1,3 +1,3 @@
# This file is included into 3 canned wks files from this directory
-part /boot --source bootimg-pcbios-isar --ondisk sda --label boot --active --align 1024
+part /boot --use-uuid --source bootimg-pcbios-isar --ondisk sda --label boot --active --align 1024
part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --exclude-path=boot
diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 2285d2e..6b2fbc2 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -276,7 +276,8 @@ class BootimgEFIPlugin(SourcePlugin):
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir

- dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
+ dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \
+ (part.fsuuid, bootimg, blocks)
exec_cmd(dosfs_cmd)

mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
index 493615b..b3d71c5 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
@@ -209,7 +209,8 @@ class BootimgPcbiosIsarPlugin(SourcePlugin):
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir

- dosfs_cmd = "mkdosfs -n boot -S 512 -C %s %d" % (bootimg, blocks)
+ dosfs_cmd = "mkdosfs -n boot -i %s -S 512 -C %s %d" % \
+ (part.fsuuid, bootimg, blocks)
exec_native_cmd(dosfs_cmd, native_sysroot)

mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
--
2.17.1

Henning Schild

unread,
Nov 26, 2020, 3:39:56 AM11/26/20
to Vijai Kumar K, isar-...@googlegroups.com
Am Thu, 26 Nov 2020 13:33:28 +0530
schrieb Vijai Kumar K <Vijaikumar_...@mentor.com>:
This is a deviation that you needed for testing, but it is not what
upstream wic does. I would suggest to drop that.

> a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py index
> 2285d2e..6b2fbc2 100644 ---
> a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py +++
> b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py @@ -276,7
> +276,8 @@ class BootimgEFIPlugin(SourcePlugin): # dosfs image,
> created by mkdosfs bootimg = "%s/boot.img" % cr_workdir
> - dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
> + dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \
> + (part.fsuuid, bootimg, blocks)
> exec_cmd(dosfs_cmd)

This seems like stuff that was forgotten about when bumping wic, right?

Maybe worth diffing our fork plugins with their originals, in old and
new wic to see if anything else was forgotten.

Henning

vijaikumar....@gmail.com

unread,
Nov 26, 2020, 4:14:10 AM11/26/20
to isar-users
Will drop that in v2.
 

> a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
> b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py index
> 2285d2e..6b2fbc2 100644 ---
> a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py +++
> b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py @@ -276,7
> +276,8 @@ class BootimgEFIPlugin(SourcePlugin): # dosfs image,
> created by mkdosfs bootimg = "%s/boot.img" % cr_workdir
> - dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
> + dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \
> + (part.fsuuid, bootimg, blocks)
> exec_cmd(dosfs_cmd)

This seems like stuff that was forgotten about when bumping wic, right?

Maybe worth diffing our fork plugins with their originals, in old and
new wic to see if anything else was forgotten.

Yes. I will try to align our plugins close to their respective parent in upstream and will
send out a separate patchset if there are any changes. 

Thanks,
Vijai Kumar K

Vijai Kumar K

unread,
Nov 26, 2020, 4:18:14 AM11/26/20
to isar-...@googlegroups.com, henning...@siemens.com, Vijai Kumar K
When we use --use-uuid along with bootimg plugin, it is observed
that the uuid updated in /etc/fstab is not same as the one the
disk created by bootimg has.

The latest wic[1] creates a UUID for use for these plugins, our ISAR
version of these plugins were not consuming the uuid generated by
wic while generating the partition. Instead a default volume id is
generated which is different from what is written by wic in fstab;
resulting in boot failure.

Fix the ISAR bootimg plugins to use the uuid from wic.

Changes in v2:

Address review comment from Henning.
- Dropped --use-uuid from common-isar.wks.inc

meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py | 3 ++-
meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 2285d2e..6b2fbc2 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -276,7 +276,8 @@ class BootimgEFIPlugin(SourcePlugin):
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir

- dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
+ dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \
+ (part.fsuuid, bootimg, blocks)
exec_cmd(dosfs_cmd)

mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
index 493615b..b3d71c5 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py
@@ -209,7 +209,8 @@ class BootimgPcbiosIsarPlugin(SourcePlugin):
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir

- dosfs_cmd = "mkdosfs -n boot -S 512 -C %s %d" % (bootimg, blocks)
+ dosfs_cmd = "mkdosfs -n boot -i %s -S 512 -C %s %d" % \
+ (part.fsuuid, bootimg, blocks)
exec_native_cmd(dosfs_cmd, native_sysroot)

mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
--
2.17.1

Henning Schild

unread,
Nov 26, 2020, 9:35:47 AM11/26/20
to Vijai Kumar K, isar-...@googlegroups.com
Am Thu, 26 Nov 2020 14:47:50 +0530
schrieb Vijai Kumar K <Vijaikumar_...@mentor.com>:

> When we use --use-uuid along with bootimg plugin, it is observed
> that the uuid updated in /etc/fstab is not same as the one the
> disk created by bootimg has.
>
> The latest wic[1] creates a UUID for use for these plugins, our ISAR
> version of these plugins were not consuming the uuid generated by
> wic while generating the partition. Instead a default volume id is
> generated which is different from what is written by wic in fstab;
> resulting in boot failure.
>
> Fix the ISAR bootimg plugins to use the uuid from wic.
>
> [1]
> https://github.com/openembedded/openembedded-core/commit/9256b8799495634ee8aee5d16ff71bd6e6e25ed4
>
> Reported-by: Henning Schild <henning...@siemens.com>

Tested-by: Henning Schild <henning...@siemens.com>

> Signed-off-by: Vijai Kumar K <Vijaikumar_...@mentor.com>
> ---
> Changes in v2:
>
> Address review comment from Henning.
> - Dropped --use-uuid from common-isar.wks.inc

I think this can be merged. But i am still not clear if that is all
that we missed to update in the forked plugins. If it is all, good to
go!

If it is not i rather wait for all the bits instead of merging such a
hotfix, which in itself might have unexpected outcome.

Henning

Anton Mikanovich

unread,
Feb 10, 2021, 4:13:10 AM2/10/21
to Vijai Kumar K, isar-...@googlegroups.com, henning...@siemens.com
26.11.2020 12:17, Vijai Kumar K wrote:
> When we use --use-uuid along with bootimg plugin, it is observed
> that the uuid updated in /etc/fstab is not same as the one the
> disk created by bootimg has.
>
> The latest wic[1] creates a UUID for use for these plugins, our ISAR
> version of these plugins were not consuming the uuid generated by
> wic while generating the partition. Instead a default volume id is
> generated which is different from what is written by wic in fstab;
> resulting in boot failure.
>
> Fix the ISAR bootimg plugins to use the uuid from wic.
>
> [1] https://github.com/openembedded/openembedded-core/commit/9256b8799495634ee8aee5d16ff71bd6e6e25ed4
>
> Reported-by: Henning Schild <henning...@siemens.com>
> Signed-off-by: Vijai Kumar K <Vijaikumar_...@mentor.com>

Applied to next, thanks.

--
Anton Mikanovich
Promwad Ltd.
External service provider of ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn, Germany
+49 (89) 122 67 24-0
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov

Reply all
Reply to author
Forward
0 new messages