嵌入式Linux 硬件时间-系统时间-时区设置

简介: Linux系统时间分为两种:系统时间和硬件时间。系统时间为Linux内核时间,硬件时间一般为BOIS中的RTC时间。Linux内核在启动时,会尝试读取BIOS中的RTC时间,并以此为基准设置系统时间。内核启动之后,系统时间和硬件即为两个独立的时间,各自运行。

Linux系统时间分为两种:系统时间和硬件时间。系统时间为Linux内核时间,硬件时间一般为BOIS中的RTC时间。Linux内核在启动时,会尝试读取BIOS中的RTC时间,并以此为基准设置系统时间。内核启动之后,系统时间和硬件即为两个独立的时间,各自运行。


嵌入式Linux系统开发时,同样需要提供硬件来为系统提供时间基准,这个硬件一般就是RTC芯片,比如,rx8010。Linux关于时间的配置包括:系统时间设置、硬件时间设置、时区设置。


时区配置


tzselect命令用于设置系统的当前时区。在桌面系统上,比如,ubuntu或者Debian系统,系统支持完整的时区配置,可以使用tzselect按照命令提示一步一步进行配置,比如,设置Asia/China/Beijing时区


执行tzselect命令 --> 选择Asia --> 选择China -->选择Beijing Time-->Yes保存设置


最终,系统会将TZ='Asia/Shanghai'; export TZ配置到~/.profile文件。


嵌入式Linux系统,一般不会提供tzselect命令,那么时区的配置可以通过直接配置TZ环境变量设置系统时区的。同时,需要在/usr/share/zoneinfo目录下提供时区相关的配置文件,这里只配置了Asia的时区。


配置TZ环境变量
$ cat /etc/profile
TZ='Asia/Shanghai'; export TZ


/usr/shared/zoneinfo目录下必须包含时区信息
# /usr/share/zoneinfo$ ls
Asia  PRC


通过date命令可以查到当前的时区信息:


Tue Jul  7 10:00:02 CST 2020 #CST表示东八区


系统时间配置


系统的时间配置方式分为:手动配置和NTP同步,手动配置一般通过date命令直接设置系统时间,NTP方式通过NTP服务器配置本地的系统时间。


为了时间的精确性,建议使用NTP方式配置系统时间。


ntpdate 0.cn.pool.ntp.org


如果对于时间精确性要求不高,可以使用date命令直接设置系统时间,date支持的时间配置格式十分的灵活,下面举几个简单的例子,如果有兴趣可以通过man date查看更多的用法。


1、将日期设置为2020年07月6日
[root@linux-node ~]# date -s 07/06/20
2、将时间设置为10点07分00秒
[root@linux-node ~]# date -s 10:07:00
3、将时间设置为2020年07月06日 10:08
[root@linux-node ~]#  date -s "2020-07-07 10:08:00"


硬件时间配置


hwclock命令用于管理硬件时间,可以通过该命令完成硬件时间的设置,系统时间和硬件时间之后的转换等。


查看硬件时间
hwclock -r #查看当前硬件时间
Tue Jul  7 02:10:10 2020  0.000000 seconds


同步系统时间和硬件时间
hwclock -w -u 


注意:-w表示将系统时间同步到硬件时间,-u表示硬件时间以UTC时间为准。 系统启动时,会通过硬件同步系统时间,系统认为从硬件取到的UTC时间,之后再按照 本地时区,将UTC时间转换为本地时间,所以,为了使系统设置正确的时区时间,这里 必须加上 -u选项。


同步系统时间和硬件时间
hwclock -s -u


-s表示将硬件时间同步到系统时间,-u表示硬件时间为UTC时间,如果硬件时间以UTC时间保存,那 必须使用-u选项。

相关文章
|
7月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
385 24
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
165 18
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
668 25
|
11月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
603 15
|
12月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
528 13
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
809 2
|
Linux
Linux下如何查看硬件信息?
Linux下如何查看硬件信息?
1009 0