一,首先搞清楚RTC在kernel内的作用: 当系统启动时,内核通过读取RTC来初始化系统实际时间 如果没有RTC电路或者RTC电路没有电池,那么系统启动会从默认的时间开始,335xD是1970年1月1日0点开始计时 linux系统有两个时钟:实时时钟和系统定时器 1. RTC(实时时钟)或者叫CMOS时钟,硬件时钟 保存到变量xtime 2. System clock 也叫 内核时钟 或者 软件时钟 或者叫 系统定时器 保存到全局变量jiffies 内核在启动时从RTC中读取 给系统时间 xtime 初始化 内核在需要时将时间与日期回写到RTC中 二,相关命令 date命令 获取的是内核xtime时间,同样它设置的也是内核xtime时间 date 查看或设置系统时间时间 date -u 查看utc时间标准时间 date -R 查看系统是什么时区的时间 hwclock命令 -w 把系统时间更新至RTC -s 把RTC时间更新至系统 hwclock 查看硬件RTC时间 hwclock -w 将设置的系统时间保存到rtc上 三,时区问题 为了使世界上不同地方的系统能有一个统一的时间 linux中保存的时间都是世界标准时间 在linux的/etc/localtime文件 该文件就是时区文件, 例如上海时间,把 ubuntu 上的/usr/share/zoneinfo/Asia 中的文件 Shanghai 拷贝到开发板目录/etc 中并且改名为 localtime 那么时区是怎么影响实际时间的呢? 我说过linux保存的都是世界标准时间,我在8时区设置8点后,更换0时区文件,再查看时间变成0点,就是说 系统实际时间=系统保存的世界时间+时区差 几个常见的时区 CST:中国标准时间 东8时区 UTC:世界标准时间 GMT:格林尼治标准时间 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-4-20 16:58
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.