如何在运行时获取rootfs构建时间戳?

时间:2016-03-10 21:35:30

标签: yocto bitbake openembedded

出于版本识别的目的,我希望能够检索指示何时构建根文件系统映像的时间戳。它需要在运行时在板上自行检索。

我正在使用ÅngströmDistribution,分支angstrom-v2013.12-yocto1.5,它使用OpenEmbedded构建rootfs(根文件系统)。

内核是为这个板单独构建的,所以我不能将uname -v用于此目的,因为它只读取内核构建时间戳,而不是rootfs构建时间戳。

rootfs构建时间戳是否会在rootfs映像中添加到可以在运行时检索的位置?

2 个答案:

答案 0 :(得分:4)

  

BitBake可以很容易地在变量扩展中使用Python代码   语法如下:

     

VARIABLE = "${@python-command}"

     

这为用户提供了极大的灵活性,如以下示例所示:

     

DATE = "${@time.strftime('%Y%m%d',time.gmtime())}"

     

这导致了   包含今天日期的DATE变量。

构建映像时,存在/ etc / timestamp中的时间戳,Example HERE

rootfs_update_timestamp () {
date "+%m%d%H%M%Y" >${IMAGE_ROOTFS}/etc/timestamp 
}

您可以查看实现日期和时间的文章,并将文件放入rootfs

DESCRIPTION = "Simple helloworld application"
SECTION = "hio-version"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"

DEPENDS = "core-image-minimal"
SRC_URI = "file://version "

S = "${WORKDIR}"

INSANE_SKIP_${PN} = "installed-vs-shipped"
FILES_${PN} += " /"

do_install() {
             echo "------------------------"
         echo "------------------------"

        #version
            #echo hio-board-dl-v1.00 > ${WORKDIR}/version
        #date >> ${WORKDIR}/version
            #install -m 0644 ${WORKDIR}/version ${D}/       
        date_version_1=hio-board-dl-
        date_version_2=$(date "+%Y%m%d%H%M%S")
        date_version_3=-R1.00

        echo $date_version_1$date_version_2$date_version_3 > ${WORKDIR}/version
        install -m 0644 ${WORKDIR}/version ${D}/
}

答案 1 :(得分:2)

是的,默认情况下/ etc / timestamp包含rootfs构建时间。