rv1126-rv1109-编译日期功能

这里做了编译日期的功能;生成的固件会有编译日期;

上效果:

这里有update.img和ota包的md5;还有版本日期;

首先上代码:(build.sh)

	kernel_version=`grep -rnHI "LB_KERNEL_VERSION" ../sysdrv/source/kernel/include/generated/compile.h | awk -F\" '{print $2}'`
	uboot_version=`grep -rnHI "U_BOOT_TIMESTAMP" ../sysdrv/source/uboot/u-boot/include/generated/timestamp_autogenerated.h | awk -F\" '{print $2}'`
	rootfs_version=$(cat ../sysdrv/out/rootfs_glibc_rv1126/lonbon/local/sbin/FS_VERSION)

	pushd $RK_PROJECT_OUTPUT_IMAGES
	md5sum $usb_pkg | awk '{print "  - USB Image: "$2" [MD5:"$1"]"}' > version.txt
	md5sum $ota_pkg | awk '{print "  - OTA Package: "$2" [MD5:"$1"]"}' >> version.txt
	echo "  - Version: U-boot[$uboot_version], Kernel[$kernel_version], Rootfs[${rootfs_version}]" >> version.txt
	mv version.txt ../
	popd

kernel直接过去LB_KERNEL_VERSION获取

uboot需要自己添加

然后会生成在

 然后就是rootfs

生成一个FS_VERSION

编译到rootfs的时候就会更新;

 

然后在通过脚本弄过来;就实现 

 这样以后在代码里面就可以看到日期来确认你的板子日期版本

==========================================================================

串口打印如下

uboot:

kernel:

rootfs:

=========================================================================

下面是补丁:

commit 333e9f034aa0f8accbee918cc7365c6166e7b4ae (HEAD -> master)
Author: longmin <1938049502@qq.com>
Date:   Mon Jul 1 15:26:19 2024 +0800

    update uboot version time

diff --git a/Makefile b/Makefile
index 35713e5bd4..9504f90946 100644
--- a/Makefile
+++ b/Makefile
@@ -1417,6 +1417,7 @@ define filechk_timestamp.h
                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
                        LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; \
+                       LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIMESTAMP "%Y-%m-%d_%T"'; \
                else \
                        return 42; \
                fi; \
@@ -1426,6 +1427,7 @@ define filechk_timestamp.h
                LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
                LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
                LC_ALL=C date +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; \
+               LC_ALL=C date +'#define U_BOOT_TIMESTAMP "%Y-%m-%d_%T"'; \
        fi)
 endef
commit 86dd0e2f314119ea13fb21ff692a35aef35c656f (HEAD -> rk/master)
Author: longmin <1938049502@qq.com>
Date:   Mon Jul 1 15:25:26 2024 +0800

    update rootfs version time

diff --git a/Makefile b/Makefile
index 0562688..1de70ea 100644
--- a/Makefile
+++ b/Makefile
@@ -624,7 +624,7 @@ ifeq ($(SYSDRV_BUILD_VERSION),RELEASE)
##########################################################################################
#	build rootfs
##########################################################################################
rootfs: rootfs_prepare pctools busybox boardtools drv
	@echo -e "$(C_GREEN) ==sysdrv== build rootfs  $(C_NORMAL)"
	make -C $(SYSDRV_DIR) strip
	make -C $(SYSDRV_DIR) dataro
	make -C $(SYSDRV_DIR) datarw
	@test ! -d $(SYSDRV_DIR)/tools/bin/* ||cp -fv $(SYSDRV_DIR)/tools/bin/* $(SYSDRV_DIR_OUT_ROOTFS)/bin
	pushd $(SYSDRV_DIR)/out;tar cf $(OUT_ROOTFS).tar $(OUT_ROOTFS);popd
	@# RK_PARTITION_FS_TYPE_CFG is defined outside of sysdrv,
	@# so if defined RK_PARTITION_FS_TYPE_CFG, we ignore SYSDRV_ROOTFS_BUILD_TARGET
	@test "$(ROOTFS_PART_SIZE)" = "FAIL" || \
		test "$(RK_PARTITION_FS_TYPE_CFG)x" != "x" || \
		make -C $(SYSDRV_DIR) $(SYSDRV_ROOTFS_BUILD_TARGET)
	$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(OUTPUT_ROOTFS_SOURCE_DIR), $(SYSDRV_DIR)/out/$(OUT_ROOTFS).tar )
	$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(OUTPUT_ROOTFS_TOOLS_DIR), $(SYSDRV_DIR)/out/bin )
+	make -C $(SYSDRV_DIR) rootfs_version
	@echo -e "$(C_GREEN) ==sysdrv== finish sysdrv build  $(C_NORMAL)"

strip:
ifeq ($(SYSDRV_BUILD_VERSION),RELEASE)
	@echo -e "$(C_GREEN) ==sysdrv== strip files of rootfs  $(C_NORMAL)"
	$(call MAROC_STRIP_DEBUG_SYMBOL, $(SYSDRV_DIR_OUT_ROOTFS))
endif

+ rootfs_version:
+       date +'%Y-%m-%d %H:%M:%S' > $(SYSDRV_DIR_OUT)/FS_VERSION
+        cp -fv $(SYSDRV_DIR_OUT)/FS_VERSION $(SYSDRV_DIR_OUT_ROOTFS)/lonbon/local/sbin

 rootfs_ubi:

 

commit 64ffaa734ea657246ce3a7b1a2d38bef1eb6aa87 (HEAD -> master)
Author: longmin <1938049502@qq.com>
Date:   Mon Jul 1 15:24:19 2024 +0800

    add time for version.txt

diff --git a/build.sh b/build.sh
index a650527..cb48b1b 100755
--- a/build.sh
+++ b/build.sh
@@ -725,9 +725,15 @@ function build_lb_ota(){
        msg_info "==build_lb_ota==not usb_pkg"
        fi

+       kernel_version=`grep -rnHI "LB_KERNEL_VERSION" ../sysdrv/source/kernel/include/generated/compile.h | awk -F\" '{print $2}'`
+       uboot_version=`grep -rnHI "U_BOOT_TIMESTAMP" ../sysdrv/source/uboot/u-boot/include/generated/timestamp_autogenerated.h | awk -F\" '{print $2}'`
+       rootfs_version=$(cat ../sysdrv/out/rootfs_glibc_rv1126/lonbon/local/sbin/FS_VERSION)
+
        pushd $RK_PROJECT_OUTPUT_IMAGES
        md5sum $usb_pkg | awk '{print "  - USB Image: "$2" [MD5:"$1"]"}' > version.txt
        md5sum $ota_pkg | awk '{print "  - OTA Package: "$2" [MD5:"$1"]"}' >> version.txt
+       echo "  - Version: U-boot[$uboot_version], Kernel[$kernel_version], Rootfs[${rootfs_version}]" >> version.txt
        mv version.txt ../
        popd

        pushd $RK_PROJECT_OUTPUT_IMAGE

这样实现一个简单的版本日期确定固件;后期生成固件会生成在固件尾部,这样就不会需要自己天天改固件的日期;

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋风旋风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值