DELL的機器,裝了Debian Sarge。啓動後時間用的是UTC。使用hwclock調整硬件時間出錯,
錯誤信息:select() to /dev/rtc to wait for clock tick timed out
解決:
首先使用date設置正確的時間(如果你的時間設置也不對的話,首先得調整時區).
調整後,使用date命令查看是否正確:
shell$date
Fri Apr 21 18:47:09 CST 2006
首先查看一下硬件時鐘:
shell#hwclock –show
然後使用hwclock將硬件時間調整爲與系統時間一致:
shell#hwclock –directisa –systohc
這時間再查看一下硬件時鐘是否已經調整過來了?
shell#hwclock –show
Fri 21 Apr 2006 06:47:25 PM CST -0.764909 seconds
請注意–directisa參數,如果出現文中開頭的錯誤信息,則必須加上此參數,表示直接以I/O指令存取硬件時間而不通過/dev/rtc設備來存取。
如果您的硬件時間是正確的,要將系統時鐘調整的與硬件時鐘一致,則只需要將–systohc換成–hctosys即可。
hwclock的參數詳解:
語法:hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test] [–utc][–version][–set –date=<日期與時間>]
參數:
–adjust hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用–adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,並用來校正目前的硬件時鐘。
–debug 顯示hwclock執行時詳細的信息。
–directisa hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。
–hctosys 將系統時鐘調整爲與目前的硬件時鐘一致。
–set –date=<日期與時間> 設定硬件時鐘。
–show 顯示硬件時鐘的時間與日期。
–systohc 將硬件時鐘調整爲與目前的系統時鐘一致。
–test 僅測試程序,而不會實際更改硬件時鐘。
–utc 若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。
–version 顯示版本信息。
或許每次都要加上–directisa比較麻煩,因此可以用以下方法作一些改變:
shell#cd /sbin
shell#mv hwclock hwclock.ori
shell#cat > hwclock <
#!/bin/bash
/sbin/hwclock.ori –directisa $@
EOF
shell#chmod +x hwclock
reference:
http://www.freebug.org/blog/