2015-02-13 7 views
7

Sto lavorando su Embedded Linux per TX6U-8010 basato su imx6 di Freescale.compilation imx6 Device Tree - ERRORE FATALE: impossibile analizzare l'albero di input

Sto cercando di compilare dtb utilizzando il compilatore dell'albero dei dispositivi (dtc). Tuttavia quando uso il comando:

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

... ottengo il seguente errore:

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

linee 12,13,14 sono: -

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

La versione del kernel che Sto usando linux-3.18.5 e la versione di dtc è DTC 1.4.0.

risposta

10

È possibile utilizzare il file Makefile fornito con l'origine del kernel per gestire tutti i problemi.

Dalla directory radice codice del kernel, basta eseguire:

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

Basta fare in modo di sostituire il valore CROSS_COMPILE con il prefisso giusto.

+0

Perfetto. L'ho eseguito dall'albero dei sorgenti di Android per ricompilare i file dts inclusi. I comandi che ho usato sono: '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

fonti albero dispositivi nel deviare kernel dalla sintassi normale, utilizzando il preprocessore cpp per include e sostituzione. Questo procede come segue:

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 
Problemi correlati