2015-02-13 12 views
7

Ich arbeite an Embedded Linux für TX6U-8010 basierend auf Freescale imx6.imx6 Gerätebaumkompilierung - FATALER FEHLER: Eingabebaum kann nicht geparst werden

Ich versuche, dtb mit dem Gerätebaum Compiler (dtc) zu kompilieren. Allerdings, wenn ich den Befehl:

dtc -O dtb -o imx6dl-tx6u-801x.dtb imx6dl-tx6u-801x.dts 

... Ich erhalte den folgenden Fehler:

Error: imx6dl-tx6u-801x.dts:13.1-9 syntax error 
FATAL ERROR: Unable to parse input tree 

Linien 12,13,14 sind: -

/dts-v1/; 
#include "imx6dl.dtsi" 
#include "imx6qdl-tx6.dtsi" 

Die Kernel-Version, Ich benutze ist Linux-3.18.5 und DTC-Version ist DTC 1.4.0.

Antwort

10

Sie können die Makefile-Datei verwenden, die mit der Kernel-Quelle geliefert wird, um alle Probleme für Sie zu behandeln.

Vom Kernel-Code Root-Verzeichnis, führen Sie einfach:

make ARCH=arm CROSS_COMPILE=arm-none-eabi- imx_v6_v7_defconfig 
make ARCH=arm CROSS_COMPILE=arm-none-eabi- dtbs 

So stellen Sie sicher, dass der CROSS_COMPILE Wert mit dem richtigen Präfix zu ersetzen.

+0

Perfekt. Ich habe dies aus dem Android-Source-Tree ausgeführt, um die dts-Dateien, die Includes enthalten hatten, neu zu kompilieren. Die Befehle, die ich benutzte, waren: 'cd ~/AOSP/kernel_imx' /' 'export CROSS_COMPILE =' pwd' /../ prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- ' '/' make imx_v6_v7_defconfig'/'make dtbs' – CJBS

13

https://linux-sunxi.org/Device_Tree#Compiling_the_Device_Tree

Gerätebaumquellen im Kernel weicht von der regulären Syntax, durch die CPP Präprozessor Verwendung für und Substitution umfasst. Dies geschieht wie folgt:

IDE=<your-device-name> 
SRC=$IDE.dts 
TMP=$IDE.tmp.dts 
DST=$IDE.dtb 

cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP 
dtc -O dtb -b 0 -o $DST $TMP 
rm $TMP 
Verwandte Themen