Message ID | 1392766441-2160-4-git-send-email-thomas.petazzoni@free-electrons.com |
---|---|
State | Accepted |
Commit | 7961d45c24b76fc8112197f857c29d8e0b476d0a |
Headers | show |
Thomas, All, On 2014-02-19 00:33 +0100, Thomas Petazzoni spake thusly: > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Signed-off-by: Christophe Vu-Brugier <cvubrugier@yahoo.fr> [--SNIP--] > --- /dev/null > +++ b/boot/gummiboot/gummiboot.mk > @@ -0,0 +1,42 @@ > +################################################################################ > +# > +# gummiboot > +# > +################################################################################ > + > +GUMMIBOOT_SITE = git://anongit.freedesktop.org/gummiboot > +GUMMIBOOT_VERSION = 43 > +GUMMIBOOT_LICENSE = LGPLv2.1+ > +GUMMIBOOT_LICENSE_FILES = LICENSE > + > +# The git archive does not have the autoconf/automake stuff generated. > +GUMMIBOOT_AUTORECONF = YES > +GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux Ah, gnu-efi is used here. That's why we need to install it in staging/ and target/, right? Still, since this is a boot-related stuff, do we really need to have gnu-efi installed in target/ ? > +GUMMIBOOT_INSTALL_TARGET = NO > +GUMMIBOOT_INSTALL_IMAGES = YES > + > +ifeq ($(BR2_i386),y) > +GUMMIBOOT_IMGARCH = ia32 > +else ifeq ($(BR2_x86_64),y) > +GUMMIBOOT_IMGARCH = x64 > +endif Ditto: what about 32-bit EFI-BIOS on a 64-bit machine? Regards, Yann E. MORIN.
Dear Yann E. MORIN, On Wed, 19 Feb 2014 18:59:29 +0100, Yann E. MORIN wrote: > > +# The git archive does not have the autoconf/automake stuff generated. > > +GUMMIBOOT_AUTORECONF = YES > > +GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux > > Ah, gnu-efi is used here. That's why we need to install it in staging/ > and target/, right? To staging: no. > Still, since this is a boot-related stuff, do we really need to have > gnu-efi installed in target/ ? Correct, I believe installation to target is useless, as I've mentioned in my reply to your comments on the gnu-efi package. > > +GUMMIBOOT_INSTALL_TARGET = NO > > +GUMMIBOOT_INSTALL_IMAGES = YES > > + > > +ifeq ($(BR2_i386),y) > > +GUMMIBOOT_IMGARCH = ia32 > > +else ifeq ($(BR2_x86_64),y) > > +GUMMIBOOT_IMGARCH = x64 > > +endif > > Ditto: what about 32-bit EFI-BIOS on a 64-bit machine? From my testing, it doesn't work. And I'd say that if someone wants to work on this, it could be seen as a possible extension of the proposed patches, to be implemented and submitted later. Thanks! Thomas
Thomas, All, On 2014-02-19 19:59 +0100, Thomas Petazzoni spake thusly: > Dear Yann E. MORIN, > > On Wed, 19 Feb 2014 18:59:29 +0100, Yann E. MORIN wrote: > > > > +# The git archive does not have the autoconf/automake stuff generated. > > > +GUMMIBOOT_AUTORECONF = YES > > > +GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux > > > > Ah, gnu-efi is used here. That's why we need to install it in staging/ > > and target/, right? > > To staging: no. > > > Still, since this is a boot-related stuff, do we really need to have > > gnu-efi installed in target/ ? > > Correct, I believe installation to target is useless, as I've > mentioned in my reply to your comments on the gnu-efi package. OK, it now makes sense. :-) > > > +GUMMIBOOT_INSTALL_TARGET = NO > > > +GUMMIBOOT_INSTALL_IMAGES = YES > > > + > > > +ifeq ($(BR2_i386),y) > > > +GUMMIBOOT_IMGARCH = ia32 > > > +else ifeq ($(BR2_x86_64),y) > > > +GUMMIBOOT_IMGARCH = x64 > > > +endif > > > > Ditto: what about 32-bit EFI-BIOS on a 64-bit machine? > > From my testing, it doesn't work. And I'd say that if someone wants to > work on this, it could be seen as a possible extension of the proposed > patches, to be implemented and submitted later. Maybe add a little note in the help text stating this is not suported, then? Regards, Yann E. MORIN.
diff --git a/boot/Config.in b/boot/Config.in index c410d12..54760b9 100644 --- a/boot/Config.in +++ b/boot/Config.in @@ -7,6 +7,7 @@ source "boot/barebox/Config.in" source "boot/boot-wrapper-aarch64/Config.in" source "boot/grub/Config.in" source "boot/grub2/Config.in" +source "boot/gummiboot/Config.in" source "boot/lpc32xxcdl/Config.in" source "boot/mxs-bootlets/Config.in" source "boot/syslinux/Config.in" diff --git a/boot/gummiboot/Config.in b/boot/gummiboot/Config.in new file mode 100644 index 0000000..8d70680 --- /dev/null +++ b/boot/gummiboot/Config.in @@ -0,0 +1,28 @@ +config BR2_TARGET_GUMMIBOOT + bool "gummiboot" + depends on BR2_i386 || BR2_x86_64 + select BR2_PACKAGE_GNU_EFI + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + depends on BR2_LARGEFILE # util-linux + depends on BR2_USE_WCHAR # util-linux + help + gummiboot is a simple UEFI boot manager which executes + configured EFI images. The default entry is selected by a + configured pattern (glob) or an on-screen menu. + + gummiboot operates on the EFI System Partition (ESP) + only. Configuration file fragments, kernels, initrds, other + EFI images need to reside on the ESP. Linux kernels need to + be built with CONFIG_EFI_STUB to be able to be directly + executed as an EFI image. + + See the Grub2 help text for details on preparing an EFI + capable disk image using Gummiboot: the instructions are + exactly the same, except that the Gummiboot configuration + files will be located in /loader/ inside the EFI partition. + + http://freedesktop.org/wiki/Software/gummiboot/ + +comment "gummiboot needs a toolchain w/ largefile, wchar" + depends on !(BR2_LARGEFILE && BR2_USE_WCHAR) diff --git a/boot/gummiboot/buildroot.conf b/boot/gummiboot/buildroot.conf new file mode 100644 index 0000000..8a6f02e --- /dev/null +++ b/boot/gummiboot/buildroot.conf @@ -0,0 +1,4 @@ +title Buildroot +version 1 +linux /bzImage +options console=ttyS0 root=/dev/sda2 diff --git a/boot/gummiboot/gummiboot.mk b/boot/gummiboot/gummiboot.mk new file mode 100644 index 0000000..165a1b0 --- /dev/null +++ b/boot/gummiboot/gummiboot.mk @@ -0,0 +1,42 @@ +################################################################################ +# +# gummiboot +# +################################################################################ + +GUMMIBOOT_SITE = git://anongit.freedesktop.org/gummiboot +GUMMIBOOT_VERSION = 43 +GUMMIBOOT_LICENSE = LGPLv2.1+ +GUMMIBOOT_LICENSE_FILES = LICENSE + +# The git archive does not have the autoconf/automake stuff generated. +GUMMIBOOT_AUTORECONF = YES +GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux +GUMMIBOOT_INSTALL_TARGET = NO +GUMMIBOOT_INSTALL_IMAGES = YES + +ifeq ($(BR2_i386),y) +GUMMIBOOT_IMGARCH = ia32 +else ifeq ($(BR2_x86_64),y) +GUMMIBOOT_IMGARCH = x64 +endif + +GUMMIBOOT_CONF_OPT = \ + --host=$(BR2_ARCH) \ + --with-efi-libdir=$(STAGING_DIR)/usr/lib \ + --with-efi-ldsdir=$(STAGING_DIR)/usr/lib \ + --with-efi-includedir=$(STAGING_DIR)/usr/include \ + --disable-manpages + +define GUMMIBOOT_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \ + $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi + echo "boot$(GUMMIBOOT_IMGARCH).efi" > \ + $(BINARIES_DIR)/efi-part/startup.nsh + $(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \ + $(BINARIES_DIR)/efi-part/loader/loader.conf + $(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \ + $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf +endef + +$(eval $(autotools-package)) diff --git a/boot/gummiboot/loader.conf b/boot/gummiboot/loader.conf new file mode 100644 index 0000000..93b77b8 --- /dev/null +++ b/boot/gummiboot/loader.conf @@ -0,0 +1,2 @@ +timeout 3 +default buildroot