linux硬件时间的调整

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/

你可能感兴趣的:(linux硬件时间的调整)