J’ai souvent des idées de petites astuces minimales mais intéressantes pour l’utilisation de Yocto Project (ou d’autres sujets). Après avoir longtemps hésité à les publier car elles sont généralement très brèves, j’ai décidé de les poster dans cette nouvelle rubrique ‘[Yocto Tip]’. Cet article n’a pas de rapport avec la série sur Zephyr qui va continuer très prochainement.
Pendant la phase de mise au point d’un système, il s’avère souvent intéressant de pouvoir différencier deux builds successifs. De même, pendant la mise en œuvre du système de mise à jour, il est important de pouvoir générer à chaque exécution de bitbake
une image différente de la précédente même si aucun contenu n’est modifié.
Une astuce simple pour cela, consiste à ajouter dans l’image un fichier contenant la date et l’heure de compilation.
La petite recette ci-dessous ajoute un fichier /etc/build-timestamp
sur la cible.
# build-timestamp.bb
SUMMARY = "Install a file containing the build timestamp in the image"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
BUILD_TIMETAMP = "${@time.strftime('%Y%m%d-%H%M%S', time.gmtime())}"
do_install() {
install -d ${D}${sysconfdir}
echo "Build Time: ${BUILD_TIMETAMP}" > ${D}${sysconfdir}/build-timestamp
}
do_install[nostamp] = "1"
FILES:${PN} += "${sysconfdir}/build-timestamp"
Installez cette recette dans un layer personnel, n’oubliez pas de l’ajouter (IMAGE_INSTALL:append
) dans votre image, et chaque fois que vous re-générerez votre image, le contenu du fichier /etc/build-timestamp
de la cible sera mis à jour.