我有一个设备树文件(.dts),想要为我的基于PowerPC的板子编译该文件。
我应该如何在非PowerPC的机器上进行编译? 我能否使用在我的Ubuntu系统上已安装的DTC进行编译?还是更像使用单独的编译器并传递ARCH信息(例如使用工具链)?
我有一个设备树文件(.dts),想要为我的基于PowerPC的板子编译该文件。
我应该如何在非PowerPC的机器上进行编译? 我能否使用在我的Ubuntu系统上已安装的DTC进行编译?还是更像使用单独的编译器并传递ARCH信息(例如使用工具链)?
设备树不需要使用“面向体系结构”的工具进行编译。您的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
希望这能帮到您!dtc
可以通过以下命令在Linux上进行安装:
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
生成设备树二进制文件
从内核树中进行此操作是另一种常见的编译方式,因为将dts放置在内核树下的标准位置是以./arch/<arch>/boot/dts/
目录形式命名。
这最终会调用dtc
,但由于包含的潜在文件将处于正确位置,因此可能效果更佳。
dtb文件与dts文件放置在同一目录下。