我正在尝试为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说“#34;启动内核......"没有进一步的回应
从githubdotcom / beagleboard / devicetree-source中提取时,我无法编译。它在" #include"上返回语法错误。声明。我试图将这些更改为/ include /但是包含在""失败了。如果我将这些内容修复为包含中断内的绝对内容。
我相信TI repo的构建是正确的道路,但是我无法启动内核。我试过添加" -b 0"选项(在dtb中没有二进制差异)并删除 - @但文件明显更小(11k到 - @ 15k到默认工作29k)并且没有启动。
有什么建议吗?
抱歉github链接错误,我只允许发布2个链接
答案 0 :(得分:2)
事实证明我使用的yocto内核对我编译的dtb文件不满意。
在http://beagleboard.org/latest-images的最新BBB debian映像中替换dtbs文件夹中的am335x-boneblack.dtb导致内核尝试启动然后进行paning!好多了。
我在这里找到了源代码树https://github.com/dominicgs/BeagleDancer/tree/master/devicetree并使用我的问题中提到的编译方法和命令 dtc -O dtb -o am335x-boneblack.dtb -b 0 - @ am335x-boneblack进行编译.dts 即可。这成功启动了BBB,以便我可以登录。