![如何在构建时将设备树覆盖合并到单个 .dtb?](https://linux22.com/image/81619/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9E%84%E5%BB%BA%E6%97%B6%E5%B0%86%E8%AE%BE%E5%A4%87%E6%A0%91%E8%A6%86%E7%9B%96%E5%90%88%E5%B9%B6%E5%88%B0%E5%8D%95%E4%B8%AA%20.dtb%EF%BC%9F.png)
我的主板通过 U-Boot 启动,据我所知,引导加载程序不支持设备树覆盖,所以我可能被迫生成一个单一、静态 .dtb
所有相关的覆盖(和设置??)是否已应用到它。原则上这对我来说没问题,但该怎么做呢?
是否有一些命令行工具可以分别获取.dtb
和.dtbo
文件。.dts
和.dtsi
文件并将它们组合成一个.dtb
/ .dts
?
dtc
似乎不做那项工作。
答案1
你不需要这样做。
通过此更改,覆盖层将出现在 u-boot 中! https://github.com/u-boot/u-boot/commit/e6628ad7b99b285b25147366c68a7b956e362878
享受 :)
答案2
dts 的格式使得合并变得微不足道:您所需要做的就是 cat 或#include
单独的 dts,因为:
/dts-v1/;
/ {
a;
};
/ {
b;
};
是相同的:
/dts-v1/;
/ {
a;
b;
};
因为两者都指定了 node 的属性/
。
这可以通过以下方式观察到:
dtc a.dts
关于上面的第一个dts
。
然而,我还无法找到一种更自动化的方法来使用 Linux 内核构建系统来完成此操作。