嵌入式linux date -s写入保存时间后,开机启动相差八小时

这个问题纠结了很久,首先,肯定是确保localtime  timezone是正确的

之前通过修改hwclock -s强行转换以后 ,解决了保存以后开机会时间快八小时的问题,但是

手动启动Ntpd以后,时间再次被修改,这就郁闷了,而且ntpd过一段时间,就会修改,所以很麻烦

方法1: 我做了一个后台程序用hwclock -w实时监测发现hwclock时区改变就同步和date一样,但是客户不接受

方法2:date -s "xxxxx" 写入时间后,用hwclock -w -u保存,这个解决了所有的问题,但是客户还是无法接受,因为客户程序会调用hwcloc -w,所以无奈之下,只能找第三种方法

方法3:编译新版的hwclock 解决所有问题,本来旧版的hwclock应该没有考虑这个问题,新版的得到了解决 这是对比ubuntu才发现的

首先确保 localtime  timezone是正确的, 我都设置为Asia/Shangha

修改前

 这里hwclock显示,修改后发生了变化

调用hwclock的时候需要一点时间,和旧版的hwclock很不一样,应该是新版的hwclock做了处理

我是使用 util-linux-2.36-rc1 编译的hwclock

til-linux-2.36-rc1 下载官方地址 :  https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/

配置如下

 #!/bin/sh./configure --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc 
      --prefix=/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install 
      --exec-prefix=/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install 
      CFLAGS="-I/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install/include 
      -I/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install/include/ncurses 
      -I/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install/usr/include" 
      LDFLAGS="-L/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install/lib 
      -L/home/cmi_at15x/Downloads/util-linux-2.36-rc1/_install/usr/lib/" 
      --without-python --without-tinfo --without-ncursesw --without-ncurses

配置好后make就可以使用

下载以后编译就会得到hwclock  替换之前我的hwclock  得到解决

原文地址:https://www.cnblogs.com/ChenChangXiong/p/14345147.html