我最近开始使用Bitbake构建Yocto。每次构建时,它都会消耗更多空间,而且目前我的磁盘空间不足。图像不会被覆盖。将为每个构建创建一组带有时间戳的新文件。我从build / tmp / deploy / images /中删除了旧文件。但它在磁盘可用空间方面没有太大区别。我可以删除任何其他位置吗?
我在构建期间观察到的错误是:
WARNING: The free space of source/build/tmp (/dev/sda4) is running low (0.999GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
WARNING: The free space of source/build/sstate-cache (/dev/sda4) is running low (0.999GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
WARNING: The free space of source/build/downloads (/dev/sda4) is running low (0.999GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
请提出一些建议来避免这个问题。
答案 0 :(得分:6)
为了有效性和修复的简便性:
答案 1 :(得分:1)
有一些代替删除的官方方法。
通过故意删除,您可能会强制进行不必要的构建和下载。某些构建元素可能不受bitbake的控制,因此您会发现自己无法轻松地重建这些项目。
有了这些建议,您可以按照每个构建yocto规则击败非书面50GB:
检查您的 IMAGE_FSTYPES 变量。根据我的经验,可以安全地删除不是符号链接或符号链接目标的这些文件的所有图像。避免生成最后一个,以避免破坏最后一个构建链接,以及与引导加载程序和配置文件有关的任何链接,因为它们很少会重新生成。
如果您要保留多个具有相同图层集的版本,则可以使用通用的下载文件夹进行构建。
DL_DIR?=“” common_dir_across_all_builds / downloads /“
然后:
要保持/部署干净:
RM_OLD_IMAGE::通过从DEPLOY_DIR变量指向的图像目录中删除同一映像的先前构建的版本来回收磁盘空间。在local.conf文件中将此变量设置为“ 1”以删除这些图片:
RM_OLD_IMAGE = "1"
IMAGE_FSTYPES 删除您不打算使用的图像类型,您始终可以在需要时启用它:
IMAGE_FSTYPES_remove = "tar.bz2"
IMAGE_FSTYPES_remove = "rpi-sdimg"
IMAGE_FSTYPES_remove = "ext3"
对于/ tmp / work,不需要所有配方的所有工作文件。您可以指定对开发感兴趣的人。
RM_WORK_EXCLUDE : 在启用rm_work的情况下,此变量指定其工作目录不应删除的配方列表。有关更多详细信息,请参见“ rm_work.bbclass”部分。
INHERIT += "rm_work"
RM_WORK_EXCLUDE += "home-assistant widde"