Patchwork [0/5] EFI live image support

login
register
mail settings
Submitter Darren Hart
Date Nov. 30, 2011, 5:47 p.m.
Message ID <cover.1322674459.git.darren@dvhart.com>
Download mbox
Permalink /patch/15865/
State New
Headers show

Pull-request

git://git.yoctoproject.org/user-contrib/dvhart/oe-core efi/v1

Comments

Darren Hart - Nov. 30, 2011, 5:47 p.m.
This series provides optional support for EFI boot for live images, both hddimg
and ISO, on ia32 platforms. It creates a new grub-efi-native recipe to create
the boot image. bootimg.bbclass has been refactored and syslinux support has
been made optional. The new live images can be built as PCBIOS-legacy (the
original type), EFI, or both. The MACHINE_FEATURES values "pcbios" and "efi"
dictate this behavior, if neither are specified, it defaults to PCBIOS-legacy
only to maintain current behavior.

It is careful not to add unecessary dependencies to the build by dynamically
including only the necessary bootloader classes (syslinux and/or grub-efi).

EFI hddimg's do not install into /EFI/BOOT as is proper due to a bug in the
dosfstools: http://bugzilla.yoctoproject.org/show_bug.cgi?id=1783. For now, the
files are installed in the root directory and users will need to update their
firmware or use a startup.nsh script for pure EFI booting, or move them to
/EFI/BOOT manually.

Testing performed includes verification of the images built for the n450 BSP
with all combinations of the MACHINE_FEATURES. The syslinux and grub-efi boot
methods were validated on the n450 hardware as well. EFI-only ISO images are
untested, help here would be appreciated.

While the "install" target is preserved for the EFI boot, it will perform the
same install as it does currently - namely a GRUB legacy boot mechanism. Support
for EFI boot post install will follow in another patch series.

Thanks to Koen Kooi, Chris Larson, Richard Purdie, Josef Ahmad, Saul Wold, and
Joshua Lock for their contributions of expertise, code, and testing.


The following changes since commit 2864ff6a4b3c3f9b3bbb6d2597243cc5d3715939:

  getVar/setVar cleanups (2011-11-26 22:42:00 +0000)

are available in the git repository at:
  git://git.yoctoproject.org/user-contrib/dvhart/oe-core efi/v1
  http://git.yoctoproject.org/cgit.cgi/user-contrib/dvhart/oe-core/log/?h=efi/v1

Darren Hart (5):
  grub-efi-native: New recipe to build GRUB EFI images
  bootimg: Refactor build_hddimg and build_iso routines
  bootimg: Pull syslinux specific bits into syslinux.bbclass
  bootimg: Add grub-efi support
  bootimg: Allow for EFI-only boot images

 meta/classes/bootimg.bbclass                  |  148 +++++++++++++------------
 meta/classes/dummy.bbclass                    |    2 +
 meta/classes/grub-efi.bbclass                 |  140 +++++++++++++++++++++++
 meta/classes/syslinux.bbclass                 |   68 ++++++++++--
 meta/recipes-bsp/grub/grub-efi-native_1.99.bb |   74 ++++++++++++
 5 files changed, 353 insertions(+), 79 deletions(-)
 create mode 100644 meta/classes/dummy.bbclass
 create mode 100644 meta/classes/grub-efi.bbclass
 create mode 100644 meta/recipes-bsp/grub/grub-efi-native_1.99.bb
Richard Purdie - Nov. 30, 2011, 10:14 p.m.
On Wed, 2011-11-30 at 09:47 -0800, Darren Hart wrote:
> This series provides optional support for EFI boot for live images, both hddimg
> and ISO, on ia32 platforms. It creates a new grub-efi-native recipe to create
> the boot image. bootimg.bbclass has been refactored and syslinux support has
> been made optional. The new live images can be built as PCBIOS-legacy (the
> original type), EFI, or both. The MACHINE_FEATURES values "pcbios" and "efi"
> dictate this behavior, if neither are specified, it defaults to PCBIOS-legacy
> only to maintain current behavior.
> 
> It is careful not to add unecessary dependencies to the build by dynamically
> including only the necessary bootloader classes (syslinux and/or grub-efi).
> 
> EFI hddimg's do not install into /EFI/BOOT as is proper due to a bug in the
> dosfstools: http://bugzilla.yoctoproject.org/show_bug.cgi?id=1783. For now, the
> files are installed in the root directory and users will need to update their
> firmware or use a startup.nsh script for pure EFI booting, or move them to
> /EFI/BOOT manually.
> 
> Testing performed includes verification of the images built for the n450 BSP
> with all combinations of the MACHINE_FEATURES. The syslinux and grub-efi boot
> methods were validated on the n450 hardware as well. EFI-only ISO images are
> untested, help here would be appreciated.
> 
> While the "install" target is preserved for the EFI boot, it will perform the
> same install as it does currently - namely a GRUB legacy boot mechanism. Support
> for EFI boot post install will follow in another patch series.
> 
> Thanks to Koen Kooi, Chris Larson, Richard Purdie, Josef Ahmad, Saul Wold, and
> Joshua Lock for their contributions of expertise, code, and testing.
> 
> 
> The following changes since commit 2864ff6a4b3c3f9b3bbb6d2597243cc5d3715939:
> 
>   getVar/setVar cleanups (2011-11-26 22:42:00 +0000)
> 
> are available in the git repository at:
>   git://git.yoctoproject.org/user-contrib/dvhart/oe-core efi/v1
>   http://git.yoctoproject.org/cgit.cgi/user-contrib/dvhart/oe-core/log/?h=efi/v1
> 
> Darren Hart (5):
>   grub-efi-native: New recipe to build GRUB EFI images
>   bootimg: Refactor build_hddimg and build_iso routines
>   bootimg: Pull syslinux specific bits into syslinux.bbclass
>   bootimg: Add grub-efi support
>   bootimg: Allow for EFI-only boot images

Thanks for this, I know its taken a bit of work!

I'm a little frustrated we have to jump through the dummy class hoop but
that isn't your fault and we need to improve bitbake to better deal with
it. Some of the syntax in places isn't ideal either but I can't come up
with anything much better.

I'm going to merge it on the grounds this provides a good starting point
and if we find improvements we can make them on top of this.

Cheers

Richard