The self-hosted-image work needs a live-bootable and r/w-able image format. The existing .iso isn't ok since it's readonly. The existing .hddimg is not a good choice, since it has a two-option(boot, install) syslinux function that we don't need: we don't hope a user to be potentially able to "install", and I think it may be not suitble to hack build_hddimg to hide the "install"? Moreever, .hddimg is not that compatibible with some devices and we hope to have the most compatibility.
So I think the .hdddirect format is a good choice and I made this patch to adopt it and also enhanced boot-directdisk.bbclass to generate .vmdk image so we can run it on vmware, too. BTW, currently self-hosted-image is the only user of boot-directdisk.bbclass; with the adoption of .hdddirect and .vmdk formats, a user can still use "IMAGE_FSTYPES += 'live'" to generate the .iso and .hddimg format. Signed-off-by: Dexuan Cui <[email protected]> --- meta/classes/boot-directdisk.bbclass | 8 ++++++++ meta/conf/machine/include/qemu.inc | 2 ++ meta/recipes-core/images/self-hosted-image.bb | 11 +++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass index 8879ba8..7f14225 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass @@ -24,6 +24,7 @@ do_bootdirectdisk[depends] += "dosfstools-native:do_populate_sysroot \ syslinux-native:do_populate_sysroot \ parted-native:do_populate_sysroot \ mtools-native:do_populate_sysroot " +do_bootdirectdisk[depends] += "qemu-native:do_populate_sysroot" PACKAGES = " " EXCLUDE_FROM_WORLD = "1" @@ -50,6 +51,7 @@ build_boot_dd() { install -d ${HDDDIR} install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage ${HDDDIR}/vmlinuz + install -m 0644 ${S}/syslinux.cfg ${HDDDIR}/syslinux.cfg install -m 444 ${STAGING_LIBDIR}/syslinux/ldlinux.sys ${HDDDIR}/ldlinux.sys BLOCKS=`du -bks ${HDDDIR} | cut -f 1` @@ -83,6 +85,12 @@ build_boot_dd() { cd ${DEPLOY_DIR_IMAGE} rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect ln -s ${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect + + if [ "${NOVMDK}" != "1" ] ; then + ${STAGING_BINDIR_NATIVE}/qemu-img convert -O vmdk \ + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect \ + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vmdk + fi } python do_bootdirectdisk() { diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc index 3cebfab..a5b563b 100644 --- a/meta/conf/machine/include/qemu.inc +++ b/meta/conf/machine/include/qemu.inc @@ -5,6 +5,8 @@ MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget screen" IMAGE_FSTYPES ?= "tar.bz2 ext3" +APPEND_${MACHINE} = "root=/dev/hda2" + ROOT_FLASH_SIZE = "280" # Don't include kernels in standard images diff --git a/meta/recipes-core/images/self-hosted-image.bb b/meta/recipes-core/images/self-hosted-image.bb index 111c057..df6c81f 100644 --- a/meta/recipes-core/images/self-hosted-image.bb +++ b/meta/recipes-core/images/self-hosted-image.bb @@ -6,6 +6,13 @@ POKY_EXTRA_INSTALL = "\ IMAGE_FEATURES += "x11-mini" -inherit core-image +# Needed by boot-directdisk +ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3" -PR = "r2" +inherit core-image boot-directdisk + +do_bootimg[depends] += "${INITRD_IMAGE}:do_rootfs" +do_bootimg[depends] += "${IMAGE_BASENAME}:do_rootfs" +do_bootdirectdisk[depends] += "${PN}:do_rootfs" + +PR = "r3" -- 1.7.6 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
