当前位置:首页 > linux教程 > 列表

make编译时提示“warning: Clock skew detected. Your build may be incomplete

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-20 17:20:59 浏览: 评论:0 

make编译时提示“warning: Clock skew detected. Your build may be incomplete.”如何解决.

在编译Linux的内核 kernel 时提示“warning: Clock skew detected.Your build may be incomplete.”,原来是当前系统的时间还在编译目录中的文件最后修改时间之前,以下是解决方法.

在编译kernel时,发现如下的一些警告信息:warning:Clock skew detected. Your build may be incomplete.

其原因是:当前系统的时间还在编译目录中的文件,包括源程序文件和编译后生成的.o目标文件,最后修改时间之前,比如我用“date”命令查看到的时间为2000年8月24日,而目录中文件最后的修改时间为2012年8月24日.

解决方法是,首先应该“make clean”将之前编译的”.o”目标文件清除掉,然后再运行“make”进行编译,即使它再有这样的warning也没关系,因为所有的目标都会被重新编译,当然,要去掉这个warning,只需要将当前时间修改正确即可.

可以用如下命令修改系统时间

#date -s 08/25/2012

#date -s 13:12:00

或者:#date -s "08/25/2012 13:12:00",这里的格式是 "MM/DD/YYYY hh:mm:ss"

date命令更多学习

第一部分:设置时间

我们一般使用“date -s”命令来修改系统时间(这里说的是系统时间,是linux由操作系统维护的),比如将系统时间设定成1996年6月10日的命令如下.

#date -s 06/10/96

将系统时间设定成下午1点12分0秒的命令如下.#date -s 13:12:00将日期时间设置成1996年6月10日下午1点12分0秒可以用:#date -s "06/10/1996 13:12:00"

这里的格式是 "MM/DD/YYYY hh:mm:ss" 或者 #date 061013121996.00,这里的格式是MMDDhhmmYYYY.ss (月日时分年.秒)

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现,为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS,由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因,如果要确保修改生效可以执行如下命令.

#hwclock -w

这个命令强制把系统时间写入CMOS,等同于hwclock --systohc.

Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的Standard BIOS Feture”项中进行设置.

在 Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock,其中,clock和hwclock用法相近,只不过clock命令 除了支持x86硬件体系外,还支持Alpha硬件体系,由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习.

1.在虚拟终端中使用date命令来查看和设置系统时间:

查看系统时钟的操作:#date

设置系统时钟的操作:#date 091713272003.30

通用的设置格式:#date 月日时分年.秒

2.使用hwclock或clock命令查看和设置硬件时钟

查看硬件时钟:#hwclock --show 或 #clock –show

2003年09月17日 星期三 13时24分11秒 -0.482735 seconds

设置硬件时钟的操作:

# hwclock --set --date="09/17/2003 13:26:00"

或者:# clock --set --date="09/17/2003 13:26:00"

通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。

3.同步系统时钟和硬件时钟

Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步,如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟.

硬件时钟同步系统时钟

# hwclock --hctosys

或者:# clock –hctosys

上面命令中,--hctosys表示Hardware Clock to SYStem clock.

系统时钟同步硬件时钟

# hwclock --systohc 或者:# hwclock -w 或者:# clock –systohc

输入#hwclock --help查看所有参数和格式

第二部分:设置时区

配置文档/etc/sysconfig/clock

  1. ZONE="Asia/Shanghai" 
  2. UTC=false 
  3. ARC=false 

另外,还可以使用tzslect命令来选择时区.

具体看以下文档:http://delxu.spaces.live.com/Blog/cns!D04F87F9ED029F69!409.entry

第三部分:设置时钟同步-- NTP

1) Linux (以RedHat Linux为例)

配置NTP配置文件 /etc/ntp.conf,添加如下内容:

  1. --- OUR TIMESERVERS ----- 
  2. server 10.86.2.9 prefer 
  3. server 10.56.254.131 
  4. server 2.pool.ntp.org 

然后重启NTPD:# /sbin/service ntpd restart

Tags: warning:Clock skew detecte

分享到: