summaryrefslogtreecommitdiffstats
path: root/meta/classes/grub-efi.bbclass
diff options
context:
space:
mode:
authorDarren Hart <dvhart@linux.intel.com>2011-12-15 22:12:28 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-12-16 16:05:35 +0000
commit4ea37a8f6b0d671f11f7ec430e40f3111c50e5d6 (patch)
treefca70d4c49279baa699319c261ef7173a69c5afa /meta/classes/grub-efi.bbclass
parent6036845d1c07420a99b78421bb3479adf7d754e7 (diff)
downloadpoky-4ea37a8f6b0d671f11f7ec430e40f3111c50e5d6.tar.gz
grub-efi: Use /EFI/BOOT now that mkdosfs -d works with directories
[Yocto 1783] prevented us from using a proper /EFI/BOOT path in the live images due to a bug in the -d patch for mkdosfs in dosfstools. With this now fixed, we can place the efi payload where it belongs per spec and the images will autoboot to the grub menu on EFI platforms. (From OE-Core rev: badf0504f5ed4c5e48607922ac15c56463ad09ef) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/grub-efi.bbclass')
-rw-r--r--meta/classes/grub-efi.bbclass18
1 files changed, 3 insertions, 15 deletions
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 36b583111a..762322b28e 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -21,10 +21,8 @@ GRUB_TIMEOUT ?= "10"
21#FIXME: build this from the machine config 21#FIXME: build this from the machine config
22GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" 22GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
23 23
24# FIXME: add EFI/BOOT to GRUB_HDDDIR once the mkdosfs subdir bug is resolved
25# http://bugzilla.yoctoproject.org/show_bug.cgi?id=1783
26EFIDIR = "/EFI/BOOT" 24EFIDIR = "/EFI/BOOT"
27GRUB_HDDDIR = "${HDDDIR}" 25GRUB_HDDDIR = "${HDDDIR}${EFIDIR}"
28GRUB_ISODIR = "${ISODIR}${EFIDIR}" 26GRUB_ISODIR = "${ISODIR}${EFIDIR}"
29 27
30grubefi_populate() { 28grubefi_populate() {
@@ -53,22 +51,12 @@ grubefi_populate() {
53 51
54grubefi_iso_populate() { 52grubefi_iso_populate() {
55 grubefi_populate ${GRUB_ISODIR} 53 grubefi_populate ${GRUB_ISODIR}
56
57 # FIXUP the <EFIDIR> token in the config
58 # FIXME: This can be dropped once mkdosfs is fixed
59 sed -i "s@<EFIDIR>@${EFIDIR}@g" ${GRUB_ISODIR}/$(basename "${GRUBCFG}")
60} 54}
61 55
62grubefi_hddimg_populate() { 56grubefi_hddimg_populate() {
63 grubefi_populate ${GRUB_HDDDIR} 57 grubefi_populate ${GRUB_HDDDIR}
64
65 # FIXUP the <EFIDIR> token in the config
66 # FIXME: This can be dropped once mkdosfs is fixed
67 sed -i "s@<EFIDIR>@@g" ${GRUB_HDDDIR}/$(basename "${GRUBCFG}")
68} 58}
69 59
70# FIXME: The <EFIDIR> token can be replaced with ${EFIDIR} once the
71# mkdosfs bug is resolved.
72python build_grub_cfg() { 60python build_grub_cfg() {
73 import sys 61 import sys
74 62
@@ -121,7 +109,7 @@ python build_grub_cfg() {
121 bb.data.update_data(localdata) 109 bb.data.update_data(localdata)
122 110
123 cfgfile.write('\nmenuentry \'%s\'{\n' % (label)) 111 cfgfile.write('\nmenuentry \'%s\'{\n' % (label))
124 cfgfile.write('linux <EFIDIR>/vmlinuz LABEL=%s' % (label)) 112 cfgfile.write('linux ${EFIDIR}/vmlinuz LABEL=%s' % (label))
125 113
126 append = localdata.getVar('APPEND', True) 114 append = localdata.getVar('APPEND', True)
127 initrd = localdata.getVar('INITRD', True) 115 initrd = localdata.getVar('INITRD', True)
@@ -131,7 +119,7 @@ python build_grub_cfg() {
131 cfgfile.write('\n') 119 cfgfile.write('\n')
132 120
133 if initrd: 121 if initrd:
134 cfgfile.write('initrd <EFIDIR>/initrd') 122 cfgfile.write('initrd ${EFIDIR}/initrd')
135 cfgfile.write('\n}\n') 123 cfgfile.write('\n}\n')
136 124
137 cfgfile.close() 125 cfgfile.close()