开机时Linux会从硬件的rtc的时钟芯片中获取一次硬件时间,然后以此为基础来运行系统时间。
settimeofday 相当于date shell命令,紧紧能设置系统时间。
如果想设置硬件时间,需要一个hwclock -w shell原理的函数来写硬件的rtc。
扒一扒 busybox的 hwclock.c源码(http://www.codeforge.cn/read/97203/hwclock.c__html)
可以知道这么抄写功能源码:
[cpp] view plain copy
static void write_rtc(time_t t, int utc)
{
int rtc
struct tm tm
if (( rtc = open ( "/dev/rtc", O_WRONLY )) <0 )
{
if (( rtc = open ( "/dev/misc/rtc", O_WRONLY )) <0 )
bb_perror_msg_and_die ( "Could not access RTC
1、查看系统时间#date
可以看到时区为EST(美国东部标准时间),正常显示应该是CST(中国标准时间)。
2、查看系统时区
#date -R
可以看到输出为
Fri, 21 Nov 2014 00:54:08 -0500
时区为-5
正常时区应该显示为+8(东八区)
3、确保网络通畅,DNS正常解析,尝试同步互联网时间
#ntpdate cn.pool.ntp.org
4、查看系统时区配置文件
#cat /etc/sysconfig/clock
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)