如何编译dts Linux设备树源文件到dtb?

时间:2014-02-10 07:07:36

标签: linux-kernel cross-compiling embedded-linux powerpc device-tree

我有一个设备树文件(.dts),我想为我的基于powerpc的主板编译文件。

我怎样才能在我的机器上进行,这不是基于powerpc的?我可以使用我的Ubuntu系统上安装的DTC吗?或者更像是使用单独的编译器并传递ARCH信息(比如使用工具链)?

3 个答案:

答案 0 :(得分:36)

设备树不需要使用“体系结构感知”工具进行编译。你的ubuntu机器上的dtc编译器可能足以编译你的设备树。或者您可以下载最新的源代码并自行编译。可以在这里找到dtc编译器:

https://git.kernel.org/pub/scm/utils/dtc/dtc.git

该软件包中有一些好的文档可以帮助您更好地理解设备树。

编译(和反汇编)设备树非常容易。例如

$ dtc -O dtb -o p4080ds.dtb p4080ds.dts

要从设备树blob中获取文本中的设备树,请执行以下操作:

$ dtc -I dtb -O dts p4080ds.dtb

希望这有帮助!

答案 1 :(得分:13)

<强> make dtbs

从内核树执行此操作是另一种编译它们的常用方法,因为放置dts的标准位置在./arch/<arch>/boot/dts/形式的目录中的内核树下。

这最终会调用dtc,但可能会更好,因为潜在的包含将在正确的位置。

dtb文件与dts放在同一目录中。

答案 2 :(得分:10)

    可以通过以下命令在Linux上

    dtc 安装

    sudo apt-get install device-tree-compiler

  • 您可以通过以下命令编译 dts dtsi

    dtc -I dts -O dtb -o devicetree_file_name.dtb devicetree_file_name.dts

  • 您可以通过以下命令转换 dts dtb

    dtc -I dts -O dtb -f devicetree_file_name.dts -o devicetree_file_name.dtb

  • 您可以通过以下命令转换 dtb dts

    dtc -I dtb -O dts -f devicetree_file_name.dtb -o devicetree_file_name.dts