嵌入式Linux 硬件時間-系統時間-時區設置

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、將日期設置爲2020076[root@linux-node ~]# date -s 07/06/20

2、將時間設置爲100700[root@linux-node ~]# date -s 10:07:00

3、將時間設置爲2020070610: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選項。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章