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

问题描述 投票:15回答:2

因此,每次修改设备树时,我通常会更改自定义配方中的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

linux-kernel yocto bitbake device-tree
2个回答
14
投票

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 然后可以在<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/arch/arm/boot/dts/中找到生成的device-tree-blob)

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

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


1
投票

对于我使用bitbake重新生成设备树,工作方式如下:

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

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

使用yocto相扑测试。

© www.soinside.com 2019 - 2024. All rights reserved.