无法编译Linux dtb

无法编译Linux dtb,linux,device-tree,Linux,Device Tree,我正在尝试为beaglebone black编译dts文件。我已经从这个位置克隆了git存储库git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git 我得到以下错误: 对于beaglebone black: $ dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts 错误:am335x boneblack.dts:10.1-9语法错误 致命错误:无法分析输入树 我尝试了at

我正在尝试为beaglebone black编译dts文件。我已经从这个位置克隆了git存储库git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git 我得到以下错误:

  • 对于beaglebone black:

    $ dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
    
    错误:am335x boneblack.dts:10.1-9语法错误
    致命错误:无法分析输入树

  • 我尝试了atmel sam9g20 ek-我得到了相同的错误:

    $ dtc -I dts -O dtb -o at91sam9g20ek_2mmc.dtb at91sam9g20ek_2mmc.dts
    
    错误:at91sam9g20ek_2mmc。dts:9.1-9语法错误
    致命错误:无法分析输入树

  • 但是当我使用主线内核时,它们会编译

    我尝试了
    make ARCH=arm dtbs
    这也是一个错误


    有人能告诉我我犯了什么错误吗?

    使用命令
    make ARCH=arm CROSS\u COMPILE=arm linux gnueabi-dtbs
    这个问题已经解决了


    CROSS_COMPILE可以有您选择的编译器

    我已经使用命令make ARCH=arm CROSS_COMPILE=arm linux gnueabi-am335x-boneblack.dtb解决了这个问题。我认为交叉编译器用于dtc编译的某些部分。有人能解释为什么这个方法有用吗?你可能需要CPP,C预处理器。我相信我有CPP和C预处理器,因为我已经开发了很多项目,其中的QT在C++中用于BeaGeBand和Atmel SAM9G20。如果我错了,我该怎么检查呢?试试shell命令
    which cpp
    cpp-dumpmachine
    which cpp
    =>
    /usr/bin/cpp
    cpp-dumpmachine
    i686 linux-gnu
    我已经发布了命令的输出。