因此,每次修改设备树时,我通常会更改自定义配方中的 dts 并重建映像。重建需要很长时间,因为它会重建整个内核,然后需要构建镜像,最后部署到目标设备。
我是否缺少任何仅重建设备树的技巧?
UPDATE:
我已将 g0hl1n 的答案标记为正确答案,因为它是我问题的答案。然而,我发现在 Yocto 中使用内核非常麻烦:奇怪的长路径和每次重建时文件被覆盖的风险,内核源位于 tmp/work-shared 中,而内核正在 tmp/work 中构建。
相反,我将内核开发移出 Yocto。 Yocto 拥有用于创建 SDK 的良好工具(请参阅 populate_sdk 任务),并且可以通过快速重建和手动(或脚本化)部署轻松设置内核开发环境。工作完成后,可以使用 git diff 将更改移动到配方中。
下一页的说明非常有帮助:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html
AFAIK 有两种不同的方法可以做到这一点。
- The 内核方式:使用内核提供的脚本
- 更改为您的内核源目录(
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/
)
- 执行设备树编译器:
./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
- The 位烘焙方式:使用内核的部署作业
- Call
$ bitbake <kernel-name> -f -c deploy
- 然后可以在以下位置找到生成的设备树 blob
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/arch/arm/boot/dts/
)
至少对我来说,两个版本都经过了快速测试。
UPDATE:我刚刚在网上看到了用 yocto 构建 dtb 的第三个版本。
那个使用 yocto 的devshell
内核构建。
欲了解更多信息,请参阅原作者页面:https://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.html https://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)