[OE-core] [PATCH v4 0/7] i#10073: generic EFI for wic

Wold, Saul saul.wold at intel.com
Thu Jun 1 15:21:51 UTC 2017


On Wed, 2017-05-17 at 13:47 +0000, Ed Bartosh wrote:
> Hi,
> 
> This patchset is an implementation of generic EFI approach for wic
> images.
> 
> Instead of introducing yet another wic plugin it uses existing APIs
> from
> EFI_PROVIDER classes to populate ${WORKDIR}/bootfs directory with EFI
> artifacts
> and bootloader configuration. This directory can be used by wic
> rootfs plugin
> to put into boot partition of the image.
> 
> Example kickstart file and 2 test cases were added to wic test suite
> to better
> illustrate the approach.
> 
> I personally like this approach much better than duplicating oe image
> creation
> functionality in wic plugins. This way we can have the code in one
> place and
> bootloaders can be configured the same way for oe and wic images.
> 

Ed,

I have been looking at this set of changes over the last few days, and
while I like the basic approach, I don't think it goes far enough.  I
am looking at how one would create a generic bootfs via a DEPLOY_DIR
and an image-bootfs.bb type of recipe that does the bootfs construction
instead of the existing systemd-boot or grub-efi bbclass construction.

This will allow for more flexibility in creating labels for
bootloaders, different types of boot loaders without having to create
classes.  We should then be able to construct the equivlant of hddimg
or iso images via a recipe that depends on the various do_deploy()
tasks of the images dependent items (syslinux, grub, virtual/kernel)
and configuration.

I think we are still too locked into prepare_wic_build() calling
build_efi_cfg and efi_bootfs_populate, which means wic still needs
knowledge of the boot loaders instead of just having a recipe populate
a bootfs partition and wic creating the partition and copying files
into it.

Maybe I am missing something, so please correct me if I am wrong.  I
have an example of what I am thinking of in contrib/sgw/wic_wip

Thanks

Sau!


> Changes in v2:
>  - added patch: fixed default value of GRUB_ROOT
>  - fixed typo in commit message: timage_types_wic > image_types_wic
> 
> Changes in v3:
>  - scheduled do_prepare_wic_build as earlier as possible
> 
> Changes in v4:
>  - fixed build on platforms that don't support EFI
>  - fixed non-gpl3 build
>  - fixed build failure in systemd-boot code caused by rescheduled
>    do_populate_bootfs to run earlier
> 
> The following changes since commit
> 920e1592fba8fd714b8fdf87f9792ebfa3377793:
> 
>   selftest: fix test_unsupported_subcommand test case (2017-05-17
> 13:35:28 +0000)
> 
> are available in the git repository at:
> 
>   git://git.yoctoproject.org/poky-contrib ed/wic/wip
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/wic/wip
> 
> Ed Bartosh (7):
>   systemd-boot: create output dir if it doesn't exist
>   efi: add efi_bootfs_populate API
>   image_types_wic: add do_populate_bootfs task
>   image_types_wic: merged 2 tasks
>   oe-selftest: add wic tests for generic EFI
>   grub-efi: fixed default value of GRUB_ROOT
>   image_types_wic: schedule prepare_wic_build correctly
> 
>  meta-selftest/wic/test_generic_efi.wks.in |  9 ++++
>  meta/classes/grub-efi.bbclass             | 14 +++--
>  meta/classes/image_types_wic.bbclass      | 85
> +++++++++++++++++++++++--------
>  meta/classes/systemd-boot.bbclass         |  8 +++
>  meta/lib/oeqa/selftest/wic.py             | 36 +++++++++++++
>  5 files changed, 126 insertions(+), 26 deletions(-)
>  create mode 100644 meta-selftest/wic/test_generic_efi.wks.in
> 
> -- 
> Regards,
> Ed
> 


More information about the Openembedded-core mailing list