在对驱动程序源代码进行一些修改后,如何重建映像?
我尝试了bitbake -f -c编译和bitbake,但是我无法在驱动程序中找到修改后的设置。有人可以告诉我如何使用修改后的代码重建图像。
答案 0 :(得分:0)
我猜您想重新生成整个图像,不是吗?如果是这样,您可以尝试使用以下命令来确保bitbake不会使用状态缓存:
bitbake image-name -c cleansstate && bitbake image-name
在您只想重建内核的情况下,将 image-name 替换为 virtual / kernel (或要重建的任何配方的名称)。 / p>
请注意,do_cleansstate任务将删除配方$ {WORKDIR}!
有关更多信息:https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#ref-tasks-cleansstate
如果您直接在$ {WORKDIR}中进行此类修改,除非您正在测试,否则不应该这样做,只需执行以下命令即可:
bitbake virtual/kernel -f -c compile && bitbake virtual/kernel
答案 1 :(得分:0)
如果您不是直接在$ {WORKDIR}中进行修改,则必须将SRCREV设置为新的哈希并增加PR。然后输入命令
bitbake <image-name>
哪个会再次编译一个程序包,并根据您的更改创建新映像。
如果您在$ {WORKDIR}中进行了更改,请添加,提交并推送到您的存储库,然后按照我上面的步骤进行操作。这是最干净的解决方案。
其他解决方案建议的命令:
bitbake <image-name> -c cleansstate
将导致所有软件包重新生成,如果没有状态镜像,这将花费很长时间。
答案 2 :(得分:0)
由于清理后将重写 $ {WORKDIR} 中的更改,因此您可以通过命令devtool modify <recipe-name>
默认情况下,您的配方代码将放入tmp / workspace / source /目录
现在,您可以自由地修改代码,只需像往常一样使用bitbake <recipe-name>
进行构建即可。
修改成功后,您可以轻松地将更改另存为原始配方代码的补丁(只要它可能是开源的并已下载):
devtool recipe-update -a <layer-path> <recipe-name>