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

Jon*_*tan 17 linux-kernel bitbake device-tree yocto

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

是否有任何我只缺少重建设备树的技巧?

更新:

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

相反,我已经将内核开发从Yocto中移除了.Yocto有很好的工具来创建SDK(请参阅populate_sdk任务),通过快速重建和手动(或脚本化)部署,可以轻松地为内核开发设置环境.完成工作后,可以使用git diff将更改移动到配方.

以下页面上的说明非常有用:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html

g0h*_*l1n 17

AFAIK有两种不同的方法可以做到这一点.

  1. 内核的方法:使用内核提供的脚本

    • 更改到您的内核源目录(<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/)
    • 执行device-tree-compiler: ./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
  2. bitbake的方法:使用内核的部署工作

    • 呼叫 $ bitbake <kernel-name> -f -c deploy
    • 然后可以在中找到生成的device-tree-blob <build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/arch/arm/boot/dts/)

至少对我来说,两个版本都在快速测试中工作.

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

  • 对我来说,“bitbake &lt;kernel-name&gt; -f -c deploy”总是会导致它重建整个内核,这与“bitbake &lt;kernel-name&gt;”具有相同的效果。我使用的是 freescale 内核 linux-fslc。meta-xilinx 层非常好,因为它提供了一个单独的配方来构建设备树:https://github.com/Xilinx/meta-xilinx/tree/master/meta-xilinx-bsp/recipes-bsp/设备树 (3认同)