嵌入式 ubuntu下时区设置相关文件或方法

时间:2022-05-26 10:51:23
1
整完/usr的挂载点后,出现了一个奇怪的现象,原来正确的系统时钟现在出故障了,提前了8个小时。

鼓掌现象具体表现为:每次启动系统, ubuntu会用BIOS的时间+8后作为系统时钟,同时会把新的时间重新同步到BIOS中。所以每启动一次,时间就会快进8小时。很是怪异。

网上一通google才搞定。

原因是因为/usr的挂载时间被滞后了,由于/etc/localtime( 时区信息)是连接到/usr/share/zoneinfo/下的某个设定好的 时区文件。在系统获取 时区信息 /usr尚未挂载,所以系统始终就错了。

修复办法很简单:
1.rm/etc/localtime(取消原来的符号连接)

2.把/usr/share/zoneinfo/下的某个设定好的 时区文件copy到/etc/localtime.

3.重新启动,故障消除。

相关概念:
UTC(UniversalTimeCoordinated )=GMT(GreenwichMeanTime)

hwclock:queryandsetthehardwarecl ock(RTC)

hwclock通过/etc/default/rcS的UTC(=yes/no)来认定BIOS时钟是UTC还是localtime。


2


我现在有两个系统,一个是Gentoo 2006.0,一个是UbuntuDapper,两个系统之间的时间不同步。

  我在Gentoo下配置时区的方法如下:

  1.ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  2.修改/etc/conf.d/clock,将其中的CLOCK配置为"local",即:CLOCK="local"

  这也是Gentoo下正确的时区配置方法,因此能够认为gentoo的配置没有问题,问题出在Ubuntu上。

  google了一下发现:Ububtu在默认情况下认为BIOS中的时间是UTC时间,而我的Gentoo在如上的配置下认为BIOS中的时间是本地时间,因此就产生了不同步的问题,相差八个小时,解决的方法也很简单:

  在Ubuntu下修改/etc/default/rcS文档,将 UTC=yes 改为 UTC=no 即可。

  注:Ubuntu下也是把/etc/localtime链接到/usr/share/zoneinfo/Asia/Shanghai。