by toradex 胡珊逢
1). 簡介
在 linux 系統中有兩個很重要的時鐘:硬體時鐘 hardware clock,又稱為 rtc、cmos 或者 bios 時鐘。這類時鐘需要使用外部電池供電,即使在系統關機其仍舊可以保持計時。第二種時鐘稱為系統時鐘 system clock,其由作業系統維護。當系統啟動時,從硬體時鐘讀取時間資訊,並將其應用於系統時鐘。
本文以toradex arm平台為例演示如何設定linux時間,toradex評估板都有乙個硬體 rtc st m41t0 通過 i2c 匯流排與計算機模組相連線。
2). 具體操作
toradex linux bsp 自 v2.1 版本開始使用systemd-timedated和timedatectl 命令,自 v2.4 使用sytemd-timesyncd 通過 ntp 網路同步時鐘。使用timedatectl 命令設定後會立即同步到硬體時鐘。也可以使用hwclock 命令來操作硬體時鐘。下面將介紹如何設定時間和時區。
使用timedatectl 命令獲取當前時間
# timedatectl
local time: mon 2014-05-26 11:29:40 utc
universal time: mon 2014-05-26 11:29:40 utc
rtc time: mon 2014-05-26 11:29:39
timezone: universal (utc, +0000)
ntp enabled: n/a
ntp synchronized: yes
rtc in local tz: no
dst active: n/a
預設情況下系統被設定為 utc-0 時區,針對中國地區需要更改配置,在聯網情況下執行下面命令
root@colibri-vf:~# opkg update
root@colibri-vf:~# opkg install tzdata-asia
root@colibri-vf:~# timedatectl set-timezone asia/shanghai
root@colibri-vf:~# timedatectl
local time: fri 2017-12-01 16:56:37 cst
universal time: fri 2017-12-01 08:56:37 utc
rtc time: fri 2017-12-01 08:56:37
time zone: asia/shanghai (cst, +0800)
network time on: yes
ntp synchronized: no
rtc in local tz: no
此時時區 time zone 以及被正確設定。
設定時間
root@colibri-vf:~# timedatectl set-time "2017-12-01 16:54:37"
root@colibri-vf:~# cat /etc/systemd/timesyncd.conf
[time]
ntp=0.cn.pool.ntp.org 1.cn.pool.ntp.org 2.cn.pool.ntp.org 3.cn.pool.ntp.org
配置完成會自動同步,ntp synchronized 顯示網路同步狀態
root@colibri-vf:~# timedatectl
local time: fri 2017-12-01 17:14:03 cst
universal time: fri 2017-12-01 09:14:03 utc
rtc time: fri 2017-12-01 09:14:04
time zone: asia/shanghai (cst, +0800)
network time on: yes
ntp synchronized: yes
rtc in local tz: no
對於不需要 ntp 同步,通過下面命令禁用
root@colibri-vf:~# timedatectl set-ntp false
使用 hwclock 也可以直接修改硬體時鐘
讀取當前硬體時鐘
root@colibri-vf:~# hwclock –r
將系統時鐘寫入到硬體時鐘
root@colibri-vf:~# hwclock –w
將硬體時鐘同步到系統時鐘
root@colibri-vf:~# hwclock –s
參考
linux 時間設定
date 顯示當前日期 date s 設定當前時間,只有root許可權才能設定,其他只能檢視。date s 20061010 設定成20061010,這樣會把具體時間設定成空00 00 00 date s 12 23 23 設定具體時間,不會對日期做更改 date s 12 12 23 2006 1...
linux設定時間
1.1.1 設 置系統日期和 date 起源網bnxb.com mm 代 表月份 dd 代 表日期 hh 代 表 24 小時制的小時 mi 代 表分鐘 bnxb.yyyy 代 表年 ss 代 表秒 例如,將 系統日期為 2008 年 01 月 31 日,下午 10 19 53 date 013122...
Linux 時間設定
目前 linux 系統上面有兩個時間,乙個是 linux 系統,另乙個則是 bios 時間。我們可以使用 date 這個指令來手動修正目前主機的時間,不過,date 這個指令僅修正 linux 時間而已。date s 2013 08 03 date s 14 15 00 date s 2013 08...