如何在linux内核中嵌入设备树blob(dtb)



应该有一种独立于标准、板和架构的方法来做到这一点,就像initfamfs一样,不是吗?

如果重要的话,我使用的是powerpc和linux-3.10。如果以后有更好的设施,我很想听听。

如果有人知道目前正在运作的董事会,我可以作为参考,那也会很有帮助。

我一直在搜索,我发现了很多关于dts/dtb为什么存在的信息,大量关于它们是否有用的讨论,以及一些关于如何编写dts或使用现有dts的信息,但没有关于如何嵌入它们的信息。

如能提供相关文档的快速描述或说明,我们将不胜感激。

您需要的是扁平图像树格式(FIT)。FIT使用DTS语法/格式来描述嵌入到一个主图像中的图像。例如,您可以打包zImage和一个或多个DTB文件以及initramfs-image等等。请看这些幻灯片了解详细信息。

如果引导加载程序支持设备树,则可以像加载任何其他(u/m)映像一样加载DTB,但应该将其传递给内核。如果没有,我们必须使用内核CONFIG_(ARM_)APPENDED_DTB来加载较新的内核。不是PowerPC的选项?

cat x.dtb >> zImage

要在这种情况下加载initramfs,请使用CONFIG_initramfs_SOURCE将其包含在内核构建中。

最新更新