如何简化配方-sysroot-native

时间:2018-11-16 03:37:26

标签: yocto

目录 recipe-sysroot-native 占用200M +磁盘空间,我发现它存在于每个WORKDIR中,我认为它们都具有保存内容。拥有如此多的副本浪费了磁盘空间,并且可能减慢了构建时间。可以将它放置在固定的位置,并且每个WORKDIR都通过符号链接对其进行访问吗?

1 个答案:

答案 0 :(得分:0)

staging.bbclass中所述,recipe-sysrootrecipe-sysroot-native中的文件并非总是副本。 Yocto尝试创建到实际文件的硬链接(即仅增加对该文件的引用计数)。

因此recipe-sysrootrecipe-sysroot-native中的所有文件都是硬链接,指向磁盘中的一个源文件。因此,您的磁盘上没有任何重复的空间。

Here,您可以看到staging.bbclass的实际实现,其中它尝试​​创建硬链接,如果不允许,则进行复制。

您始终可以使用ls -i进行检查,以查看文件的引用计数。

下面的文字是从yocto mega平均复制的,

  

第二阶段处理想要使用以下内容的食谱   另一个配方,并通过   DEPENDS变量。配方将具有do_prepare_recipe_sysroot   任务,并在执行此任务时创建配方sysroot和   配方工作目录(即WORKDIR)中的recipe-sysroot-native。的   OpenEmbedded构建系统创建指向相关副本的硬链接   文件从sysroots-components移到配方工作目录。

     

注意:如果不可能使用硬链接,则构建系统将使用实际的   副本。