嵌入式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 得到解决