| Submitter | Dexuan Cui |
|---|---|
| Date | Jan. 18, 2012, 2:18 p.m. |
| Message ID | <84776a87449ee57fcf3a568562cb0957da04f8bc.1326894448.git.dexuan.cui@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/19645/ |
| State | New |
| Headers | show |
Comments
On 01/18/2012 06:18 AM, Dexuan Cui wrote: > 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. > Please use a spell checker here suitable Moreover compatible > 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<dexuan.cui@intel.com> > --- > 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 Why make this a "double negative", Why not have a CREATE_VMDK check? > + ${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" > + I thought this was to become ?= > 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"
On 01/18/2012 06:18 AM, Dexuan Cui wrote: > 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"? bootimg.bbclass should probably be renamed liveimg.bbclass to keep it's meaning clear. > 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 <dexuan.cui@intel.com> > --- > 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" As a point of style, just add the new dependencies to the preceding assignment rather than creating a new assignment. > > 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" > + This concerns me. How does this interact with other recipes and configs that may set this? What happens if the machine config adds a console parameter to the APPEND? For example, the meta-intel n450 does the following: APPEND += "console=ttyS0,115200 console=tty0" If I understand correctly, your assignment above will override this. > 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"
Saul Wold wrote on 2012-01-19: > On 01/18/2012 06:18 AM, Dexuan Cui wrote: >> 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. >> > Please use a spell checker here > suitable > Moreover > compatible I'm very sorry about this... I'll be more careful in future. :-) >> 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<dexuan.cui@intel.com> >> --- >> 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 > Why make this a "double negative", Why not have a CREATE_VMDK check? > >> + ${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" >> + > I thought this was to become ?= There is some side effort with ?=. Darren expressed his concern in a later mail. I have to think more about this. >> 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" Thanks, -- Dexuan
Saul Wold wrote on 2012-01-19: >> + if [ "${NOVMDK}" != "1" ] ; then > Why make this a "double negative", Why not have a CREATE_VMDK check? > >> + ${STAGING_BINDIR_NATIVE}/qemu-img convert -O vmdk \ >> + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect \ >> + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vmdk >> + fi >> } Hi Saul, I thought it's better to create .vmdk by default. So do you think this is better? if [ "${CREATE_VMDK}" == "1" ] ; then #create the .vmdk image. fi In this way we don't create .vmdk by default and I'll define CREATE_VMDK = "1" in self-hosted-image.bb to generate the .vmdk. Thanks, -- Dexuan
Darren Hart wrote on 2012-01-19: > On 01/18/2012 06:18 AM, Dexuan Cui wrote: >> 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"? > > bootimg.bbclass should probably be renamed liveimg.bbclass to keep > it's meaning clear. Good suggestion. >> 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 <dexuan.cui@intel.com> >> --- >> 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" > > As a point of style, just add the new dependencies to the preceding > assignment rather than creating a new assignment. Ok, I'll add the new dependency into the existing do_bootdirectdisk[depends] rather than creating a new += line. >> >> 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" >> + > > This concerns me. How does this interact with other recipes and configs > that may set this? What happens if the machine config adds a console > parameter to the APPEND? For example, the meta-intel n450 does the > following: > > APPEND += "console=ttyS0,115200 console=tty0" > > If I understand correctly, your assignment above will override this. My change (the below line) is only in qemu.inc + APPEND_${MACHINE} = "root=/dev/hda2" So n450 is not affected here. However, I do need to think more about the interact with others, e.g., in the case of n450, the APPEND in boot-directdisk.bbclass actually overrides the value assigned in atom-pc.conf -- this is an existing issue. I think nobody tested this before, so we didn't notice this. I'll try to work out a new version. > >> 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" > Thanks, -- Dexuan
Dexuan, Will you an updated patch for this sometime soon? Thanks Sau! On 01/18/2012 05:49 PM, Cui, Dexuan wrote: > Darren Hart wrote on 2012-01-19: >> On 01/18/2012 06:18 AM, Dexuan Cui wrote: >>> 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"? >> >> bootimg.bbclass should probably be renamed liveimg.bbclass to keep >> it's meaning clear. > Good suggestion. > >>> 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<dexuan.cui@intel.com> >>> --- >>> 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" >> >> As a point of style, just add the new dependencies to the preceding >> assignment rather than creating a new assignment. > Ok, I'll add the new dependency into the existing > do_bootdirectdisk[depends] rather than creating a new += line. > >>> >>> 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" >>> + >> >> This concerns me. How does this interact with other recipes and configs >> that may set this? What happens if the machine config adds a console >> parameter to the APPEND? For example, the meta-intel n450 does the >> following: >> >> APPEND += "console=ttyS0,115200 console=tty0" >> >> If I understand correctly, your assignment above will override this. > My change (the below line) is only in qemu.inc > + APPEND_${MACHINE} = "root=/dev/hda2" > So n450 is not affected here. > However, I do need to think more about the interact with others, e.g., > in the case of n450, the APPEND in boot-directdisk.bbclass actually > overrides the value assigned in atom-pc.conf -- this is an existing issue. > I think nobody tested this before, so we didn't notice this. > > I'll try to work out a new version. > >> >>> 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" >> > > Thanks, > -- Dexuan > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >
Patch
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"
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 <dexuan.cui@intel.com> --- 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(-)