summaryrefslogtreecommitdiffstats
path: root/meta/classes/grub-efi.bbclass
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2016-04-01 00:32:55 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-03 15:51:35 +0100
commit1f2f43c5b08a449c963109332ac91653a9f3f5ef (patch)
tree94c452b158184d07a5c1e745484a6f9cc71b2109 /meta/classes/grub-efi.bbclass
parentbf5852681b9492afbad6f0425ee8a39547070817 (diff)
downloadpoky-1f2f43c5b08a449c963109332ac91653a9f3f5ef.tar.gz
grub-efi.bbclass: use GRUB_ROOT rather than APPEND for root device
Use APPEND for grub's root device may cause confusion, for example, when building efi + pcbios, there maybe be two root=/dev/ram0, one of them would be carried to the installed target, and the target would fail to boot. Use GRUB_ROOT to fix the problem, and remove SYSLINUX_ROOT from APPEND will fix the problem. [YOCTO #9354] (From OE-Core rev: 1f46fe7d501644c83f81dc4cc3310073c804f797) Signed-off-by: Robert Yang <liezhi.yang@windriver.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.bbclass10
1 files changed, 9 insertions, 1 deletions
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 3d8ff11ee8..4ce3d2844a 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -14,6 +14,7 @@
14# ${APPEND} - an override list of append strings for each label 14# ${APPEND} - an override list of append strings for each label
15# ${GRUB_OPTS} - additional options to add to the config, ';' delimited # (optional) 15# ${GRUB_OPTS} - additional options to add to the config, ';' delimited # (optional)
16# ${GRUB_TIMEOUT} - timeout before executing the deault label (optional) 16# ${GRUB_TIMEOUT} - timeout before executing the deault label (optional)
17# ${GRUB_ROOT} - grub's root device.
17 18
18do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy" 19do_bootimg[depends] += "${MLPREFIX}grub-efi:do_deploy"
19do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy" 20do_bootdirectdisk[depends] += "${MLPREFIX}grub-efi:do_deploy"
@@ -26,7 +27,8 @@ GRUB_TIMEOUT ?= "10"
26GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" 27GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
27 28
28EFIDIR = "/EFI/BOOT" 29EFIDIR = "/EFI/BOOT"
29APPEND_prepend = " ${ROOT} " 30GRUB_ROOT ?= "${ROOT}"
31APPEND ?= ""
30 32
31# Need UUID utility code. 33# Need UUID utility code.
32inherit fs-uuid 34inherit fs-uuid
@@ -108,6 +110,10 @@ python build_efi_cfg() {
108 else: 110 else:
109 cfgfile.write('timeout=50\n') 111 cfgfile.write('timeout=50\n')
110 112
113 root = d.getVar('GRUB_ROOT', True)
114 if not root:
115 raise bb.build.FuncFailed('GRUB_ROOT not defined')
116
111 if gfxserial == "1": 117 if gfxserial == "1":
112 btypes = [ [ " graphics console", "" ], 118 btypes = [ [ " graphics console", "" ],
113 [ " serial console", d.getVar('GRUB_SERIAL', True) or "" ] ] 119 [ " serial console", d.getVar('GRUB_SERIAL', True) or "" ] ]
@@ -131,6 +137,8 @@ python build_efi_cfg() {
131 lb = "install-efi" 137 lb = "install-efi"
132 cfgfile.write('linux /vmlinuz LABEL=%s' % (lb)) 138 cfgfile.write('linux /vmlinuz LABEL=%s' % (lb))
133 139
140 cfgfile.write(' %s' % replace_rootfs_uuid(d, root))
141
134 append = localdata.getVar('APPEND', True) 142 append = localdata.getVar('APPEND', True)
135 initrd = localdata.getVar('INITRD', True) 143 initrd = localdata.getVar('INITRD', True)
136 144