谁能更全面地向我解释 sstate 缓存在 yocto 中是如何工作的?
This explanation还不清楚。
我不明白这种情况何时发生:
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 文件夹中查找,何时进入镜像?
最佳答案
Yocto 项目手册有一节专门介绍 Shared State Cache .
为了回答您的问题,首先检查 sstate-cache 文件夹,如果本地未找到任何内容,则检查镜像。
该缓存基于一组输入,这些输入被散列为“签名”,可以在 $BUILD_DIR/tmp/stamps
中找到。 ,但请记住,您需要使用 bitbake-dumpsigs 来查看文件。看看bitbake-dumpsigs
和 bitbake-diffsigs
可以帮助您了解缓存的工作原理。在 Understanding What Changed 上还有一篇很棒的“提示和技巧”文章在您的构建环境中。
虽然可能需要一些时间来理解,但共享状态缓存非常有值(value)并且经过严格测试。
在跟踪依赖方面,例如为什么您的图像可能包含密码,bitbake -g
会给你一个依赖树和 oe-pkgdata-util find-path
可以帮助您了解哪个配方导致结果图像上的给定二进制文件。
有用的提示:“当我们需要从头开始重建时,我们要么删除 build/tmp 以便我们可以使用 sstate-cache 来加速构建,要么我们同时删除 build/tmp 和 sstate-cache 以便在此期间没有缓存被重用构建。”1
1萨尔瓦多、奥塔维奥和戴安·安戈里尼。 “6.2 了解共享状态缓存。”使用 Yocto 项目进行嵌入式 Linux 开发
关于yocto - Yocto 中的共享状态缓存如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748577/