boot-directdisk.bbclass: Fix media generation problems with vmdk

The various populate methods need to accept a path as an argument vs
using hard expanded variables.  In the case of the boot-directdisk
class it uses a different path for HDDDIR but it gets eclipsed by the
the class definition at the point in time ${HDDDIR} gets expanded.

The logical fix is to pass the arguments to the functions as opposed
to using globally expanded variables from the class definitions.

This patch changes 3 things:
1) syslinux_hddimg_populate takes an argument for the destination
2) syslinux_iso_populate takes an argument for the destination
3) populate is changed to boot_direct_populate because there
   was a conflict with it overriding the populate in bootimg.bbclass

[YOCTO #3994]

(From OE-Core rev: 63d164b755b984021f7e3cdba7280918ded6e821)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jason Wessel 2013-09-17 13:32:17 +00:00 committed by Richard Purdie
parent ec9f4c3c25
commit 0ac89346de
4 changed files with 26 additions and 23 deletions

View File

@ -61,15 +61,15 @@ DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
SYSLINUX_ROOT ?= "root=/dev/sda2" SYSLINUX_ROOT ?= "root=/dev/sda2"
SYSLINUX_TIMEOUT ?= "10" SYSLINUX_TIMEOUT ?= "10"
populate() { boot_direct_populate() {
DEST=$1 dest=$1
install -d ${DEST} install -d $dest
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use. # Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz install -m 0644 ${STAGING_KERNEL_DIR}/bzImage $dest/vmlinuz
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
install -m 0644 ${INITRD} ${DEST}/initrd install -m 0644 ${INITRD} $dest/initrd
fi fi
} }
@ -79,13 +79,13 @@ build_boot_dd() {
HDDIMG="${S}/hdd.image" HDDIMG="${S}/hdd.image"
IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect
populate ${HDDDIR} boot_direct_populate $HDDDIR
if [ "${PCBIOS}" = "1" ]; then if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_populate syslinux_hddimg_populate $HDDDIR
fi fi
if [ "${EFI}" = "1" ]; then if [ "${EFI}" = "1" ]; then
grubefi_hddimg_populate grubefi_hddimg_populate $HDDDIR
fi fi
BLOCKS=`du -bks $HDDDIR | cut -f 1` BLOCKS=`du -bks $HDDDIR | cut -f 1`

View File

@ -86,10 +86,10 @@ build_iso() {
populate ${ISODIR} populate ${ISODIR}
if [ "${PCBIOS}" = "1" ]; then if [ "${PCBIOS}" = "1" ]; then
syslinux_iso_populate syslinux_iso_populate ${ISODIR}
fi fi
if [ "${EFI}" = "1" ]; then if [ "${EFI}" = "1" ]; then
grubefi_iso_populate grubefi_iso_populate ${ISODIR}
build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img
fi fi
@ -203,10 +203,10 @@ build_hddimg() {
populate ${HDDDIR} populate ${HDDDIR}
if [ "${PCBIOS}" = "1" ]; then if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_populate syslinux_hddimg_populate ${HDDDIR}
fi fi
if [ "${EFI}" = "1" ]; then if [ "${EFI}" = "1" ]; then
grubefi_hddimg_populate grubefi_hddimg_populate ${HDDDIR}
fi fi
build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg

View File

@ -42,19 +42,20 @@ grubefi_populate() {
} }
grubefi_iso_populate() { grubefi_iso_populate() {
grubefi_populate ${ISODIR} iso_dir=$1
grubefi_populate $iso_dir
# Build a EFI directory to create efi.img # Build a EFI directory to create efi.img
mkdir -p ${EFIIMGDIR}/${EFIDIR} mkdir -p ${EFIIMGDIR}/${EFIDIR}
cp ${ISODIR}/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
cp ${ISODIR}/vmlinuz ${EFIIMGDIR} cp $iso_dir/vmlinuz ${EFIIMGDIR}
echo "EFI\\BOOT\\${GRUB_IMAGE}" > ${EFIIMGDIR}/startup.nsh echo "EFI\\BOOT\\${GRUB_IMAGE}" > ${EFIIMGDIR}/startup.nsh
if [ -f "${ISODIR}/initrd" ] ; then if [ -f "$iso_dir/initrd" ] ; then
cp ${ISODIR}/initrd ${EFIIMGDIR} cp $iso_dir/initrd ${EFIIMGDIR}
fi fi
} }
grubefi_hddimg_populate() { grubefi_hddimg_populate() {
grubefi_populate ${HDDDIR} grubefi_populate $1
} }
python build_grub_cfg() { python build_grub_cfg() {

View File

@ -53,14 +53,16 @@ syslinux_populate() {
} }
syslinux_iso_populate() { syslinux_iso_populate() {
syslinux_populate ${ISODIR} ${ISOLINUXDIR} isolinux.cfg iso_dir=$1
install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR} syslinux_populate $iso_dir ${ISOLINUXDIR} isolinux.cfg
install -m 0644 ${STAGING_DATADIR}/syslinux/ldlinux.c32 ${ISODIR}${ISOLINUXDIR} install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin $iso_dir${ISOLINUXDIR}
install -m 0644 ${STAGING_DATADIR}/syslinux/ldlinux.c32 $iso_dir${ISOLINUXDIR}
} }
syslinux_hddimg_populate() { syslinux_hddimg_populate() {
syslinux_populate ${HDDDIR} ${SYSLINUXDIR} syslinux.cfg hdd_dir=$1
install -m 0444 ${STAGING_DATADIR}/syslinux/ldlinux.sys ${HDDDIR}${SYSLINUXDIR}/ldlinux.sys syslinux_populate $hdd_dir ${SYSLINUXDIR} syslinux.cfg
install -m 0444 ${STAGING_DATADIR}/syslinux/ldlinux.sys $hdd_dir${SYSLINUXDIR}/ldlinux.sys
} }
syslinux_hddimg_install() { syslinux_hddimg_install() {