Yocto 修改源代码后重建镜像

mad*_*dog 5 openembedded bitbake yocto

对驱动程序源代码进行一些修改后如何重建映像?

我已经尝试过 bitbake -f -c 编译和 bitbake 但我无法在驱动程序中找到修改的设置。有人可以告诉我如何使用修改后的代码重建图像。

dan*_*lor 8

我猜你想重新生成整个图像,不是吗?如果是这样,您可以尝试以下命令以确保 bitbake 不会使用 sstate 缓存:

bitbake image-name -c cleansstate && bitbake image-name
Run Code Online (Sandbox Code Playgroud)

如果您只想重建内核,请将image-name替换为virtual/kernel(或您想要重建的任何配方的名称)。

请注意,do_cleansstate 任务将删除配方 ${WORKDIR}!

欲了解更多信息:https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#ref-tasks-cleansstate

如果您直接在 ${WORKDIR} 中进行此类修改(除非您正在测试,否则不应这样做),执行以下命令就足够了:

bitbake virtual/kernel -f -c compile
Run Code Online (Sandbox Code Playgroud)

或者

bitbake virtual/kernel -C compile (to invalidate the stamps and force all tasks starting from do_compile)
Run Code Online (Sandbox Code Playgroud)


Flo*_*ndl 2

如果您没有直接在 ${WORKDIR} 中进行修改,则必须将 SRCREV 设置为新哈希并增加 PR。然后输入命令

bitbake <image-name>
Run Code Online (Sandbox Code Playgroud)

它会再次编译一个包并根据您的更改创建新映像。

如果您在 ${WORKDIR} 中进行了更改,请添加、提交并将其推送到您的存储库,然后按照我上面的步骤操作。这是最干净的解决方案。

其他解决方案建议的命令:

bitbake <image-name> -c cleansstate 
Run Code Online (Sandbox Code Playgroud)

将导致所有包重建,如果您没有 sstate 镜像,这可能需要很长时间。