Hi @kevin.tx and @hfranco.tx,
Running bitbake
, I get the following error:
| make[2]: *** No rule to make target 'arch/arm/boot/dts/imx7d-colibri-emmc-interferometer.dtb'. Stop.
| make[1]: *** [/home/jeroen/tmp/work-shared/colibri-imx7-emmc/kernel-source/Makefile:1270: imx7d-colibri-emmc-interferometer.dtb] Error 2
| make: *** [/home/jeroen/tmp/work-shared/colibri-imx7-emmc/kernel-source/Makefile:179: sub-make] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/home/jeroen/tmp/work/colibri_imx7_emmc-tdx-linux-gnueabi/linux-toradex/5.4.193+gitAUTOINC+f782992971-r0/temp/run.do_compile.2941665' failed with exit code 1
ERROR: Task (/home/jeroen/Interferometer/yocto/oe-core/build/../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb:do_compile) failed with exit code '1'
Apperently, bitbake doesn’t know how to compile the .dts files into a binary device tree. I was already wondering how this was going to work when I copied the files from the examples in the article: in meta-customer/in recipes-kernel/linux/linux-toradex_%.bb_append
, I have specified a .dts file which will be copied to ${S}/arch/arm/boot/dts:
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-toradex:"
# Prevent the use of in-tree defconfig
unset KBUILD_DEFCONFIG
CUSTOM_DEVICETREE = "imx7d-colibri-emmc-interferometer.dts"
SRC_URI += "\
file://${CUSTOM_DEVICETREE} \
# file://custom-display.patch \
# file://defconfig \
"
do_configure_append() {
# For arm32 bit devices
cp ${WORKDIR}/${CUSTOM_DEVICETREE} ${S}/arch/arm/boot/dts
}
But in `meta-customer/conf/machine/imx7d-colibri-emmc-interferometer.conf’, we’re talking about an.dtb (the compiled device tree):
KERNEL_DEVICETREE_append = " imx7d-colibri-emmc-interferometer.dtb"
(this .conf file is included in meta-customer/layer.conf
, and that seems to work, otherwise I would not have the error)
So I am clearly missing something here, any idea what is going on ?
At the beginning of the kernel customization instructions, it is recommended to change the kernel outside of yocto but is it really necessary ? I know my DT modifications are working so there is no need to first build the kernel elsewhere, right ?
Another thing that is not yet clear for me is the defconfig file that is specified in the linux-toradex_%.bb_append
file above (copied from the example in the article).
I commented it but is this OK ?
Uncommenting it does not change the .dtb error but maybe it will cause errors later on ?
Do I have to make one ?
EDIT: I forgot to mention that I’m running bitbake on Ubuntu 22.04 and I get a warning at the start of bitbake:
WARNING: Host distribution "ubuntu-22.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Hopefully this is not a showstopper (since I already managed to make a reference image, I don’t thinks so)
I’m sure you guys can help me ! Thanks in advance,
Jeroen