[v2,3/7] grub-efi-native: Add support for EFI ISO images

Submitted by Jason Wessel on Sept. 14, 2013, 12:08 a.m.

Details

Message ID 1379117343-29877-4-git-send-email-jason.wessel@windriver.com
State Accepted
Commit 0bc0762a479b5182a07fccb2b1e9cd5fc15ca485
Headers show

Commit Message

Jason Wessel Sept. 14, 2013, 12:08 a.m.
The iso9660 file system support needs to be added to grub in order to
be able to correctly find the grub.cfg.  The grub commands to locate
the grub.cfg also needs to be encoded into grub's default
configuration.

This change allows the resulting grub binary to work both in the hard
drive / USB boot case or the optical media boot case.

[YOCTO #4100]

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 meta/recipes-bsp/grub/files/cfg               |    2 ++
 meta/recipes-bsp/grub/grub-efi-native_2.00.bb |    7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-bsp/grub/files/cfg

Patch hide | download patch | download mbox

diff --git a/meta/recipes-bsp/grub/files/cfg b/meta/recipes-bsp/grub/files/cfg
new file mode 100644
index 0000000..ffffe47
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/cfg
@@ -0,0 +1,2 @@ 
+search.file /EFI/BOOT/grub.cfg root
+set prefix=($root)/EFI/BOOT
diff --git a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
index 2d3d68a..04973b5 100644
--- a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
+++ b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
@@ -23,6 +23,7 @@  PR = "r2"
 PN := "grub-efi-${TRANSLATED_TARGET_ARCH}-native"
 
 SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
+           file://cfg \
            file://grub-2.00-fpmath-sse-387-fix.patch \
            file://grub-2.00-fix-enable_execute_stack-check.patch \
            file://grub-2.00-disable-help2man.patch \
@@ -66,9 +67,11 @@  EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \
                 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
 
 do_mkimage() {
-	./grub-mkimage -p /EFI/BOOT -d ./grub-core/ \
+	# Search for the grub.cfg on the local boot media by using the
+	# built in cfg file provided via this recipe
+	./grub-mkimage -c ../cfg -p /EFI/BOOT -d ./grub-core/ \
 	               -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE} \
-	               boot linux ext2 fat serial part_msdos part_gpt normal efi_gop
+	               boot linux ext2 fat serial part_msdos part_gpt normal efi_gop iso9660 search
 }
 addtask mkimage after do_compile before do_install
 

Comments

Darren Hart Sept. 16, 2013, 5:24 p.m.
On Fri, 2013-09-13 at 19:08 -0500, Jason Wessel wrote:
> The iso9660 file system support needs to be added to grub in order to
> be able to correctly find the grub.cfg.  The grub commands to locate
> the grub.cfg also needs to be encoded into grub's default
> configuration.
> 
> This change allows the resulting grub binary to work both in the hard
> drive / USB boot case or the optical media boot case.
> 
> [YOCTO #4100]
> 
> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>


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

> ---
>  meta/recipes-bsp/grub/files/cfg               |    2 ++
>  meta/recipes-bsp/grub/grub-efi-native_2.00.bb |    7 +++++--
>  2 files changed, 7 insertions(+), 2 deletions(-)
>  create mode 100644 meta/recipes-bsp/grub/files/cfg
> 
> diff --git a/meta/recipes-bsp/grub/files/cfg b/meta/recipes-bsp/grub/files/cfg
> new file mode 100644
> index 0000000..ffffe47
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/files/cfg
> @@ -0,0 +1,2 @@
> +search.file /EFI/BOOT/grub.cfg root
> +set prefix=($root)/EFI/BOOT
> diff --git a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> index 2d3d68a..04973b5 100644
> --- a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> +++ b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> @@ -23,6 +23,7 @@ PR = "r2"
>  PN := "grub-efi-${TRANSLATED_TARGET_ARCH}-native"
>  
>  SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
> +           file://cfg \
>             file://grub-2.00-fpmath-sse-387-fix.patch \
>             file://grub-2.00-fix-enable_execute_stack-check.patch \
>             file://grub-2.00-disable-help2man.patch \
> @@ -66,9 +67,11 @@ EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \
>                  --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
>  
>  do_mkimage() {
> -	./grub-mkimage -p /EFI/BOOT -d ./grub-core/ \
> +	# Search for the grub.cfg on the local boot media by using the
> +	# built in cfg file provided via this recipe
> +	./grub-mkimage -c ../cfg -p /EFI/BOOT -d ./grub-core/ \
>  	               -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE} \
> -	               boot linux ext2 fat serial part_msdos part_gpt normal efi_gop
> +	               boot linux ext2 fat serial part_msdos part_gpt normal efi_gop iso9660 search
>  }
>  addtask mkimage after do_compile before do_install
>