yocto - Yocto 中的共享状态缓存如何工作?

标签 yocto bitbake openembedded

谁能更全面地向我解释 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-dumpsigsbitbake-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/

相关文章:

makefile - 用 yocto 建立一个图书馆

ubuntu - 如何清理我的网络服务器(Ubuntu 16.04)?

yocto - native 包拒绝将库放在 sysroot 文件夹中

yocto - 如何将配方限制为仅本地和 nativesdk?

yocto - 在 yocto/poky 中使用 SELinux

embedded-linux - 任务 415(虚拟 :native:/home/user/Yocto/Poky/poky/meta/recipes-devtools/automake/automake_1. 15.bb,do_compile)失败,退出代码为 '1'

opencv - 使用Yocto Project将x86-64主机上的CUDA与CUDA交叉编译为nvidia tk1(ARM)目标?

linux - 在 Yocto 生成的图像中添加分区

qt - 如何使用 yocto 构建简单的 qt 应用程序?

linux - 如何在 Yocto 中更改 u-boot 的配置