如何组织 Yocto 构建的下载和 sstate_cache?

问题描述 投票:0回答:2

我倾向于为各种板和版本(相扑、战士等)构建 Yocto 版本。为了加速构建,我使用单独的

DL_DIR
SSTATE_DIR
。我遵循的结构如下:

  • 所有构建和开发板的单个下载目录(因为不同开发板的大多数构建都使用相同的工具链)
  • 每个板有单独的状态缓存目录

我的问题是,我可以使用单个

SSTATE_DIR
来提高性能并减小文件夹大小吗?有人试过吗?

也欢迎建议和个人经验。

optimization build yocto
2个回答
1
投票

您可以在所有构建目录和 Yocto 版本之间共享

DL_DIR
。这些只是源代码的 tarball。

您可以在所有构建目录之间共享

SSTATE_DIR
,尽管它仅对共享相同 Yocto 版本的构建有益,否则根本不会提高大小或速度。这是有道理的,因为相同架构的机器的许多本机包和“基本”目标包(在您的情况下
aarch64
)对于所述机器来说是相同的,并且将使用共享的
SSTATE_DIR
。对于不匹配的情况,新条目将添加到您的
SSTATE_DIR
中。当您有不同的 Yocto 版本时,一些软件包配方已更新,最常见的是 glibc、binutils 和 gcc 已更新。这些是几乎所有其他包配方使用的包,这实际上使得无法将早期(或更高)Yocto 版本中的 sstate-cache 重新用于未更改的包配方,因为它们依赖的包配方是所述配方的状态缓存。此外,Yocto 版本位于 sstate-cache 条目的文件名中,因此无论如何它们都会被重建。


0
投票

我不同意qschulz对以下内容的回答。 原因: 在大多数情况下,开发人员的目标是更稳定的 BSP 层硬件。因此,集成的共享状态缓存是没有用的。

© www.soinside.com 2019 - 2024. All rights reserved.