嵌入式Linux系統時間設置

原文鏈接:https://blog.csdn.net/qq_38892883/article/details/81700107

Linux系統的很多功能都需要讀取時間爲基礎。比如:日誌系統需要時間戳以記錄log,爲後期的問題排查提供支撐;cron服務需要正確的時間設置以支撐週期性、特定時間點執行某個任務;等等。大多數Linux桌面系統都提供了豐富、友好的時間設置接口,很方便用戶進行時間設置,但是在定製化、特殊性很強的嵌入式設備中,時間的設置有時不是那麼容易。本文全面剖析linux-arm嵌入式設備的時間設置細節。

硬件時間和系統時間

  • 硬件時間 
    硬件時間又稱爲RTC、CMOS時鐘,它由主板電池供電,獨立於系統運行,當系統關機、斷電時依然維護時間,爲系統提供時間基準。
  • 系統時間 
    系統時間又稱爲內核時鐘、軟件時鐘。在系統啓動階段它從硬件時間獲得,之後通過timer定時中斷的機制獨立維護。linux應用、服務均是基於系統時間,而不是硬件時間。

hwclock和date命令

hwclock爲硬件時間操作命令,date爲系統時間操作命令。 
hwclock、date分別顯示硬件時間和系統時間。 
這裏寫圖片描述

可以通過date -s設置系統時間。 
hwclock -s用於將硬件時間同步給系統時間。 
這裏寫圖片描述

hwclock -w用於將系統時間同步給硬件時間。 
這裏寫圖片描述

Linux rtc驅動

硬件時間的必備條件是需要確保linux內核中Real Time Clock被選中。 
這裏寫圖片描述

rtc加載成功之後在/dev目錄中產生相應節點。 
這裏寫圖片描述

網絡時間同步

對於具有互聯網接入能力的嵌入式設備,系統時間可以從網絡時間服務器進行同步,需要ntpdate命令的支持。

下載ntp源碼包

下載地址:http://download.csdn.net/detail/messidona11/9734990

解壓

tar xvzf ntp-4.2.4p7.tar.gz

配置ntp源碼

./configure –prefix=$PWD/install –exec-prefix=$PWD/install –host=arm-linux CC=arm-none-linux-gnueabi-gcc 
注意:需要將arm-none-linux-gnueabi-gcc改爲你自己的gcc交叉編譯器名稱

編譯

執行make&make install命令後,如果不報錯則在_install目錄中產生bin、lib、man三個文件夾,其中bin目錄中的ntpdate爲我們需要的命令。 
這裏寫圖片描述

將ntpdate拷貝到linux-arm設備的環境變量中,使用chmod u+x ntpdate給予執行權限。

通過ntpdate獲取網絡時間

這裏寫圖片描述

時區配置方法

  • UTC時間 
    Coordinated Universal Time 世界協調時間,又稱世界標準時間、世界統一時間。
  • 本地時間 
    本地時間=UTC + /- 時區
  • 時區設置方法之一: 
    設置環境變量TZ (或者在etc目錄下添加文件TZ,內容寫爲CTS-8
    export TZ=CST-8 
    date -u顯示UTC時間,date命令顯示本地時間,本地時間爲UTC時間根據時區換算得來。 
    這裏寫圖片描述 
    從上圖可以看出本地時間比UTC時間早8小時,CST-8爲東八區。 
    BTW:可以將時間同步命令加入到crontab中週期性從時間服務器同步。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章