web-dev-qa-db-ja.com

imx6デバイスツリーのコンパイル-致命的なエラー:入力ツリーを解析できません

Freescaleimx6をベースにしたTX6U-8010用の組み込みLinuxに取り組んでいます。

デバイスツリーコンパイラ(dtc)を使用してdtbをコンパイルしようとしています。ただし、コマンドを使用すると、次のようになります。

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バージョンはDTC1.4.0です。

10
mkpeker

カーネルソースに付属のMakefileファイルを使用して、すべての問題を処理できます。

カーネルコードのルートディレクトリから、次のコマンドを実行するだけです。

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

CROSS_COMPILEの値を正しいプレフィックスに置き換えてください。

13
tkgk

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
20
Anonymous