【问题标题】:Compiling am335x-boneblack.dts fails编译 am335x-boneblack.dts 失败
【发布时间】:2025-12-12 22:45:01
【问题描述】:

我正在尝试为 beagle bone black (BBB) 编译一个 dtb,我可以从 uboot 传递它并按照我的需要配置所有外围设备。我需要这样做而不是应用覆盖,因为我们正在设计基于 BBB 的电路板并且我们希望在启动时配置外围设备。

我用来编译 dtb 的命令如下。 dtc -I dts -@ -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts

为了让 -@ 选项起作用,我按照以下说明操作:http://eewiki.net/display/linuxonarm/BeagleBone#BeagleBone-Upgradedistro%22device-tree-compiler%22package

我尝试从多个地方拉取设备树源并进行编译。

当从http://git.ti.com/ti-linux-kernel/ti-linux-3-8-y-kernel/trees/master/arch/arm/boot/dts 拉取时,我可以编译它,但是一旦 uboot 说“正在启动内核......”就没有进一步的响应

从 githubdotcom/beagleboard/devicetree-source 提取时,我无法编译。它在“#include”语句中返回语法错误。我试图将这些更改为 /include/ 但“”中的包含失败。如果我将它们修复为包含中断内的绝对内容。

我相信从 TI 存储库构建是正确的路径,但我无法启动内核。我尝试添加“-b 0”选项(dtb 中没有二进制差异)并删除 -@,但文件明显更小(从 11k 到 -@ 15k,默认为 29k)并且无法启动。

有什么建议吗?

ps 很抱歉 github 链接损坏,我只能发布 2 个链接

【问题讨论】:

    标签: beagleboneblack device-tree


    【解决方案1】:

    原来我使用的 yocto 内核对我编译的 dtb 文件不满意。

    替换来自http://beagleboard.org/latest-images 的最新BBB debian 映像中dtbs 文件夹中的am335x-boneblack.dtb 导致内核尝试启动,然后出现恐慌!好多了。

    我在这里https://github.com/dominicgs/BeagleDancer/tree/master/devicetree找到了源代码树,并使用我的问题中提到的编译方法和命令dtc -O dtb -o am335x-boneblack.dtb -b 0 -@ am335x-boneblack.dts 对其进行了编译。这成功启动了 BBB,以便我可以登录。

    【讨论】: