Bug 15033 - wic: uefi-kernel loader breaks usage of IMAGE_EFI_BOOT_FILES
Summary: wic: uefi-kernel loader breaks usage of IMAGE_EFI_BOOT_FILES
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: Scripts and Tools (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 4.2
Assignee: Pavel Zhukov
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2023-02-16 11:33 UTC by Pavel Zhukov
Modified: 2023-02-26 13:15 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Zhukov 2023-02-16 11:33:12 UTC
b18025fc8a2dad963b6f4b697e24455f2511b279 introduces possibility to have uefi-kernel loader in wic however it returns from  do_configure_partition() to early which causes AttributeError due to undefined 'install_task' attribute [1]
Reproducer is: 
part /boot --source bootimg-efi --sourceparams="loader=uefi-kernel" --ondisk=sda --fstype=vfat --label boot --active --align 1024 --use-uuid 
and:
IMAGE_EFI_BOOT_FILES += "mydtb.dtb;EFI/BOOT/"

[1]
| DEBUG: Executing shell function do_image_wic
| INFO: Creating image(s)...
| 
| Traceback (most recent call last):
|   File "/mnt/builds/yocto/sources/scripts/wic", line 547, in <module>
|     sys.exit(main(sys.argv[1:]))
|              ^^^^^^^^^^^^^^^^^^
|   File "/mnt/builds/yocto/sources/scripts/wic", line 542, in main
|     return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/help.py", line 83, in invoke_subcommand
|     subcmd[0](args, usage)
|   File "/mnt/builds/yocto/sources/scripts/wic", line 222, in wic_create_subcommand
|     engine.wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/engine.py", line 190, in wic_create
|     plugin.do_create()
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 98, in do_create
|     self.create()
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 186, in create
|     self._image.prepare(self)
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 367, in prepare
|     part.prepare(imager, imager.workdir, imager.oe_builddir,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/partition.py", line 186, in prepare
|     plugin.do_prepare_partition(self, srcparams_dict, creator,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/source/bootimg-efi.py", line 371, in do_prepare_partition
|     for src_path, dst_path in cls.install_task:
|                               ^^^^^^^^^^^^^^^^
| AttributeError: type object 'BootimgEFIPlugin' has no attribute 'install_task'. Did you mean: 'do_install_disk'?
Comment 2 Pavel Zhukov 2023-02-16 15:33:14 UTC
Nice to have test