2013-01-03 09:31:28 hanchengxi 阅读数 3697
  • S5PV210的时钟系统-1.6.ARM裸机第六部分

    本期课程主要讲述S5PV210的时钟系统,通过8节课的讲解和实战,希望大家能够彻底掌握S5PV210(以及类似复杂度的SoC)的时钟体系结构,理解MUX开关、DIV分频器、PLL倍频锁相工作电路等在时钟设置中的作用。

    7587 人正在学习 去看看 朱有鹏

1、电池驱动

在PC机上,一般都会有由电池驱动的硬件时钟。这个电池的作用是什么呢?它就是保证当我们的Computer没电时,我们的(硬件)时钟仍然可以工作。

2、那么硬件时钟是怎样设置的呢?

      a) 硬件时钟可以在BIOS启动时设置,重装过系统的朋友一般都会接触过BIOS设置界面,其中可以设置CMOS时间,在此不再赘述。

      b) 也可以在操作系统启动后设置,要根据具体的命令使得系统时间和硬件时间进行同步。

3、注意

Linux内核会紧紧跟踪硬件时钟。在启动时,Linux会依据硬件时间设置自己的系统时间。设置成功之后,两个时钟相互独立运行。这一点儿,在网上传播了大量错误的解释。请读者注意。

4、linux为什么要设置自己的时钟?换句话说,为什么不直接用硬件时钟呢?

Linux保持自己的时钟,是因为时时去查看硬件时钟是很慢而且很复杂的。

5、显示什么时间?

   a) Linux时钟总会显示UTC时间。以这种方式,内核就不需要了解时区神马的。这种简易性使得系统有更高的可靠性,而且更新时区信息变得更容易。因为每个进程要自己亲自转换适合自己的时区信息,这样给Linux内核减轻了负担是吧。

  b) 硬件时钟以本地时间或UTC时间形式呈现。一般看来,以UTC时间更好一些,因为这样的话,当夏日制开始或结束时,你没有必要更改硬件时钟。不幸的是,一些PC操作系统,比如MS-DOS,Windows,OS/2等,都让硬件时钟显示本地时间,这样的话,夏日制开始or结束时,都必须更改硬件时钟。是不是很“茶包”(trouble)啊~


2012-03-09 14:03:58 Dream19881003 阅读数 3971
  • S5PV210的时钟系统-1.6.ARM裸机第六部分

    本期课程主要讲述S5PV210的时钟系统,通过8节课的讲解和实战,希望大家能够彻底掌握S5PV210(以及类似复杂度的SoC)的时钟体系结构,理解MUX开关、DIV分频器、PLL倍频锁相工作电路等在时钟设置中的作用。

    7587 人正在学习 去看看 朱有鹏

在做DB2 集群复制的时候要求两台主机想时间一致。

但是在一台主机上系统时间和硬件时间相差12个小时左右;手动同步后,重启后又相差12个小时左右。

为什么会是这样的,先介绍下系统时钟和硬件时钟的区别:

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

查时间

swas702:~ # date
Fri Mar  9 13:33:15 CST 20
11
swas702:~ # hwclock --show
Fri Mar  9 13:33:22 201
1  -0.517526 seconds

设置系统时间

was7:/ccc # date
Fri Mar  9 14:02:35 CST 20
11
was7:/ccc # date -s "201
1-03-09 14:02:35"
Fri Mar  9 14:02:35 CST 20
11
was7:/ccc # date
Fri Mar  9 14:02:36 CST 201
1

设置硬件时间

swas702:~ #hwclock --set --date="2011-03-09 13:33:22"

swas702:~ # hwclock --show
Fri Mar  9 13:33:22 201
1  -0.517526 seconds

如果让系统时间与硬件时钟同步,则用
swas702:~ # hwclock --hctosys (hc代表硬件时间,sys代表系统时间)
swas702:~ # clock --systohc 系统时钟和硬件时钟同步

2015-01-05 15:37:32 zuijinhaoma8 阅读数 747
  • S5PV210的时钟系统-1.6.ARM裸机第六部分

    本期课程主要讲述S5PV210的时钟系统,通过8节课的讲解和实战,希望大家能够彻底掌握S5PV210(以及类似复杂度的SoC)的时钟体系结构,理解MUX开关、DIV分频器、PLL倍频锁相工作电路等在时钟设置中的作用。

    7587 人正在学习 去看看 朱有鹏

        Linux时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,简称RTC)。系统时钟是指当前Linux Kernel中的时钟;而硬件时钟则是主板上由电池供电的时钟,硬件时钟可以在BIOS中进行设置。当Linux启动时,系统时钟会去读取硬件时钟的设置,然后系统时钟就会独立于硬件时钟运作。

        Linux关于时间的设置的shell命令有datehwclock两种:

嵌入式s3c6410 ARM开发板中Linux时间设置:

        1. date  -- 用来读取或设置系统时间

        如设置当前系统的时间为2015/01/05 15:44:44

        # date -s "2015-01-05 15:44:44"

        2. hwclock -- 用来读取或设置硬件时间

        # hwclock -s 将硬件时间同步到系统时间

        # hwclock -w 将系统时间同步到硬件时间

一般Linux系统时间设置:

 Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。

1、date

名称 : date

使用权限 : 所有使用者

使用方式 :

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

说明 :

date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :

时间方面 :

% : 印出 %

%n : 下一行

%t : 跳格

%H : 小时(00-23)

%I : 小时(01-12)

%k : 小时(0-23)

%l : 小时(1-12)

%M : 分钟(00-59)

%p : 显示本地 AM 或 PM

%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

%S : 秒(00-60)

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%Z : 显示时区

日期方面 :

%a : 星期几 (Sun-Sat)

%A : 星期几 (Sunday-Saturday)

%b : 月份 (Jan-Dec)

%B : 月份 (January-December)

%c : 直接显示日期与时间

%d : 日 (01-31)

%D : 直接显示日期 (mm/dd/yy)

%h : 同 %b

%j : 一年中的第几天 (001-366)

%m : 月份 (01-12)

%U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)

%w : 一周中的第几天 (0-6)

%W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)

%x : 直接显示日期 (mm/dd/yy)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000-9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数

参数 :

-d datestr : 显示 datestr 中所设定的时间 (非系统时间)

--help : 显示辅助讯息

-s datestr : 将系统时间设为 datestr 中所设定的时间

-u : 显示目前的格林威治时间

--version : 显示版本编号

例子 :

显示时间后跳行,再

显示目前日期: #date '+%T%n%D'

显示月份与日数: date '+%B %d'

显示日期与设定时间(12:34:56): #date --date '12:34:56'

注意 :当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

例子:修改日期时间

在命令行输入:

Date:显示当前时间 Fri Aug 3 14:15:16 CST 2007

date –s:按字符串方式修改时间

可以只修改日期,不修改时间,输入: date -s 2007-08-03

只修改时间,输入:date -s 14:15:00

同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:

#date -s "2007-08-03 14:15:00"

2、查看硬件时间

# hwclock

设置硬件时间

# hwclock -set -date="07/07/06 10:19" (月/日/年 时:分:秒)

3、硬件时间和系统时间的同步

按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。

硬件时钟与系统时钟同步:

# hwclock --hctosys(hc代表硬件时间,sys代表系统时间)

系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)

# hwclock –systohc

2008-07-05 17:07:00 throat 阅读数 2245
  • S5PV210的时钟系统-1.6.ARM裸机第六部分

    本期课程主要讲述S5PV210的时钟系统,通过8节课的讲解和实战,希望大家能够彻底掌握S5PV210(以及类似复杂度的SoC)的时钟体系结构,理解MUX开关、DIV分频器、PLL倍频锁相工作电路等在时钟设置中的作用。

    7587 人正在学习 去看看 朱有鹏
在使用linux的过程中,可能遇到系统时钟和硬件时钟不一致,即date,hwclock --show看到的时钟不一致。   Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。   如果调整BIOS的时间 ,也就是硬件时钟。不用重启机器,在linux系统中就能完成。   # hwclock --set --date="4/28/05 11:10:05"(月/日/年 时:分:秒) # clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)如果让系统时间与硬件时钟同步,则用 # hwclock --hctosys  (hc代表硬件时间,sys代表系统时间) # clock --systohc  系统时钟和硬件时钟同步:     时区的设置# tzselect或者如果不用tzselect命令,可以修改文件变更时区。# vi /etc/sysconfig/clock  ZONE=Asia/Shanghai(查/usr/share/zoneinfo下面的文件) UTC=false ARC=false# rm /etc/localtime# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime重新启动即可。   现在我们再来看系统时间和硬件时间是不是一样了?? # date ;hwclock   还要知道几个命令,比如 timeconfig 时间的东西还有好多,最好看一下 /etc/目录中的配置文件。
2010-02-06 13:58:45 cuixie2370 阅读数 3
  • S5PV210的时钟系统-1.6.ARM裸机第六部分

    本期课程主要讲述S5PV210的时钟系统,通过8节课的讲解和实战,希望大家能够彻底掌握S5PV210(以及类似复杂度的SoC)的时钟体系结构,理解MUX开关、DIV分频器、PLL倍频锁相工作电路等在时钟设置中的作用。

    7587 人正在学习 去看看 朱有鹏

[root@DELL-RAC01 root]# hwclock -r ; date
Fri 13 Jun 2008 02:48:57 PM CST -0.108559 seconds
Fri Jun 13 14:48:56 CST 2008
[root@DELL-RAC01 root]#

今天运行hwclock -r ; date 命令发现系统时钟和硬件时钟相差很多(上面的是已经同步的画面)。 后来咨询DELL硬件厂商,同步了相关时间。恢复正常。


Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,

而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。

Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

可以考虑在时间同步脚本里面加入如下命令来同步硬件时间与软件时钟:

hwclock --systohc (与系统时间同步)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-626985/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-626985/

没有更多推荐了,返回首页