- 論壇徽章:
- 0
|
最近剛升級到X64位linux系統(tǒng),用的centos 5,升級了內(nèi)核到2.6.26.8,但發(fā)現(xiàn)系統(tǒng)時間總是不對
#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
嘗試升級內(nèi)核到2.6.28,不行;
使用網(wǎng)上提供的解決方式,重新編譯內(nèi)核時編譯選項:
Device Drivers;
* Real Time Clock;
* PC_style 'CMOS'
將Real Time Clock和其下的選項PC_style ‘CMOS’都直接編譯進內(nèi)核,但在我的嘗試中2.6.26/2.6.28都沒有成功;
使用CLOCKFLAGS=”–directisa”來執(zhí)行hwclock
在將/dev/rtc刪除后 ln -s /dev/rtc0 /dev/rtc后可以使用hwclock更新cmos時間,但重啟后時間仍然不對;
又嘗試使用noacpi apic=off應為noapic acpi=off的參數(shù)給內(nèi)核,仍然不起作用;
最后使用32位的hwclock來取代64位系統(tǒng)上的程序后,系統(tǒng)時間終于恢復正常了。
注:hwclock屬于util-linux包,將其解開后替換到/sbin目錄就可以了。
hwclock在64位系統(tǒng)上的時間同步問題很普遍,希望這篇文章能給同樣受困擾的朋友一點幫助。
—————————————————————————-
Update by latteye
我在公司的機器部署中也遇到了這個問題,都是在 CentOS 5.3 使用新內(nèi)核的時候才會遇到。
實際上這是 Fedora、RH 系列的一個小 bug。
在老式的 mkinitrd 命令工作時,會將 /dev/rtc 生成好,放在 initrd 文件中。
但是新的 kernel 是自己生成的 /dev/rtc 文件的,當 kernel 生成 /dev/rtc 文件時,發(fā)現(xiàn)已經(jīng)有 rtc 設備了。于是就將 /dev/rtc0 創(chuàng)建了出來。
應對這個問題,hwclock 做了調(diào)整,新的 hwclock 已經(jīng)支持尋找 /dev/rtc0 設備。但在 CentOS 5.3 上使用新的 hwclock 時發(fā)現(xiàn)系統(tǒng)關閉時硬件時間同步正常,系統(tǒng)開機時并不正常。不過這不影響使用。
從 log 看來,最完美的解決方案就是使用 32 位的 hwclock ,是否使用,大家根據(jù)自己的環(huán)境斟酌。
http://latteye.com/2009/01/x64%E ... 96%B9%E5%BC%8F.html |
評分
-
查看全部評分
|