[OE-core] [PATCH v3] kernel.bbclass: do not deploy fitImage; kernel-fitimage.bbclass does that.
Leon Woestenberg
leon at sidebranch.com
Sun Sep 16 09:18:38 UTC 2018
Hi Alex,
> On 15 Sep 2018, at 19:45, Alex Kiernan <alex.kiernan at gmail.com> wrote:
>
>> On Mon, Sep 10, 2018 at 10:57 PM Leon Woestenberg <leon at 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 <leon at 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.
What was in your KERNEL_IMAGETYPES? Did it at least contain “fitImage”??
> 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.
If ‘here’ means kernel-fitimage, then I’ld say ALL versions of a FIT image containing AT LEAST a Linux kernel are installed by kernel-fitimage.
> The one that's installed in kernel-fitimage is the bare
> linux.bin, but named fitImage-...
which is totally broken. If you want the bare kernel binary (which naming depends on architecture, so it should NOT be hard-coded to linux.bin anyway), you would need to specify that type *also* in KERNEL_IMAGETYPES, next to “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).
I’m sorry I cannot follow what this and the other one is, and it. Let’s first understand all cases correctly.
Regards, Leon
>
>> ---
>> 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 at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
> --
> Alex Kiernan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2346 bytes
Desc: not available
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180916/a151f1a9/attachment-0002.p7s>
More information about the Openembedded-core
mailing list