Patchwork [0/4] Add gummiboot boot manager alongside grub-efi

login
register
mail settings
Submitter Stanacar, StefanX
Date March 9, 2014, 4:04 p.m.
Message ID <cover.1394379900.git.stefanx.stanacar@intel.com>
Download mbox
Permalink /patch/68309/
State New
Headers show

Pull-request

git://git.yoctoproject.org/poky-contrib stefans/gummiboot

Comments

Stanacar, StefanX - March 9, 2014, 4:04 p.m.
Hello,

This series adds recipes for gummiboot and a class allowing it to be used
as the boot loader for live/hddimg images.
Without changing EFI_PROVIDER, we have the same behaviour for EFI machines.
Using EFI_PROVIDER = "gummiboot" an installed image will use gummiboot instead
of grub-efi as it's boot manager.

I've tested this on FRI2, NUC and minnow (live USB boot and install from USB and boot) 
with  EFI_PROVIDER = "gummiboot" and  KERNEL_FEATURES_append = " cfg/efi-ext"
in local.conf

This is a partial fix for YB#4082.

Changes in V2:
 - split the first patch in two
 - used ${B} instead of ${S} in gummiboot do_deploy
 - change the function names in bootimg/grub-efi instead of using a
prefix

I've tested again the changes on top of master.

Cheers,
Stefan


The following changes since commit abe417e22b1b55c444460f722ca434f9d382ef87:

  classes/uboot-config: ignore doc varflag (2014-03-07 15:05:09 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib stefans/gummiboot
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=stefans/gummiboot

Stefan Stanacar (4):
  recipes-bsp: add gnu-efi recipe
  recipes-bsp: Add gummiboot recipe
  bootimg/grub-efi.bbclass: allow using a different class for EFI images
  classes: Add gummiboot class

 meta/classes/boot-directdisk.bbclass               |   7 +-
 meta/classes/bootimg.bbclass                       |   9 +-
 meta/classes/grub-efi.bbclass                      |  12 +--
 meta/classes/gummiboot.bbclass                     | 114 +++++++++++++++++++++
 .../gnu-efi/gnu-efi/parallel-make-archives.patch   |  48 +++++++++
 .../gnu-efi/gnu-efi/parallel-make.patch            |  22 ++++
 meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb           |  33 ++++++
 meta/recipes-bsp/gummiboot/gummiboot_git.bb        |  25 +++++
 .../initrdscripts/files/init-install-efi.sh        |  51 ++++++---
 9 files changed, 292 insertions(+), 29 deletions(-)
 create mode 100644 meta/classes/gummiboot.bbclass
 create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
 create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
 create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb
 create mode 100644 meta/recipes-bsp/gummiboot/gummiboot_git.bb
Stanacar, StefanX - March 9, 2014, 4:19 p.m.
I've forgot to add v2 to the subject lines :(
I'll resend with that added.

On Sun, 2014-03-09 at 18:04 +0200, Stefan Stanacar wrote:
> Hello,
> 
> This series adds recipes for gummiboot and a class allowing it to be used
> as the boot loader for live/hddimg images.
> Without changing EFI_PROVIDER, we have the same behaviour for EFI machines.
> Using EFI_PROVIDER = "gummiboot" an installed image will use gummiboot instead
> of grub-efi as it's boot manager.
> 
> I've tested this on FRI2, NUC and minnow (live USB boot and install from USB and boot) 
> with  EFI_PROVIDER = "gummiboot" and  KERNEL_FEATURES_append = " cfg/efi-ext"
> in local.conf
> 
> This is a partial fix for YB#4082.
> 
> Changes in V2:
>  - split the first patch in two
>  - used ${B} instead of ${S} in gummiboot do_deploy
>  - change the function names in bootimg/grub-efi instead of using a
> prefix
> 
> I've tested again the changes on top of master.
> 
> Cheers,
> Stefan
> 
> 
> The following changes since commit abe417e22b1b55c444460f722ca434f9d382ef87:
> 
>   classes/uboot-config: ignore doc varflag (2014-03-07 15:05:09 +0000)
> 
> are available in the git repository at:
> 
>   git://git.yoctoproject.org/poky-contrib stefans/gummiboot
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=stefans/gummiboot
> 
> Stefan Stanacar (4):
>   recipes-bsp: add gnu-efi recipe
>   recipes-bsp: Add gummiboot recipe
>   bootimg/grub-efi.bbclass: allow using a different class for EFI images
>   classes: Add gummiboot class
> 
>  meta/classes/boot-directdisk.bbclass               |   7 +-
>  meta/classes/bootimg.bbclass                       |   9 +-
>  meta/classes/grub-efi.bbclass                      |  12 +--
>  meta/classes/gummiboot.bbclass                     | 114 +++++++++++++++++++++
>  .../gnu-efi/gnu-efi/parallel-make-archives.patch   |  48 +++++++++
>  .../gnu-efi/gnu-efi/parallel-make.patch            |  22 ++++
>  meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb           |  33 ++++++
>  meta/recipes-bsp/gummiboot/gummiboot_git.bb        |  25 +++++
>  .../initrdscripts/files/init-install-efi.sh        |  51 ++++++---
>  9 files changed, 292 insertions(+), 29 deletions(-)
>  create mode 100644 meta/classes/gummiboot.bbclass
>  create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
>  create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
>  create mode 100644 meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb
>  create mode 100644 meta/recipes-bsp/gummiboot/gummiboot_git.bb
> 
> -- 
> 1.8.5.3
>
Darren Hart - March 10, 2014, 9:09 p.m.
On 3/9/14, 9:04, "Stefan Stanacar" <stefanx.stanacar@intel.com> wrote:

>Hello,
>
>This series adds recipes for gummiboot and a class allowing it to be used
>as the boot loader for live/hddimg images.
>Without changing EFI_PROVIDER, we have the same behaviour for EFI
>machines.
>Using EFI_PROVIDER = "gummiboot" an installed image will use gummiboot
>instead
>of grub-efi as it's boot manager.
>
>I've tested this on FRI2, NUC and minnow (live USB boot and install from
>USB and boot) 
>with  EFI_PROVIDER = "gummiboot" and  KERNEL_FEATURES_append = "
>cfg/efi-ext"
>in local.conf
>
>This is a partial fix for YB#4082.
>
>Changes in V2:
> - split the first patch in two
> - used ${B} instead of ${S} in gummiboot do_deploy
> - change the function names in bootimg/grub-efi instead of using a
>prefix
>
>I've tested again the changes on top of master.

This series looks much improved to me. I think it can go in as it stands.

Acked-by: Darren Hart <dvhart@linux.intel.com>

One thing I would like to see improved it the definition of the efi class
interface. I don't know how we do something like an abstract base class in
bb-speak, but someone wanting to add another EFI class needs to be able to
learn what the required methods and arguments are. Also, efi_populate()
isn't one of those interfaces, and that should probably not use the
generic efi_ prefix as it is effectively a gummiboot or grub-efi private
method, and should be named accordingly.

But, those are nitpics that can be cleaned up over time as we polish and
extend this mechanism. Time to get this in and get some broader
use/testing.

Ultimately, I'd like to see gummiboot as the default, but I can also just
set that in meta-intel if others do not agree.

Thank you for you efforts here Stefan!