Buildroot suit la progression de la construction avec .stamp_xxx dans chaque package build dir.target install est en fait la dernière étape pour chaque package. Ainsi, la suppression du fichier .stamp_target_installed de chaque répertoire de construction de package entraînerait sa réinstallation sur la cible
Dans la dernière buildroot, vous pouvez simplement faire ce qui suit :
rm -rf output/target
find output/ -name ".stamp_target_installed" -delete
rm -f output/build/host-gcc-final-*/.stamp_host_installed
Dans certains buildroot plus anciens, il existe quelques autres fichiers en sortie qui suivent la création du répertoire cible avec le squelette. Citant le message de la liste de diffusion, nous pourrions résumer ce qui suit :
Est-ce qu'un "rm -rf output/target &&make" fonctionne ?
Comme l'a dit Thomas, ça ne marche pas. Mais, certains hacks non officiels existent :
- supprimer
build/.root
forcera à réinstaller squelette- supprimer
build/*/.stamp_target_installed
forcer la réinstallation de chaque package cible- selon votre chaîne d'outils, vous pouvez réinstaller libc and co en supprimant :
stamps/ext-toolchain-installed
(externe)stamps/ct-ng-toolchain-installed
(ctng)target/lib/libc.so.0
(buildroot)
Et puis recommencez tout simplement.
Rappelez-vous, il y a des tonnes de raisons pour lesquelles ces conseils pourraient faire de mauvaises choses. Le seul moyen officiel actuel de reconstruire la cible est "rendre propre".
Buildroot a des cibles make spéciales pour nettoyer le répertoire de construction de packages spécifiques, mais cela ne touche aucun des fichiers installés. Pour citer le manuel d'utilisation :
Lorsqu'un paquet est supprimé de la configuration, Buildroot ne fait rien de spécial. Il ne supprime pas les fichiers installés par ce paquet du système de fichiers racine cible ou de la chaîne d'outils sysroot. Une reconstruction complète est nécessaire pour se débarrasser de ce paquet. Cependant, en général, vous n'avez pas nécessairement besoin que ce paquet soit supprimé immédiatement :vous pouvez attendre la prochaine pause déjeuner pour redémarrer la construction à partir de zéro.
Cela dit, vous pouvez supprimer les fichiers de construction d'un package spécifique en exécutant make <PKG-NAME>-dirclean
. Par exemple, si je voulais supprimer les fichiers de construction pour i2c-tools
, je lancerais make i2c-tools-dirclean
. Le <PKG-NAME>-dirclean
target exécute simplement un rm -rf
sur le output/build/<PKG-NAME>
annuaire. Cela ne supprimera pas les fichiers installés de output/target/
. Si vous voulez supprimer les fichiers de votre rootfs sans une reconstruction complète, c'est bien - vous pouvez simplement aller dans output/target/
, rm
les fichiers dont vous ne voulez plus, puis exécutez make
pour régénérer vos images finales. Assurez-vous également que votre configuration Buildroot n'est pas configurée pour reconstruire et installer le package que vous essayez de supprimer.