From d7d1e0193c94abb1cd2daf1c298c8c1788f3616d Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Tue, 22 Mar 2016 02:48:19 -0700 Subject: bootimg.bbclass: fix settings for grub-efi.bbclass 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 Signed-off-by: Ross Burton --- meta/classes/boot-directdisk.bbclass | 6 +++--- meta/classes/bootimg.bbclass | 4 +--- meta/classes/grub-efi.bbclass | 1 + meta/classes/image-live.bbclass | 5 ++--- meta/classes/image-vm.bbclass | 3 +-- meta/classes/image.bbclass | 13 +++++++++++++ meta/classes/syslinux.bbclass | 13 +------------ 7 files changed, 22 insertions(+), 23 deletions(-) diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass index fcdef26fd8..c6ada47479 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass @@ -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) diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index 0249a9dcf7..70ce07032b 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass @@ -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) diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass index 9a4220abdc..331581d78d 100644 --- a/meta/classes/grub-efi.bbclass +++ b/meta/classes/grub-efi.bbclass @@ -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 diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass index b8f21cb7a5..504725d266 100644 --- a/meta/classes/image-live.bbclass +++ b/meta/classes/image-live.bbclass @@ -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" diff --git a/meta/classes/image-vm.bbclass b/meta/classes/image-vm.bbclass index 17e87a5a87..8608ec0c11 100644 --- a/meta/classes/image-vm.bbclass +++ b/meta/classes/image-vm.bbclass @@ -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 ?= "" diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 3ab432e06c..560cc6d894 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -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)) + diff --git a/meta/classes/syslinux.bbclass b/meta/classes/syslinux.bbclass index 1b644b2561..6de656bc13 100644 --- a/meta/classes/syslinux.bbclass +++ b/meta/classes/syslinux.bbclass @@ -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 -- cgit 1.2.3-korg