]> code.ossystems Code Review - openembedded-core.git/commitdiff
bootimg.bbclass: fix settings for grub-efi.bbclass
authorRobert Yang <liezhi.yang@windriver.com>
Tue, 22 Mar 2016 09:48:19 +0000 (02:48 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 24 Mar 2016 21:44:26 +0000 (21:44 +0000)
Fixed:
- Found potential conflicted var LABELS ...
  Set LABELS to "boot install" would build out broken images when build
  vm + live together, use set_live_vm_vars() to fix the problem.

- Use ROOT and LABEL in boot-directdisk.bbclass and image-foo.bbclass,
  they are not only used by syslinux.bbclass, but also grub-efi.bbclass,
  add "SYSLINUX_" prefix would mislead users.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/classes/boot-directdisk.bbclass
meta/classes/bootimg.bbclass
meta/classes/grub-efi.bbclass
meta/classes/image-live.bbclass
meta/classes/image-vm.bbclass
meta/classes/image.bbclass
meta/classes/syslinux.bbclass

index fcdef26fd8e6c8cb343f79bbece9645bc9bd5902..c6ada47479afc474fa664c4eb7abc1ceb061054b 100644 (file)
@@ -58,8 +58,8 @@ inherit ${PCBIOS_CLASS}
 inherit ${EFI_CLASS}
 
 DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
-SYSLINUX_ROOT_VM ?= "root=/dev/sda2"
-SYSLINUX_CFG_VM  ?= "${S}/syslinux_hdd.cfg"
+ROOT_VM ?= "root=/dev/sda2"
+SYSLINUX_CFG_VM  ?= "${S}/syslinux_vm.cfg"
 
 boot_direct_populate() {
        dest=$1
@@ -160,8 +160,8 @@ build_boot_dd() {
 
 python do_bootdirectdisk() {
     validate_disk_signature(d)
+    set_live_vm_vars(d, 'VM')
     if d.getVar("PCBIOS", True) == "1":
-        syslinux_set_vars(d, 'VM')
         bb.build.exec_func('build_syslinux_cfg', d)
     if d.getVar("EFI", True) == "1":
         bb.build.exec_func('build_efi_cfg', d)
index 0249a9dcf76dbbbed9e10497433ca33c0d3e25d1..70ce07032bd73f8357b9797ca63482f1bdefa338 100644 (file)
@@ -49,8 +49,6 @@ EFI_CLASS = "${@bb.utils.contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}",
 
 KERNEL_IMAGETYPE ??= "bzImage"
 
-LABELS ?= "boot install"
-
 # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not
 # contain "efi". This way legacy is supported by default if neither is
 # specified, maintaining the original behavior.
@@ -282,8 +280,8 @@ build_hddimg() {
 }
 
 python do_bootimg() {
+    set_live_vm_vars(d, 'LIVE')
     if d.getVar("PCBIOS", True) == "1":
-        syslinux_set_vars(d, 'LIVE')
         bb.build.exec_func('build_syslinux_cfg', d)
     if d.getVar("EFI", True) == "1":
         bb.build.exec_func('build_efi_cfg', d)
index 9a4220abdc84fce3298671d88316e775736f907d..331581d78d3aa030821d21dde6e950ac94a05508 100644 (file)
@@ -25,6 +25,7 @@ GRUB_TIMEOUT ?= "10"
 GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
 
 EFIDIR = "/EFI/BOOT"
+APPEND_prepend = " ${ROOT} "
 
 # Need UUID utility code.
 inherit fs-uuid
index b8f21cb7a51e35e0e75aa9bfccdfc9365e728adb..504725d266b7d708b60503d7d29b1d35b01dfe7c 100644 (file)
@@ -1,9 +1,8 @@
 
 INITRD_IMAGE_LIVE ?= "core-image-minimal-initramfs"
 INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.cpio.gz"
-SYSLINUX_ROOT_LIVE ?= "root=/dev/ram0"
-SYSLINUX_LABELS_LIVE ?= "boot install"
-LABELS_LIVE ?= "${SYSLINUX_LABELS_LIVE}"
+ROOT_LIVE ?= "root=/dev/ram0"
+LABELS_LIVE ?= "boot install"
 SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
 
 ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.ext4"
index 17e87a5a87ae852e2a50e562be947a9eace79862..8608ec0c11d7abad4388d684d6a28d49310df3ad 100644 (file)
@@ -1,6 +1,5 @@
 
-SYSLINUX_LABELS_VM ?= "boot"
-LABELS_VM ?= "${SYSLINUX_LABELS_VM}"
+LABELS_VM ?= "boot"
 
 # Using an initramfs is optional. Enable it by setting INITRD_IMAGE_VM.
 INITRD_IMAGE_VM ?= ""
index 3ab432e06c948b895dca570e81a3f0be89b49fbf..560cc6d894d31c593d73245129ea3c95343d66d0 100644 (file)
@@ -539,3 +539,16 @@ do_bundle_initramfs () {
        :
 }
 addtask bundle_initramfs after do_image_complete
+
+# Some of the vars for vm and live image are conflicted, this function
+# is used for fixing the problem.
+def set_live_vm_vars(d, suffix):
+    vars = ['SYSLINUX_CFG', 'ROOT', 'LABELS', 'INITRD']
+    for var in vars:
+        var_with_suffix = var + '_' + suffix
+        if d.getVar(var, True):
+            bb.warn('Found potential conflicted var %s, please use %s rather than %s' % \
+                (var, var_with_suffix, var))
+        elif d.getVar(var_with_suffix, True):
+            d.setVar(var, d.getVar(var_with_suffix, True))
+
index 1b644b2561d59cf761c259e7050895e86c79f654..6de656bc137b897e035b3b86ff0eb05269af36bd 100644 (file)
@@ -33,23 +33,12 @@ AUTO_SYSLINUXMENU ?= "1"
 ISO_BOOTIMG = "isolinux/isolinux.bin"
 ISO_BOOTCAT = "isolinux/boot.cat"
 MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table"
+SYSLINUX_ROOT ?= "${ROOT}"
 APPEND_prepend = " ${SYSLINUX_ROOT} "
 
 # Need UUID utility code.
 inherit fs-uuid
 
-# Some of the vars for vm and live image are conflicted, this function
-# is used for fixing the problem.
-def syslinux_set_vars(d, suffix):
-    vars = ['SYSLINUX_ROOT', 'SYSLINUX_CFG', 'LABELS', 'INITRD']
-    for var in vars:
-        var_with_suffix = var + '_' + suffix
-        if d.getVar(var, True):
-            bb.warn('Found potential conflicted var %s, please use %s rather than %s' % \
-                (var, var_with_suffix, var))
-        elif d.getVar(var_with_suffix, True):
-            d.setVar(var, d.getVar(var_with_suffix, True))
-
 syslinux_populate() {
        DEST=$1
        BOOTDIR=$2