diff options
| author | Stefan Stanacar <stefanx.stanacar@intel.com> | 2014-03-06 19:57:25 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-11 09:30:14 -0700 |
| commit | 9d04183cf8aed9eaa2aa03058488b1198f73cea0 (patch) | |
| tree | 83baa1ccab871cb465fecdc88aaa112fe75cb68b | |
| parent | de18567e623ffa1033dc1ba236cad2fa34143e56 (diff) | |
| download | poky-9d04183cf8aed9eaa2aa03058488b1198f73cea0.tar.gz | |
bootimg/grub-efi.bbclass: allow using a different class for EFI images
Abstract away some names so one can select using EFI_PROVIDER a different
class than grub-efi for populating live images, basically allowing the use
of a different bootloader than grub-efi.
(From OE-Core rev: 14e5de3b8f4d5902d0ac683ff45fb878e88b40ef)
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/classes/boot-directdisk.bbclass | 7 | ||||
| -rw-r--r-- | meta/classes/bootimg.bbclass | 9 | ||||
| -rw-r--r-- | meta/classes/grub-efi.bbclass | 12 |
3 files changed, 15 insertions, 13 deletions
diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass index 42b341536a..88e5c52e2b 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass | |||
| @@ -32,7 +32,8 @@ BOOTDD_VOLUME_ID ?= "boot" | |||
| 32 | BOOTDD_EXTRA_SPACE ?= "16384" | 32 | BOOTDD_EXTRA_SPACE ?= "16384" |
| 33 | 33 | ||
| 34 | EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" | 34 | EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" |
| 35 | EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}" | 35 | EFI_PROVIDER ?= "grub-efi" |
| 36 | EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}" | ||
| 36 | 37 | ||
| 37 | # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not | 38 | # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not |
| 38 | # contain "efi". This way legacy is supported by default if neither is | 39 | # contain "efi". This way legacy is supported by default if neither is |
| @@ -87,7 +88,7 @@ build_boot_dd() { | |||
| 87 | syslinux_hddimg_populate $HDDDIR | 88 | syslinux_hddimg_populate $HDDDIR |
| 88 | fi | 89 | fi |
| 89 | if [ "${EFI}" = "1" ]; then | 90 | if [ "${EFI}" = "1" ]; then |
| 90 | grubefi_hddimg_populate $HDDDIR | 91 | efi_hddimg_populate $HDDDIR |
| 91 | fi | 92 | fi |
| 92 | 93 | ||
| 93 | if [ "${IS_VMDK}" = "true" ]; then | 94 | if [ "${IS_VMDK}" = "true" ]; then |
| @@ -154,7 +155,7 @@ python do_bootdirectdisk() { | |||
| 154 | if d.getVar("PCBIOS", True) == "1": | 155 | if d.getVar("PCBIOS", True) == "1": |
| 155 | bb.build.exec_func('build_syslinux_cfg', d) | 156 | bb.build.exec_func('build_syslinux_cfg', d) |
| 156 | if d.getVar("EFI", True) == "1": | 157 | if d.getVar("EFI", True) == "1": |
| 157 | bb.build.exec_func('build_grub_cfg', d) | 158 | bb.build.exec_func('build_efi_cfg', d) |
| 158 | bb.build.exec_func('build_boot_dd', d) | 159 | bb.build.exec_func('build_boot_dd', d) |
| 159 | } | 160 | } |
| 160 | 161 | ||
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index c370bd6a10..b13eef965d 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass | |||
| @@ -42,7 +42,8 @@ BOOTIMG_VOLUME_ID ?= "boot" | |||
| 42 | BOOTIMG_EXTRA_SPACE ?= "512" | 42 | BOOTIMG_EXTRA_SPACE ?= "512" |
| 43 | 43 | ||
| 44 | EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" | 44 | EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" |
| 45 | EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}" | 45 | EFI_PROVIDER ?= "grub-efi" |
| 46 | EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}" | ||
| 46 | 47 | ||
| 47 | # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not | 48 | # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not |
| 48 | # contain "efi". This way legacy is supported by default if neither is | 49 | # contain "efi". This way legacy is supported by default if neither is |
| @@ -89,7 +90,7 @@ build_iso() { | |||
| 89 | syslinux_iso_populate ${ISODIR} | 90 | syslinux_iso_populate ${ISODIR} |
| 90 | fi | 91 | fi |
| 91 | if [ "${EFI}" = "1" ]; then | 92 | if [ "${EFI}" = "1" ]; then |
| 92 | grubefi_iso_populate ${ISODIR} | 93 | efi_iso_populate ${ISODIR} |
| 93 | build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img | 94 | build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img |
| 94 | fi | 95 | fi |
| 95 | 96 | ||
| @@ -206,7 +207,7 @@ build_hddimg() { | |||
| 206 | syslinux_hddimg_populate ${HDDDIR} | 207 | syslinux_hddimg_populate ${HDDDIR} |
| 207 | fi | 208 | fi |
| 208 | if [ "${EFI}" = "1" ]; then | 209 | if [ "${EFI}" = "1" ]; then |
| 209 | grubefi_hddimg_populate ${HDDDIR} | 210 | efi_hddimg_populate ${HDDDIR} |
| 210 | fi | 211 | fi |
| 211 | 212 | ||
| 212 | build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg | 213 | build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg |
| @@ -227,7 +228,7 @@ python do_bootimg() { | |||
| 227 | if d.getVar("PCBIOS", True) == "1": | 228 | if d.getVar("PCBIOS", True) == "1": |
| 228 | bb.build.exec_func('build_syslinux_cfg', d) | 229 | bb.build.exec_func('build_syslinux_cfg', d) |
| 229 | if d.getVar("EFI", True) == "1": | 230 | if d.getVar("EFI", True) == "1": |
| 230 | bb.build.exec_func('build_grub_cfg', d) | 231 | bb.build.exec_func('build_efi_cfg', d) |
| 231 | bb.build.exec_func('build_hddimg', d) | 232 | bb.build.exec_func('build_hddimg', d) |
| 232 | bb.build.exec_func('build_iso', d) | 233 | bb.build.exec_func('build_iso', d) |
| 233 | } | 234 | } |
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass index 71bd00fe99..5c80c177de 100644 --- a/meta/classes/grub-efi.bbclass +++ b/meta/classes/grub-efi.bbclass | |||
| @@ -26,7 +26,7 @@ GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" | |||
| 26 | 26 | ||
| 27 | EFIDIR = "/EFI/BOOT" | 27 | EFIDIR = "/EFI/BOOT" |
| 28 | 28 | ||
| 29 | grubefi_populate() { | 29 | efi_populate() { |
| 30 | # DEST must be the root of the image so that EFIDIR is not | 30 | # DEST must be the root of the image so that EFIDIR is not |
| 31 | # nested under a top level directory. | 31 | # nested under a top level directory. |
| 32 | DEST=$1 | 32 | DEST=$1 |
| @@ -42,9 +42,9 @@ grubefi_populate() { | |||
| 42 | install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR} | 42 | install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR} |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | grubefi_iso_populate() { | 45 | efi_iso_populate() { |
| 46 | iso_dir=$1 | 46 | iso_dir=$1 |
| 47 | grubefi_populate $iso_dir | 47 | efi_populate $iso_dir |
| 48 | # Build a EFI directory to create efi.img | 48 | # Build a EFI directory to create efi.img |
| 49 | mkdir -p ${EFIIMGDIR}/${EFIDIR} | 49 | mkdir -p ${EFIIMGDIR}/${EFIDIR} |
| 50 | cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} | 50 | cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} |
| @@ -55,11 +55,11 @@ grubefi_iso_populate() { | |||
| 55 | fi | 55 | fi |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | grubefi_hddimg_populate() { | 58 | efi_hddimg_populate() { |
| 59 | grubefi_populate $1 | 59 | efi_populate $1 |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | python build_grub_cfg() { | 62 | python build_efi_cfg() { |
| 63 | import sys | 63 | import sys |
| 64 | 64 | ||
| 65 | workdir = d.getVar('WORKDIR', True) | 65 | workdir = d.getVar('WORKDIR', True) |
