仅使用 Yocto/bitbake 快速重建设备树?

Quick rebuild of device tree only with Yocto/bitbake?

因此,每次我修改设备树时,我通常会更改自定义配方中的 dts 并重建映像。重建需要很长时间,因为它重建了整个内核,然后需要构建镜像并最终部署到目标设备。

是否有我遗漏的仅重建设备树的技巧?

更新:

我已将 g0hl1n 的答案标记为正确答案,因为它是我问题的答案。然而,我发现在 Yocto 中使用内核非常麻烦:奇怪的、长路径和每次重建时文件被覆盖的风险,tmp/work-shared 中的内核源代码,而 [=27] 中正在构建内核=].

相反,我已将内核开发移出 Yocto。 Yocto 具有用于创建 SDK 的良好工具(请参阅 populate_sdk 任务),并且可以通过快速重建和手动(或脚本)部署轻松设置内核开发环境。工作完成后,可以使用 git diff.

将更改移动到配方中

下一页的说明非常有帮助:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html

据我所知,有两种不同的方法可以做到这一点。

  1. 内核方式:使用内核提供的脚本
  • 切换到您的内核源目录(<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/)
  • 执行设备树编译器:./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
  1. bitbake 方式:使用内核的部署作业
  • 致电$ bitbake <kernel-name> -f -c deploy
  • 然后可以在 <build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/arch/arm/boot/dts/)
  • 中找到生成的设备树 blob

至少对我来说,这两个版本在快速测试中都能正常工作。

更新: 我刚刚在网上看到了用 yocto 构建 dtb 的第三个版本。 那个使用内核构建的 yocto devshell。 有关详细信息,请参阅原作者页面 https://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.html

对我来说,使用 bitbake 重新生成设备树的方法如下:

命令:$ bitbake <kernel-name> -f -c compile

示例:$ bitbake linux-fslc -f -c compile

使用 yocto sumo 测试。