LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1687|回复: 9

[已解决]求助:无法设置系统的时间

[复制链接]
发表于 2007-5-21 20:58:25 | 显示全部楼层 |阅读模式
问题现象:
刚安装的基本系统,内核版本是2.6.21-gentoo-r1,启动系统时,大致显示什么
... turn off TSC time
Fail to set clock
然后进入系统,用date查看时间,不是我安装时设置的时间,大概要快上半天左右。
然后用date命令重新设置了时间,发现重启之后,问题还是没有解决。
/etc/conf.d/clock文件中是这样设置的:
CLOCK="local"
TIMEZONE="Asia/Shanghai"

我个人觉得应该不是时区设置的什么UTC问题。
硬件平台:
ThinkPad T60
编译内核时配置为:Processor family设为Pentium-4/Celerron(P4-based)/Pentium-4 M

哪位遇到过这个问题?多谢~~
 楼主| 发表于 2007-5-21 21:02:26 | 显示全部楼层
可能是刷新问题导致一下发了两个相同的求助贴
请版主删掉其中一个
谢谢
回复 支持 反对

使用道具 举报

发表于 2007-5-21 22:03:06 | 显示全部楼层
date xxxxxxxxx,
hwclock ---systohc
如果是双系统,必须设定CLOCK="UTC"
回复 支持 反对

使用道具 举报

发表于 2007-5-21 22:42:25 | 显示全部楼层
date xxxxxxxxx,
hwclock ---systohc
如果是双系统,必须设定CLOCK="UTC"
我的CLOCK="local" 就可以---多系统。

我有时也有快5.6小时的现象,这发生在从另一系统chroot进入后,再重启直接进入的时候。不知因何故,CLOCK变为了UTC ,改回后又正常了。

LZ是不是/etc/localtime的原因?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 23:03:58 | 显示全部楼层
现在问题比较清晰了。
下面是我的排错过程:
1、首先,排除是local错误,因为我的配置很明显没有问题。根据现象,能用date命令设置系统时间,但是重启之后还是修改之前的时间,并且错误提示也表明Failed to set clock,说明是将时间写入CMOS硬件的时候出错了。
2、那么就看看直接读写一下硬件中的时钟看看,执行hwclock --show命令,果然,出现错误提示:
select() to /dev/rtc to wait for clock tick timed out
3、请出google大神,搜索这个信息,发现了一些解决方法(下面引号中的内容来自搜索的解决方法):
"修改/etc/init.d/两个文件hwclock.sh和hwclockfirst.sh,修改其中的HWCLOCKPARS=--directisa就可以了。"
确实,hwclock --directisa --show现在能够正常显示时间了。

现在的问题是,gentoo系统中并没有这两个脚本文件:“/etc/init.d/hwclock.sh和hwclockfirst.sh”

现在,还请各位继续指点,多谢~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 23:42:12 | 显示全部楼层
问题已经解决,具体解决过程如下:
1、先分析系统的启动脚本:
cd /etc/runlevels/boot
ls -l
发现clock是指向/etc/init.d/clock的链接
2、分析/etc/init.d/clock:
less /etc/init.d/clock
在里面查找hwclock
3、在该脚本中发现hwclock运行时使用了${myopts}参数
4、继续在该文件里查找${myopts}参数,发现该参数最后在尾部被添加了${CLOCK_OPTS}这个参数选项。
5、线索越来越清晰了,${CLOCK_OPTS}这个参数选项很眼熟,感觉是在/etc/conf.d/clock配置文件里的选项。
6、打开/etc/conf.d/clock,果然有CLOCK_OPTS这个设置,将其设置为CLOCK_OPTS="--directisa"并存盘。
7、重启系统,观察启动时的信息,果然没有Failed to set clock这个错误了,但是有一些黄色的警告,说/etc/init.d /etc/conf.d /etc/rc.conf文件的修改时间在将来的某个时刻。于是,将这些目录下的文件touch一下,再重启,就没有黄色警告了。

总结:如果系统启动时出现Failed to set clock,则先用hwclock --show看能否正确显示硬件时间,如果出现select() to /dev/rtc to wait for clock tick timed out错误,则将/etc/conf.d/clock文件里设置CLOCK_OPTS="--directisa"。

欢迎各位继续修正。
回复 支持 反对

使用道具 举报

发表于 2007-5-22 01:06:02 | 显示全部楼层
Post by blackwhite
date xxxxxxxxx,
hwclock ---systohc
如果是双系统,必须设定CLOCK="UTC"

有win系统的应该是 local 才对。单系统才可以用 UTC。
回复 支持 反对

使用道具 举报

发表于 2007-5-22 10:04:29 | 显示全部楼层
Post by 晨想
有win系统的应该是 local 才对。单系统才可以用 UTC。


单系统 local/UTC 都可以;多系统的话,所有系统一致就行,不过 windows 默认用的是 local,所以如果有 windows 的话,建议设置 local。
回复 支持 反对

使用道具 举报

发表于 2007-5-22 11:39:15 | 显示全部楼层
Post by 晨想
有win系统的应该是 local 才对。单系统才可以用 UTC。

谢谢指正。是我弄错了。
回复 支持 反对

使用道具 举报

发表于 2007-5-23 16:50:13 | 显示全部楼层
谢谢楼主,遇到同样的问题,可是一直没想到那个参数是配置文件里面的,太粗心了,呵呵。谢谢哈!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表