diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2016-03-22 02:48:19 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-24 21:44:26 +0000 |
commit | d7d1e0193c94abb1cd2daf1c298c8c1788f3616d (patch) | |
tree | c408a4e1980d42b933d201e31e2a9e7c254b7d8d /meta/classes | |
parent | 364f625480dca41d2902e209e4bfb675b1a93dce (diff) | |
download | openembedded-core-d7d1e0193c94abb1cd2daf1c298c8c1788f3616d.tar.gz openembedded-core-d7d1e0193c94abb1cd2daf1c298c8c1788f3616d.tar.bz2 openembedded-core-d7d1e0193c94abb1cd2daf1c298c8c1788f3616d.zip |
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 <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/boot-directdisk.bbclass | 6 | ||||
-rw-r--r-- | meta/classes/bootimg.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/grub-efi.bbclass | 1 | ||||
-rw-r--r-- | meta/classes/image-live.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/image-vm.bbclass | 3 | ||||
-rw-r--r-- | meta/classes/image.bbclass | 13 | ||||
-rw-r--r-- | 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 |