仅使用 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
据我所知,有两种不同的方法可以做到这一点。
- 内核方式:使用内核提供的脚本
- 切换到您的内核源目录(
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/
)
- 执行设备树编译器:
./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
- 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 测试。
因此,每次我修改设备树时,我通常会更改自定义配方中的 dts 并重建映像。重建需要很长时间,因为它重建了整个内核,然后需要构建镜像并最终部署到目标设备。
是否有我遗漏的仅重建设备树的技巧?
更新:
我已将 g0hl1n 的答案标记为正确答案,因为它是我问题的答案。然而,我发现在 Yocto 中使用内核非常麻烦:奇怪的、长路径和每次重建时文件被覆盖的风险,tmp/work-shared 中的内核源代码,而 [=27] 中正在构建内核=].
相反,我已将内核开发移出 Yocto。 Yocto 具有用于创建 SDK 的良好工具(请参阅 populate_sdk 任务),并且可以通过快速重建和手动(或脚本)部署轻松设置内核开发环境。工作完成后,可以使用 git diff.
将更改移动到配方中下一页的说明非常有帮助:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html
据我所知,有两种不同的方法可以做到这一点。
- 内核方式:使用内核提供的脚本
- 切换到您的内核源目录(
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/
) - 执行设备树编译器:
./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
- 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 测试。