我有一个设备树文件 (.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
希望这可以帮助!
make dtbs
从内核树中执行此操作是编译它们的另一种常用方法,因为放置 dts 的标准位置是在形式目录中的内核树下./arch/<arch>/boot/dts/
。
这最终会调用dtc
,但可能会更好,因为潜在的包含将在正确的位置。
dtb 文件与 dts 放在同一目录中。
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