En orden de efectividad y cuán fácil es la solución:
- Compre más espacio en disco: Poner $TMPDIR en un SSD propio ayuda mucho y elimina la necesidad de microgestionar.
- Eliminar $TMPDIR (compilación/tmp): imágenes antiguas, paquetes antiguos y directorios de trabajo/sysroots para MÁQUINAS para las que no está compilando actualmente se acumulan y pueden ocupar bastante espacio. Normalmente, puede eliminar todo el $TMPDIR de vez en cuando:siempre que use sstate-cache, la próxima compilación debería ser bastante rápida.
- Eliminar $SSTATE_DIR (build/sstate-cache): Si haces muchas compilaciones, el estado en sí mismo se acumula con el tiempo. Eliminar el directorio es seguro, pero la próxima compilación llevará mucho tiempo ya que todo se reconstruirá.
- Eliminar $DL_DIR (compilación/descargas): Si usa un directorio de compilación durante mucho tiempo (mientras extrae actualizaciones del maestro o cambia a una rama más nueva), las descargas obsoletas siguen ocupando espacio en el disco. Tenga en cuenta que eliminar el directorio significará volver a descargar todo. Mirar solo los archivos más grandes y eliminar las versiones anteriores puede ser un compromiso útil aquí.
Hay algunas formas oficiales en lugar de eliminar.
Al eliminar deliberadamente, podría estar forzando compilaciones y descargas innecesarias. Bitbake podría no controlar algunos elementos de la compilación, y puede encontrarse en una situación en la que no pueda reconstruir estos elementos de una manera fácil.
Con estas recomendaciones, puede superar la regla de yocto de 50 GB no escritos por compilación:
Comprueba tus IMAGE_FSTYPES variable. Mi experiencia dice que es seguro eliminar todas las imágenes de estos archivos que no son enlaces simbólicos o destinos de enlaces simbólicos. Evite el último generado para evitar romper el último enlace de compilación y cualquiera relacionado con los cargadores de arranque y los archivos de configuración, ya que rara vez se pueden regenerar.
Si mantiene más de una compilación con el mismo conjunto de capas, puede usar una carpeta de descarga común para las compilaciones.
DL_DIR ?="common_dir_across_all_builds/downloads/"
Y después:
Para mantener tu /deploy limpio:
RM_OLD_IMAGE: Recupera espacio en disco eliminando versiones creadas previamente de la misma imagen del directorio de imágenes al que apunta la variable DEPLOY_DIR. Establezca esta variable en "1" en su archivo local.conf para eliminar estas imágenes:
RM_OLD_IMAGE = "1"
IMAGE_FSTYPES Elimina los tipos de imágenes que no planeas usar, siempre puedes habilitar una en particular cuando la necesites:
IMAGE_FSTYPES_remove = "tar.bz2"
IMAGE_FSTYPES_remove = "rpi-sdimg"
IMAGE_FSTYPES_remove = "ext3"
Para /tmp/work, no necesita todos los archivos de trabajo de todas las recetas. Puedes especificar cuáles te interesan en tu promoción.
RM_WORK_EXCLUDE :Con rm_work habilitado, esta variable especifica una lista de recetas cuyos directorios de trabajo no deben eliminarse. Consulte la sección "rm_work.bbclass" para obtener más detalles.
INHERIT += "rm_work"
RM_WORK_EXCLUDE += "home-assistant widde"