Wednesday, October 19, 2005

hwclock in redhat

在redhat包的linux裡,有一個hwclock,顧名思義就是與系統時間跟硬體時間(即BIOS時間)相關的指令。主要是讓這兩個東西時間得以同步。通常會使用的參數:

--show :顯示硬體時間
-w:將系統時間寫入硬體

其中還有些參數,比如說寫入的時候要不要產生/etc/adjtime、以何種方式寫入(localtime或utc)、透過isa直接寫入(沒用過...)……等。

hwclock 寫入的時候,若沒有指定localtime或是utc,會以最近一次的設定為準。當然,在沒有設定timezone的時候(沒TZ環境變 數、沒有/usr/local/timezon以及沒有/etc/localtime),一切都會正常,但是如果有timezone存在,指不指定 localtime或是utc會是一個麻煩的問題。例如系統有指定/etc/localtime為台北時間(+8:00)。

step 1:使用ntp校正完時間(之前的介紹),系統為18:00 CST
step 2:執行「hwclock -w」,會以上次的設定方式寫入,最常見的就是localtime,所以硬體時間會是18:00。
step 3:重開機,打date觀看時間,會發現時間不對,不像是utc時間,更不是localtime。

這種情況在自己打包出殘缺的embedded system最常發生。
可以試試看:
hwclock -w --utc

搞不好你的問題就解決了

No comments: