- 论坛徽章:
- 0
|
最近刚升级到X64位linux系统,用的centos 5,升级了内核到2.6.26.8,但发现系统时间总是不对
#hwclock --debug
hwclock from util-linux-2.13-pre7
hwclock: Open of /dev/rtc failed, errno=19: no such file or directory
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
#ll /dev/rtc*
crw------- 1 root root 10, 135 Jan 12 2009 /dev/rtc
crw------- 1 root root 254, 0 Jan 11 19:06 /dev/rtc0
尝试升级内核到2.6.28,不行;
使用网上提供的解决方式,重新编译内核时编译选项:
Device Drivers;
* Real Time Clock;
* PC_style 'CMOS'
将Real Time Clock和其下的选项PC_style ‘CMOS’都直接编译进内核,但在我的尝试中2.6.26/2.6.28都没有成功;
使用CLOCKFLAGS=”–directisa”来执行hwclock
在将/dev/rtc删除后 ln -s /dev/rtc0 /dev/rtc后可以使用hwclock更新cmos时间,但重启后时间仍然不对;
又尝试使用noacpi apic=off应为noapic acpi=off的参数给内核,仍然不起作用;
最后使用32位的hwclock来取代64位系统上的程序后,系统时间终于恢复正常了。
注:hwclock属于util-linux包,将其解开后替换到/sbin目录就可以了。
hwclock在64位系统上的时间同步问题很普遍,希望这篇文章能给同样受困扰的朋友一点帮助。
—————————————————————————-
Update by latteye
我在公司的机器部署中也遇到了这个问题,都是在 CentOS 5.3 使用新内核的时候才会遇到。
实际上这是 Fedora、RH 系列的一个小 bug。
在老式的 mkinitrd 命令工作时,会将 /dev/rtc 生成好,放在 initrd 文件中。
但是新的 kernel 是自己生成的 /dev/rtc 文件的,当 kernel 生成 /dev/rtc 文件时,发现已经有 rtc 设备了。于是就将 /dev/rtc0 创建了出来。
应对这个问题,hwclock 做了调整,新的 hwclock 已经支持寻找 /dev/rtc0 设备。但在 CentOS 5.3 上使用新的 hwclock 时发现系统关闭时硬件时间同步正常,系统开机时并不正常。不过这不影响使用。
从 log 看来,最完美的解决方案就是使用 32 位的 hwclock ,是否使用,大家根据自己的环境斟酌。
http://latteye.com/2009/01/x64%E ... 96%B9%E5%BC%8F.html |
评分
-
查看全部评分
|