[OE-core] [PATCH 3/3] bootimg.bbclass: only inherit syslinux when pcbios

Saul Wold saul.wold at intel.com
Thu Mar 31 01:01:41 UTC 2016


On Tue, 2016-03-22 at 02:48 -0700, Robert Yang wrote:
> syslinux.bbclass should not be seen when use efi.
> 
That's not completely true, there is a case which still requires the
ioslinux.bin binary when EFI is used.  In the build_iso() function
there is a workaround that is still required and uses isolinux.bin

This change breaks building EFI only machines (intel-quark for example)

Please check into this.
Thanks

Sau!

> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  meta/classes/boot-directdisk.bbclass |    1 -
>  meta/classes/bootimg.bbclass         |    9 +++++++--
>  meta/classes/image-live.bbclass      |    1 -
>  meta/classes/syslinux.bbclass        |    7 +++----
>  4 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/meta/classes/boot-directdisk.bbclass
> b/meta/classes/boot-directdisk.bbclass
> index c6ada47..46f88ac 100644
> --- a/meta/classes/boot-directdisk.bbclass
> +++ b/meta/classes/boot-directdisk.bbclass
> @@ -59,7 +59,6 @@ inherit ${EFI_CLASS}
>  
>  DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
>  ROOT_VM ?= "root=/dev/sda2"
> -SYSLINUX_CFG_VM  ?= "${S}/syslinux_vm.cfg"
>  
>  boot_direct_populate() {
>  	dest=$1
> diff --git a/meta/classes/bootimg.bbclass
> b/meta/classes/bootimg.bbclass
> index 70ce070..d9ed7db 100644
> --- a/meta/classes/bootimg.bbclass
> +++ b/meta/classes/bootimg.bbclass
> @@ -40,6 +40,11 @@ EFIIMGDIR = "${S}/efi_img"
>  COMPACT_ISODIR = "${S}/iso.z"
>  COMPRESSISO ?= "0"
>  
> +ISOLINUXDIR ?= "/isolinux"
> +ISO_BOOTIMG = "isolinux/isolinux.bin"
> +ISO_BOOTCAT = "isolinux/boot.cat"
> +MKISOFS_OPTIONS = "-no-emul-boot -boot-load-size 4 -boot-info-table"
> +
>  BOOTIMG_VOLUME_ID   ?= "boot"
>  BOOTIMG_EXTRA_SPACE ?= "512"
>  
> @@ -59,10 +64,10 @@ def pcbios(d):
>      return pcbios
>  
>  PCBIOS = "${@pcbios(d)}"
> +PCBIOS_CLASS = "${@['','syslinux'][d.getVar('PCBIOS', True) ==
> '1']}"
>  
> -# The syslinux is required for the isohybrid command and boot
> catalog
> -inherit syslinux
>  inherit ${EFI_CLASS}
> +inherit ${PCBIOS_CLASS}
>  
>  populate() {
>  	DEST=$1
> diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-
> live.bbclass
> index 504725d..05e416a 100644
> --- a/meta/classes/image-live.bbclass
> +++ b/meta/classes/image-live.bbclass
> @@ -3,7 +3,6 @@ INITRD_IMAGE_LIVE ?= "core-image-minimal-initramfs"
>  INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-
> ${MACHINE}.cpio.gz"
>  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/syslinux.bbclass
> b/meta/classes/syslinux.bbclass
> index 6de656b..7d324c3 100644
> --- a/meta/classes/syslinux.bbclass
> +++ b/meta/classes/syslinux.bbclass
> @@ -20,7 +20,7 @@
>  do_bootimg[depends] += "${MLPREFIX}syslinux:do_populate_sysroot \
>                          syslinux-native:do_populate_sysroot"
>  
> -ISOLINUXDIR = "/isolinux"
> +ISOLINUXDIR ?= "/isolinux"
>  SYSLINUXDIR = "/"
>  # The kernel has an internal default console, which you can override
> with
>  # a console=...some_tty...
> @@ -30,10 +30,9 @@ SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
>  SYSLINUX_PROMPT ?= "0"
>  SYSLINUX_TIMEOUT ?= "50"
>  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}"
> +SYSLINUX_CFG_VM  ?= "${S}/syslinux_vm.cfg"
> +SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
>  APPEND_prepend = " ${SYSLINUX_ROOT} "
>  
>  # Need UUID utility code.
> -- 
> 1.7.9.5
> 



More information about the Openembedded-core mailing list