了解Yocto项目的状态缓存功能



我是Yocto项目的新手。我正在管理几个项目,每个项目都有一个版本:开发/调试和现场/工业化。在使用构建系统时,我注意到了以下反复出现的场景。

  1. 让我们假设工作空间是干净的,是一个全新的构建
  2. 启动bitbake,使用特定linux内核设备树和defconfig参数的最小映像。Bitbake将花费一些时间,并且将创建输出文件
  3. 现在,更改前面提到的设备树和defconfig中的参数(假设添加了新的外围设备(。重新启动位烘焙,将为此新编译创建输出文件
  4. 现在,诀窍来了。在步骤2中编译之前,将设备树和defconfig文件重置为设置。重新启动bitbake,它将几乎是即时的。输出文件将替换为步骤2中创建的文件

所以,我知道这是可能的,因为bitbake和sstate缓存的使用,或者我认为这就是原因。我在谷歌上搜索了一段时间,但信息不太清楚。这到底是怎么回事?是否有任何类型的签名在编译时使用配置文件的输入创建,并与编译相关联地存储?我很担心这一点,因为我真的需要相信我发送到字段的正是正确的编译,而不是不安全的开发版本。

与此相关的是,启动bitbake -c cleanall或硬删除部署和sstate缓存目录之间的区别是什么?

提前谢谢。

官方手册中提供了相关信息:https://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.html#shared-状态缓存