基础知识:1. date:linux中用于显示/修改系统命令的一个命令
2. Linux下的RTC驱动 实现完之后,一般是默认的一个普通的字符型设备,或者是一个misc设备,也可以是一个平台设备,如果insmod驱动后,对应的一般设备是/dev/rtc 或 /dev/rtc0 或 /dev/misc/rtc
在自己的机子上显示:
- ywx@ywx:~/Desktop$ ls /dev/rtc*
-
/dev/rtc /dev/rtc0
在busybox源码 src/libbb/rtc.c
- int FAST_FUNC rtc_xopen(const char **default_rtc, int flags)
-
{
-
int rtc;
-
-
if (!*default_rtc) {
-
*default_rtc = "/dev/rtc";
-
rtc = open(*default_rtc, flags);
-
if (rtc >= 0)
-
return rtc;
-
*default_rtc = "/dev/rtc0";
-
rtc = open(*default_rtc, flags);
-
if (rtc >= 0)
-
return rtc;
-
*default_rtc = "/dev/misc/rtc";
-
}
-
-
return xopen(*default_rtc, flags);
-
}
3.hwclock: hardware clock,硬件(RTC)时钟
查看命令格式:man hwclock
hwclock -r 显示硬件时钟,等价于不加参数的hwclock
hwclock -s 将“硬件时钟” 写到linux的“系统时钟”
hwclock -w 将linux 的“系统时钟”写到“硬件时钟”里
系统时钟、硬件时钟 区别
硬件时钟是指主板上的时钟设备,也就是通常在BIOS画面特定的时钟,对于嵌入式开发,就是其中的rtc模块
系统时钟则是指kernel中的时钟。当linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟就独立运作。
所有linux相关指令与函数都是读取系统时钟的设定。系统时钟的设定就是我们常用的date命令 。而我们写的RTC驱动就是为硬件时钟服务的,它有自己的命令hwclock 。
date命令操作linux的系统(软件)时钟。hwclock命令操作硬件时钟(RTC模块),如果我们要测试rtc驱动是否正常工作,只需要hwclock
用date和hwclock 命令测试rtc驱动是否正常
1.用date查看系统时钟
- ywx@ywx:~/desktop$ date
-
Mon Dec 12 13:49:25 CST 2011
2.如果系统时钟也不正常,修改系统时钟date命令
- 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"
- ywx@ywx:~/desktop$ sudo date -s 2012-12-12
-
[sudo] password for ywx:
-
Wed Dec 12 00:00:00 CST 2012
3.显示硬件时钟
注意:这里硬件时钟还是2011,我上面修改为了2012
- ywx@ywx:~/desktop$ sudo hwclock -r
-
[sudo] password for ywx:
-
Mon 12 Dec 2011 01:55:58 PM CST -0.236070 seconds
4.将系统时钟写入硬件时钟
这里就同步了
- ywx@ywx:~/desktop$ sudo hwclock -w
-
ywx@ywx:~/desktop$ sudo hwclock
-
Wed 12 Dec 2012 12:03:06 AM CST -0.239664 seconds
提示:
为了是系统时间和RTC时间同步,而不用等待linux系统启动后,要麻烦的,每次都写命令是系统时钟和硬件时钟同步
可以在初始化文件中添加 hwclock -s ,是每次开机时读取硬件RTC时间,并同步linux系统时间。
在/etc/init.d/rcS(旧版本的,应该在/etc/inittab)中添加
/bin/hwclock -s
在u10.10中在
- ywx@ywx:/etc/init.d$ ls /etc/init.d/rcS
-
/etc/init.d/rcS
资料:
阅读(1186) | 评论(0) | 转发(0) |