Hello,
I am trying to compile the device tree for iMX6 colibri eval board from Linux source.
The compilation Fails with the following error message:
DTC arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts:16:37: fatal error: dt-bindings/input/input.h: No such file or directory
compilation terminated.
scripts/Makefile.lib:273: die Regel für Ziel „arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb“ scheiterte
make[1]: *** [arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb] Fehler 1
/home/agmb/Projekte/linux-toradex/arch/arm/Makefile:311: die Regel für Ziel „imx6dl-colibri-eval-v3.dtb“ scheiterte
make: *** [imx6dl-colibri-eval-v3.dtb] Fehler 2
It seems the dtc is unable to find the include Directory “include/”.
I’ve tried also to invoke the dtc through make with include Parameter:
make DTC_FLAGS+="-i include/" imx6dl-colibri-eval-v3.dtb
which had no additional effect.
I am using the following Verisons for DTC and make:
Version: DTC 1.4.0
GNU Make 4.1
I’ve checked out the following branch:
toradex_imx_3.14.52_1.1.0_ga
Building other device trees via make dtbs
works well. The first device tree which cannot be built is the one for imx6dl.
This works here when going through the following steps (adapt path and cross compiler prefix to your installation):
export ARCH=arm
export PATH=~/gcc-linaro/bin/:$PATH
export CROSS_COMPILE=arm-linux-gnueabihf-
${CROSS_COMPILE}gcc --version
make distclean
make colibri_imx6_defconfig
make imx6dl-colibri-eval-v3.dtb
There shouldn’t be any additional parameters to make needed.
Can you post the output of the above commands if that sequence does still exhibit the error?
Are you sure that you checked out the correct branch and the working copy is complete?
e.g. what is the output of:
git branch
git rev-parse --abbrev-ref HEAD
git rev-parse HEAD
git status
Does the file which should get included exist?
e.g. what is the output of:
ls include/dt-bindings/input/input.h
Do you have environment variables set which influence the compilation, e.g. what happens if you unsets most of the environment. Maybe this could be seen with more verbose output:
$ make V=1 imx6dl-colibri-eval-v3.dtb
make -f scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f /home/krm/code/git.toradex.com/linux-toradex/scripts/Makefile.asm-generic \
src=asm obj=arch/arm/include/generated/asm
make -f /home/krm/code/git.toradex.com/linux-toradex/scripts/Makefile.asm-generic \
src=uapi/asm obj=arch/arm/include/generated/uapi/asm
make -f scripts/Makefile.build obj=scripts
make -f scripts/Makefile.build obj=scripts/dtc
make -f scripts/Makefile.build obj=scripts/genksyms
make -f scripts/Makefile.build obj=scripts/mod
make -f scripts/Makefile.build obj=arch/arm/boot/dts MACHINE= arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb
arm-linux-gnueabihf-gcc -E -Wp,-MD,arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.d.pre.tmp -nostdinc -I/home/krm/code/git.toradex.com/linux-toradex/arch/arm/boot/dts -I/home/krm/code/git.toradex.com/linux-toradex/arch/arm/boot/dts/include -I/home/krm/code/git.toradex.com/linux-toradex/drivers/of/testcase-data -undef -D__DTS__ -x assembler-with-cpp -o arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.dts.tmp arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts ; /home/krm/code/git.toradex.com/linux-toradex/scripts/dtc/dtc -O dtb -o arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb -b 0 -i arch/arm/boot/dts/ -d arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.d.dtc.tmp arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.dts.tmp ; cat arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.d.pre.tmp arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.d.dtc.tmp > arch/arm/boot/dts/.imx6dl-colibri-eval-v3.dtb.d
I’ve found the solution - it was a broken symbolic link from include/dt-bindings in dts Directory to …/…/…/…/…/include/dt-bindings. Seems the symblink got lost during git checkout.
Recreated the symlink with
ln -s …/…/…/…/…/include/dt-bindings dt-bindings