gpt4 book ai didi

c - 如何修改内核DTB文件

转载 作者:IT王子 更新时间:2023-10-29 00:32:52 30 4
gpt4 key购买 nike

总结

我目前正在使用一些自定义板的自定义驱动程序编译 Linux 内核(内核、模块和 DTB)。偶尔我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序正在寻找的内容。现在我唯一可以补救的方法是修改 DTS 或内核驱动程序,使字符串匹配,然后再次重新编译内核。有什么方法可以只编辑 DTB 文件来更新兼容性字符串?

失败的尝试

我已经能够使用以下命令将 DTB 文件反编译回 DTS 文件:

dtc -I dtb -o <filename>.dts -<filename>.dtb

但是,如果我修改 DTS 文件并使用以下命令重新编译:

dtc -I dts -o <filename>.dtb -<filename>.dts

内核不会加载重新编译的DTB文件

最佳答案

只是想用 2 年以上的主题经验来更新它。

Linux 存储库中的 DTS 文件是 DTS C 预处理器指令(#include、#define 等)的混合体。因此,当编译原始 DTB 时,预处理器链接到引用的文件以创建纯 DTS 文件。 dtc将单个 DTS 文件转换为 DTB 文件。

所以如果你想修改一个内核DTS文件并编译它,那么你有两个选择:

  1. 只需运行 make dtbs它会自动处理所有这些
  2. 手动运行预处理器 (cpp -nostdinc -I <include dir> -undef -x assembler-with-cpp ...),然后使用 dtc 编译输出.

关于c - 如何修改内核DTB文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46469924/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com