2015-02-13 3 views
7

Я работаю над встроенным Linux для TX6U-8010 на основе Freescale imx6.imx6 Компиляция дерева устройств - FATAL ERROR: невозможно разобрать дерево ввода

Я пытаюсь скомпилировать dtb с помощью компилятора дерева устройств (dtc). Однако, когда я использую команду:

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

... Я получаю следующее сообщение об ошибке:

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

Линии 12,13,14 являются: -

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

версия ядра, Я использую linux-3.18.5, а версия dtc - DTC 1.4.0.

ответ

10

Вы можете использовать файл Makefile, поставляемый с источником ядра, для обработки всех проблем для вас.

В корневой директории кода ядра, просто запустите:

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

Просто убедитесь, чтобы заменить значение CROSS_COMPILE с правильным префиксом.

+0

Perfect. Я запустил это из дерева исходных текстов Android, чтобы перекомпилировать файлы dts, которые были включены. Команды, которые я использовал, были: '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

источники дерева устройств в отклониться ядра из обычного синтаксиса, с помощью препроцессора CPP для включает и замены. Это происходит следующим образом:

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