On Mon, Sep 10, 2018 at 10:57 PM Leon Woestenberg <l...@sidebranch.com> wrote: > > kernel-fitimage.bbclass replaces an occurance of "fitImage" in > KERNEL_IMAGETYPE_FOR_MAKE by an image type that is buildable for the > architecture (such as zImage). The kernel-fitimage.bbclass packs that > image as sub-image in a flattened image tree image (fitImage) and > deploys this fitImage along with the image tree source file (.its). > > kernel-fitimage.bbclass does not alter KERNEL_IMAGETYPES, which thus > also contains "fitImage", which kernel.bbclass will also deploy > redundantly with different naming. > > The result is a dual deployment with slightly different naming, > each with a set of symlinks. > > The solution chosen is to have fitImage deployment be handled by > kernel-fitimage.bbclass, and have kernel.bbclass ignore fitImage > types during deployment. > > Signed-off-by: Leon Woestenberg <l...@sidebranch.com>
This looks completely plausible, but the two "FIT" images that are installed aren't identical... after this I end up with no FIT image and only a bare image in the deploy dir. Digging into it, the logic between the two classes is a bit odd... in the case of a non initramfs build, the fitImage is actually installed here. The one that's installed in kernel-fitimage is the bare linux.bin, but named fitImage-... I'll send a patch reverting this and removing the other one as I'd agree that it appears to have no purpose (and if you did want it, I guess you could list it in KERNEL_IMAGETYPES). > --- > meta/classes/kernel.bbclass | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > index b57832c..1f69091 100644 > --- a/meta/classes/kernel.bbclass > +++ b/meta/classes/kernel.bbclass > @@ -669,8 +669,11 @@ kernel_do_deploy() { > fi > > for imageType in ${KERNEL_IMAGETYPES} ; do > - base_name=${imageType}-${KERNEL_IMAGE_NAME} > - install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} > $deployDir/${base_name}.bin > + # kernel-fitimage class deploys fitImages, skip here > + if [ "$imageType" != "fitImage" ]; then > + base_name=${imageType}-${KERNEL_IMAGE_NAME} > + install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} > $deployDir/${base_name}.bin > + fi > done > if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e > '^CONFIG_MODULES=y$' .config); then > mkdir -p ${D}/lib > @@ -687,10 +690,13 @@ kernel_do_deploy() { > > if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 > ]; then > for imageType in ${KERNEL_IMAGETYPES} ; do > - initramfs_base_name=${imageType}-${INITRAMFS_NAME} > - > initramfs_symlink_name=${imageType}-${INITRAMFS_LINK_NAME} > - install -m 0644 > ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs > $deployDir/${initramfs_base_name}.bin > - ln -sf ${initramfs_base_name}.bin > $deployDir/${initramfs_symlink_name}.bin > + # kernel-fitimage class deploys fitImages, skip here > + if [ "$imageType" != "fitImage" ]; then > + > initramfs_base_name=${imageType}-${INITRAMFS_NAME} > + > initramfs_symlink_name=${imageType}-${INITRAMFS_LINK_NAME} > + install -m 0644 > ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs > $deployDir/${initramfs_base_name}.bin > + ln -sf ${initramfs_base_name}.bin > $deployDir/${initramfs_symlink_name}.bin > + fi > done > fi > } > -- > 2.7.4 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Alex Kiernan -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core