linux之修改时钟(rtc)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux下的时钟
=========================
第一部分:时间设置
=========================
我们一般使用“date -s”命令来修改系统时间(这里说的是系统时间,是linux由操作系统维护的)
将日期时间设置成2014年8月7日下午3点5分0秒可以用
#date -s "08/07/2014 15:05:00"
#date -s "2014-08-07 15:05:00"
这里的格式是"MM/DD/YYYY hh:mm:ss"
或者
#date 080715052014.00
这里的格式是MMDDhhmmYYYY.ss (月日时分年.秒)
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。
为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。
由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
如果要确保修改生效可以执行如下命令。
#hwclock -w
这个命令强制把系统时间写入CMOS,(等同于hwclock --systohc)
linux提供两类的rtc兼容性很高的用户空间系统调用接口,如下所示:
(1)/dev/rtc ... 这个RTC适合pc体系的系统,而并不适合非x86体系的系统
(2)/dev/rtc0,/dev/rtc1 ... 他们依赖一种架构,这种架构在所有的系统上被RTC 芯片广泛的支持。
程序员必须知道,PC/AT的功能不总是有效,其他的系统可能会有另外的实现。
这种情况下,如果在相同的系统结构上使用同样的RTC API,那么硬件会有不同的反应。
例如,不是每一个RTC都提供IRQ,所以这些不能处理报警中断;标准的PC系统RTC只能处理未来24小时以内的闹钟,而其他系统的RTC可能处理未来一个世纪的任何时间。
在文件系统修改将rtc0改成rtc1
Vi etc/udev/rules.d/local.conf
或者在启动开发板下
设置系统时间
date -s "2014-08-07 15:05:00"
设置rtc1时间
hwclock -w -f /dev/rtc1 写入Hwclock -r -f /dev/rtc1 读取。