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

kevin.Zhu 发布于:2013-2-19 11:48 分类:Linux  有 21 人浏览,获得评论 0 条  

整完/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:queryandsetthehardwareclock(RTC)

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


2


我现在有两个系统,一个是Gentoo 2006.0,一个是Ubuntu Dapper,两个系统之间的时间不同步。
  我在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。