15

谁能更全面地向我解释一下 sstate 缓存在 yocto 中是如何工作的?

这种解释远非清楚。

我不明白这种情况何时发生:

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Running setscene task 118 of 155 (virtual:native:/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot_setscene)
NOTE: Running setscene task 119 of 155 (/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/quilt/quilt-native_0.48.bb:do_populate_sysroot_setscene)

当它找到工件或获得候选人时,然后检查签名。我想知道 setscene 任务何时实际运行。

附加问题:何时查看本地 sstate_cache 文件夹以及何时查看镜像?

4

1 回答 1

21

Yocto 项目手册有一节专门介绍共享状态缓存

要回答您的问题,首先检查 sstate-cache 文件夹,然后检查镜像(如果在本地找不到任何内容)。

这个缓存是基于一组输入,这些输入被散列成“签名”,可以在 中找到$BUILD_DIR/tmp/stamps,但请记住,您需要 bitbake-dumpsigs 来查看文件。看看bitbake-dumpsigsbitbake-diffsigs可以帮助您了解缓存的工作原理。还有一篇很棒的“Tips & Tricks”文章,了解你的构建环境发生了什么变化。

虽然可能需要一些时间才能理解,但共享状态缓存非常有价值并且经过严格测试。

在跟踪依赖项方面,例如为什么您的图像可能包含 passwd,bitbake -g将为您提供一个依赖关系树,并oe-pkgdata-util find-path可以帮助您了解哪个配方导致了结果图像上的给定二进制文件。

有用的提示:“当我们需要从头开始重建时,我们要么删除 build/tmp 以便我们可以使用 sstate-cache 来加速构建,要么我们删除 build/tmp 和 sstate-cache 以便在此期间不重用缓存构建。” 1

1萨尔瓦多、奥塔维奥和戴安·安戈里尼。“6.2 了解共享状态缓存。” 使用 Yocto 项目进行嵌入式 Linux 开发

于 2016-08-01T17:25:24.653 回答