bitbake do_image依赖关系未缓存

时间:2018-11-14 11:35:43

标签: yocto bitbake

我有一个任务do_image_custom,它对任务do_image_ext4有依赖性。

该任务(do_image_ext4)生成一个包含DATETIME的图像文件。

第一次创建图像时,没有错误。 dependency_DATETIME.rootfs.ext4由其依赖项生成和使用。

如果我对ext4文件的使用任务进行了更改,因为我需要规定对DATETIME.rootfs.ext4的依赖关系。

第二次构建(不进行清洁)之后,我得到了do_image_custom无法找到 newer_datetime.rootfs.ext4

的错误

我检查了IMGDEPLOYDIR并确定该文件不存在,并且do_image_ext4任务仍然具有第一个时间戳。

我的问题是,在do_image_custom中我在哪里做错了什么,使得它每次运行时都重新评估DATETIME而不检查(也许)状态缓存?

1 个答案:

答案 0 :(得分:1)

问题是我的自定义任务(do_image_custom)依赖于先前任务的输出。该任务输出生成名称中带有时间戳的ext4图像。

do_image_custom重新评估了DATETIME,即使依赖项(具有 较早DATETIME 的ext4文件没有,因此也没有重建。因此,当执行do_image_custom时, 它引用了一个不存在的文件(错误),因为它没有生成(正确的是,因为依赖项任务的基哈希未更改)。

解决方案是(一直摆在我面前)修改我的自定义任务(do_image_custom)以引用一个符号链接(也在与ext4相同的步骤中生成)在符号链接中没有DATETIME名称,因此do_image_custom不会因其相关步骤的任何更改而改变。