姓名:謝恩龍? ? ? ?學(xué)號:19020100029? ?學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:https://blog.csdn.net/u013007470/article/details/71812879
【嵌牛導(dǎo)讀】嵌入式Linux系統(tǒng)時間設(shè)置
【嵌牛鼻子】嵌入式Linux?
【嵌牛提問】怎么設(shè)置嵌入式linux系統(tǒng)的時間谜洽?
【嵌牛正文】
Linux系統(tǒng)的很多功能都需要讀取時間為基礎(chǔ)褥琐。比如:日志系統(tǒng)需要時間戳以記錄log晤郑,為后期的問題排查提供支撐贸宏;cron服務(wù)需要正確的時間設(shè)置以支撐周期性、特定時間點執(zhí)行某個任務(wù)诫龙;等等签赃。大多數(shù)Linux桌面系統(tǒng)都提供了豐富、友好的時間設(shè)置接口锦聊,很方便用戶進行時間設(shè)置,但是在定制化尺上、特殊性很強的嵌入式設(shè)備中怎抛,時間的設(shè)置有時不是那么容易芽淡。本文全面剖析linux-arm嵌入式設(shè)備的時間設(shè)置細(xì)節(jié)吐绵。
硬件時間
硬件時間又稱為RTC、CMOS時鐘唉窃,它由主板電池供電纹份,獨立于系統(tǒng)運行廷痘,當(dāng)系統(tǒng)關(guān)機、斷電時依然維護時間元暴,為系統(tǒng)提供時間基準(zhǔn)茉盏。
系統(tǒng)時間
系統(tǒng)時間又稱為內(nèi)核時鐘枢冤、軟件時鐘淹真。在系統(tǒng)啟動階段它從硬件時間獲得,之后通過timer定時中斷的機制獨立維護巍糯。linux應(yīng)用啸驯、服務(wù)均是基于系統(tǒng)時間坯汤,而不是硬件時間惰聂。
hwclock為硬件時間操作命令咱筛,date為系統(tǒng)時間操作命令迅箩。
hwclock、date分別顯示硬件時間和系統(tǒng)時間拐揭。
可以通過date -s設(shè)置系統(tǒng)時間堂污。例如:
將系統(tǒng)日期設(shè)定成2009年11月3日的命令
date -s 11/03/2009
將系統(tǒng)時間設(shè)定成下午5點55分55秒的命令
date -s 17:55:55
hwclock -s用于將硬件時間同步給系統(tǒng)時間盟猖。
hwclock -w用于將系統(tǒng)時間同步給硬件時間式镐。
硬件時間的必備條件是需要確保linux內(nèi)核中Real Time Clock被選中娘汞。
rtc加載成功之后在/dev目錄中產(chǎn)生相應(yīng)節(jié)點你弦。
對于具有互聯(lián)網(wǎng)接入能力的嵌入式設(shè)備鳖目,系統(tǒng)時間可以從網(wǎng)絡(luò)時間服務(wù)器進行同步,需要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交叉編譯器名稱
編譯
執(zhí)行make&make install命令后,如果不報錯則在_install目錄中產(chǎn)生bin累提、lib斋陪、man三個文件夾,其中bin目錄中的ntpdate為我們需要的命令缔赠。
將ntpdate拷貝到linux-arm設(shè)備的環(huán)境變量中嗤堰,使用chmod u+x ntpdate給予執(zhí)行權(quán)限度宦。
通過ntpdate獲取網(wǎng)絡(luò)時間
UTC時間
Coordinated Universal Time 世界協(xié)調(diào)時間离唬,又稱世界標(biāo)準(zhǔn)時間划鸽、世界統(tǒng)一時間漾稀。
本地時間
本地時間=UTC + /- 時區(qū)
時間同步服務(wù)器
#ntpdate -u ntp.api.bz
2 Jun 06:21:27 ntpdate[4025]: adjust time server 17.253.84.253 offset 0.014991 sec
ntp常用服務(wù)器:
中國國家授時中心:210.72.145.44
NTP服務(wù)器(上海) :ntp.api.bz
美國: time.nist.gov
復(fù)旦: ntp.fudan.edu.cn
微軟公司授時主機(美國) :time.windows.com
北京郵電大學(xué) : s1a.time.edu.cn
清華大學(xué) : s1b.time.edu.cn
北京大學(xué) : s1c.time.edu.cn
臺警大授時中心(臺灣):asia.pool.ntp.org
時區(qū)設(shè)置方法之一:
設(shè)置環(huán)境變量TZ
export TZ=CST-8
date -u顯示UTC時間,date命令顯示本地時間尸折,本地時間為UTC時間根據(jù)時區(qū)換算得來实夹。
從上圖可以看出本地時間比UTC時間早8小時亮航,CST-8為東八區(qū)。
這種方法可以使用date +”%Z %z”來查看當(dāng)前時區(qū)
BTW:可以將時間同步命令加入到crontab中周期性從時間服務(wù)器同步匀们。
時區(qū)設(shè)置方法之二:
[root@db-server ~]# date -R
Mon, 12 Jan 2015 10:42:26 +0800
[root@db-server ~]# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
cp: overwrite `/etc/localtime’? y
[root@db-server ~]# date -R
Sun, 11 Jan 2015 18:42:49 -0800
[root@db-server ~]#
這種方法可以使用cat /etc/timezone來查看當(dāng)前時區(qū)
原文鏈接:https://blog.csdn.net/u013007470/article/details/71812879