導航:首頁 > 操作系統 > linux硬體時鍾

linux硬體時鍾

發布時間:2022-12-10 14:24:05

『壹』 求助,剛開始學linux,怎麼把硬體時鍾心為24小時制

先用date命令設置成24小時。然後再同步就可以了。

『貳』 Linux系統下的NTP配置

第一步,選擇最好的NTP服務地址

具體命令為ntpdate -q IP地址或域名

廣東地區NTP優選結果如下:

①time4.cloud.tencent.com

②server time.asia.apple.com

③server cn.ntp.org.cn

④server ntp.aliyun.com

⑤server cn.pool.ntp.org

檢查BIOS主板時間的命令

hwclock -r

NTP服務啟停命令

sudo systemctl start/stop ntpd

檢查查看ntp伺服器有無和上層ntp連通

ntpstat

查看ntp伺服器與上層ntp的狀態

ntpq -pn

===server選項格式===

server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上層NTP伺服器的IP地址或域名,隨後所跟的參數解釋如下所示:

◆ key: 表示所有發往伺服器的報文包含有秘鑰加密的認證信息,n是32位的整數,表示秘鑰號。

◆ version: 表示發往上層伺服器的報文使用的版本號,n默認是3,可以是1或者2。

◆ prefer: 如果有多個server選項,具有該參數的伺服器優先使用。

◆ mode: 指定數據報文mode欄位的值。

◆ minpoll: 指定與查詢該伺服器的最小時間間隔為2的n次方秒,n默認為6,范圍為4-14。

◆ maxpoll:  指定與查詢該伺服器的最大時間間隔為2的n次方秒,n默認為10,范圍為4-14。

◆ iburst: 當初始同步請求時,採用突發方式接連發送8個報文,時間間隔為2秒。

===同步硬體時鍾===

ntp服務,默認只會同步系統時間。

如果想要讓ntp同時同步硬體時間,可以設置/etc/sysconfig/ntpd文件,

在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】這樣,就可以讓硬體時間與系統時間一起同步。

允許BIOS與系統時間同步,也可以通過hwclock -w 命令。

hwclock命令用來查詢和設置硬體時鍾。

hwclock -r 讀取並列印硬體時鍾

hwclock -s 將硬體時鍾同步到系統時鍾

hwclock -w  將系統時鍾同步到硬體時鍾

系統時鍾與硬體時鍾

在Linux中有硬體時鍾與系統時鍾等兩種時鍾。硬體時鍾是指主機板上的時鍾設備,也就是通常可在BIOS畫面設定的時鍾。系統時鍾則是指kernel中的時鍾。當Linux啟動時,系統時鍾會去讀取硬體時鍾的設定,之後系統時鍾即獨立運作。所有Linux相關指令與函數都是讀取系統時鍾的設定。

參考文檔:

Linux伺服器NTP客戶端配置——https://www.cnblogs.com/paul8339/p/10059364.html

NTP服務、客戶端配置詳解——https://blog.51cto.com/u_11392081/1784080

『叄』 linux的硬體時鍾

什麼是硬體時鍾?
    記錄在CMOS中的時鍾,和系統是沒有關系的。是靠紐扣電池來保存和計數的。硬體時鍾能記錄的信息有且僅有一個時間值(注意,和時區沒有一毛錢關系)。所以,當我們設置硬體時鍾的時候,僅僅是設置了一個數值。當我們讀取硬體時鍾的時候,也僅僅是一個數值。
    每次操作系統啟動的時候,都會讀取這個數值,然後同步到系統時鍾中。但是光讀取這個數值,對操作系統而言毫無意義(它不知道,你這個數值具體是哪個時區下的時間,自然就無法同步到系統時鍾)
    那麼怎麼知道硬體時鍾記錄的時間是哪個時區的呢(local or utc)?只能是人為指定了(系統啟動的時候,自己指定。我認為系統自己指定也是人為指定的一種吧),我們下面看下例子(一個讀,一個寫),看看怎麼解釋(網上很多解釋我覺的不靠譜)

這里哪裡能看出人為指定的時區是什麼呢?
預設的就是這個文件/etc/adjtime指定的(很多人說centos 6中是/etc/sysconfig/clock這個文件。不解釋了,忘記這個文件吧)
看下/etc/adjtime的內容:

這里是UTC,所以上面的讀寫含義分別是
    讀取出來的這個硬體時間是UTC的,直接同步到系統時間(我認為系統時間存的是UTC時間)。如果讀取出來的時間是LOCAL的,是不能直接同步系統時間的。先找到系統的時區文件/etc/localtime,根據當前時區計算出UTC時間,再同步到系統時間(還有一點,這里說一下, hwclock讀取的時候,最後都是以local時間顯示出來的,所以可能還有一層轉換)
    把"2015-08-14 16:45:05"這個時間直接寫入硬體時鍾,同時更新/etc/adjtime的內容(方便下一次讀的時候,找到正確的時區)

那怎麼覆蓋/etc/adjtime的內容呢?
    在讀寫的時候可以顯示指定,例如hwclock --local,hwclock --utc(如果不顯示指定,則使用/etc/adjtime的值)

『肆』 linux中的時間是哪個時區的

1、more /etc/sysconfig/clock
ZONE="Asia/Shanghai"
2、GMT + 8 = UTC + 8 = CST ,我們的linux系統時間和計算機硬體時間應該是cst時間,上海時區。
3、安裝CentOS/RHEL時候,應當取消」系統時鍾使用UTC時間」這個選項,如果忘了取消,系統時鍾會差8小時
#vi /etc/sysconfig/clock
把UTC=true 修改為 UTC=false,保存後重啟即可。
4、#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、系統時鍾
date -R
6、zmp – This utility prints the current time and date in the specified time zone. Example:
# zmp Japan
Japan Tue Feb 28 17:52:18 2017 JST
# zmp Iceland
Iceland Tue Feb 28 08:52:45 2017 GMT
zmp China
China Tue Feb 28 08:53:02 2017 China
7、CST/GMT/UTC/DST縮寫
CST China Standard Time UT+8:00
GMT 格林威治標准時間(Greenwich Mean Time,簡稱G.M.T.)
UTC 世界協調時間UTC比GMT來得更加精準
DST 夏日節約時間:所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),
RTC 硬體時鍾(Real Time Clock,簡稱RTC),相對應的系統時鍾(System Clock)。

『伍』 linux 嵌入式軟硬體時鍾 怎麼同步

置硬體時間,

開機時Linux會從硬體的rtc的時鍾晶元中獲取一次硬體時間,然後以此為基礎來運行系統時間。
settimeofday 相當於date shell命令,緊緊能設置系統時間。

如果想設置硬體時間,需要一個hwclock -w shell原理的函數來寫硬體的rtc。
扒一扒 busybox的 hwclock.c源碼(http://www.codeforge.cn/read/97203/hwclock.c__html)
可以知道這么抄寫功能源碼:

[cpp] view plain
static void write_rtc(time_t t, int utc)
{
int rtc;
struct tm tm;

if (( rtc = open ( "/dev/rtc", O_WRONLY )) < 0 )
{
if (( rtc = open ( "/dev/misc/rtc", O_WRONLY )) < 0 )
bb_perror_msg_and_die ( "Could not access RTC

『陸』 linux 怎麼設置硬體時鍾 UTC

一、首先要弄清幾個概念:
1. 「系統時間」與「硬體時間」
系統時間: 一般說來就是我們執行 date 命令看到的時間,linux系統下所有的時間調用(除了直接訪問硬體時間的命令)都是使用的這個時間。
硬體時間: 主板上BIOS中的時間,由主板電池供電來維持運行,系統開機時要讀取這個時間,並根據它來設定系統時間(注意:系統啟動時根據硬體時間設定系統時間的過程可能存在時區換算,這要視具體的系統及相關設置而定)。

2. 「UTC時間」與「本地時間」
UTC時間:Coordinated Universal 8 e2 i( H7 t0 ^/ ^Time 世界協調時間(又稱世界標准時間、世界統一時間),在一般精度要求下,它與GMT(Greenwich Mean Time,格林威治標准時間)是一樣的,其實也就是說 GMT≈UTC,但 UTC 是以原子鍾校準的,更精確。
本地時間:由於處在不同的時區,本地時間一般與UTC是不同的,換算方法就是

本地時間 = UTC + 時區 或 UTC = 本地時間 - 時區
時區東為正,西為負,例如在中國,本地時間都使用北京時間,在linux上顯示就是 CST(China Standard Time,中國標准時,注意美國的中部標准時Central Standard Time也縮寫為CST,與這里的CST不是一回事!),時區為東八區,也就是 +8 區,所以 CST=UTC+(+8小時) 或 UTC=CST-(+8小時)。
二、設置硬體時鍾 UTC
硬體時間 /sbin/hwclock
直接調用 /sbin/hwclock 顯示的時間就是 BIOS 中的時間嗎?未必!這要看 /etc/sysconfig/clock 中是否啟用了UTC,如果啟用了UTC(UTC=true),顯示的其實是經過時區換算的時間而不是BIOS中真正的時間,如果加上 --localtime 選項,則得到的總是 BIOS 中實際的時間.
[12-01 19:07> ~]# hwclock

2009年12月07日 星期一 14時28分43秒 -0.611463 seconds
[12-01 19:07> ~]# hwclock --utc
2009年12月07日 星期一 14時28分46秒 -0.594189 seconds
[12-01 19:07> ~]# hwclock --localtime
2009年12月07日 星期一 06時28分50秒 -0.063875 seconds
三、最後總結
1)/etc/sysconfig/clock 文件,只對 hwclock 命令有效,且只在系統啟動和關閉的時候才有用(修改了其中的 UTC=true 到 UTC=false 的前後,執行 hwclock (--utc, 或 --localtime) 都沒有變化,要重啟系統後才生效);

2)/etc/rc.d/rc.sysinit 文件,run once at boot time,其中有從硬體時鍾同步時間到系統時間的操作;
3)hwclock --localtime 的輸出,才是硬體時鍾真正的時間。如果輸出結果帶時區(比如CST),還要看/etc/sysconfig/clock里的UTC參數,如果 UTC=false,那時區有意義;如果 UTC=true,那時區沒意義,實際上是UTC時間。
4)在 /etc/sysconfig/clock 中 UTC=false 時,date、hwclock、hwclcok --localtime 輸出的時間應該都一致,且此時 hwclock --utc是沒有意義的;
5)在 /etc/sysconfig/clock 中 UTC=ture 時,date、hwclock 的輸出是一致的,hwclock --localtime 的輸出則是UTC時間;
6)如果不想在輸出中帶時區,則 export LANG=C ,然後再運行 hwclock 就沒有什麼CST了,免得時區誤導你;
7)hwclock --utc 容易理解出錯
8)系統關閉時會同步系統時間到硬體時鍾,系統啟動時會從硬體時鍾讀取時間更新到系統,這2個步驟都要根據 /etc/sysconfig/clock 文件中UTC的參數來設置時區轉換。

『柒』 Linux 時間同步

在Linux系統中存在兩個時鍾時間,分別是

硬體時鍾是指的在主板上的時鍾設備,也就是通常可以在BIOS畫面設置的時鍾,即使關機狀態也可以計算時間。

而系統時鍾則是指Kernel中的時鍾,其值是由1970年1月1日00:00:00 UTC時間至當前時間所經歷的秒數總和。當Linux啟動的時候,系統時鍾會讀取硬體時鍾的設定,之後系統時鍾獨立運作。長時間運行兩者可能將會產生誤差。另外所有的Linux相關指令都是讀取系統時鍾指定的,如date。

我們這里討論的是系統時間。

NTP,網路時間協議,使用 123/udp 埠進行網路時鍾同步;NTP 是仍在使用中的最古老的網路傳輸協議之一(1985 年前開始)。

以前Linux時間同步基本是使用 ntpdate 和 ntpd 這兩個工具實現的,但是這兩個工具已經很古老了。

【注】ntpdate和ntpd是互斥的,兩者不能同時使用。ntpd是步進式平滑的逐漸調整時間,而ntpdate是斷點式更新時間。

RHEL/CentOS 7.x 已經將 chrony 作為默認時間同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服務。

chrony 是 RedHat 開發的,它是網路時間協議(NTP)的另一種實現;

RHEL/CentOS 7.x 的默認時間同步工具;

chrony 可以同時做為 ntp 服務的客戶端和服務端;安裝完後有兩個程序 chronyd、chronyc:

chronyd 是一個 daemon 守護進程,chronyc 是用來監控 chronyd 性能和配置參數的命令行工具。

系統版本:CentOS 7.5

chrony_server(relay):10.0.0.4
chrony_client:10.0.0.5

Edit file /etc/chrony.conf

默認已經啟動,不需要調整

example:

配置 chrony

edit file: /etc/chrony.conf

再次用chronyc 命令檢查,比較它與chronyd server的差異

systemd-timesyncd 是一個用於跨網路同步系統時鍾的守護服務。它實現了一個 SNTP 客戶端,但更輕量級,更集成systemd。

systemd-timesyncd 啟動時會讀取 /etc/systemd/timesyncd.conf 配置文件,內容如下:

你可以輸入你希望使用的其它時間伺服器,比如你自己的本地 NTP 伺服器,在 NTP= 行上輸入一個以空格分隔的伺服器列表。

如果伺服器可以直接連接internet,不用修改默認配置;如果在內網,需要單獨指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老舊的 ntpdate。默認情況下,timedatectl 在系統啟動的時候會立刻同步時間,並在稍後網路連接激活後通過 socket 再次檢查一次。

timesyncd 替代了 ntpd 的客戶端的部分。默認情況下 timesyncd 會定期檢測並同步時間。它還會在本地存儲更新的時間,以便在系統重啟時做時間單步調整。

通過 timedatectl 和 timesyncd 設置的當前時間狀態和時間配置,可以使用 timedatectl status 命令來進行確認。

由於 timedatectl 的存在,各發行版已經棄用了 ntpdate,默認不再進行安裝。

timedatectl
timedatectl status ,查看時間同步狀態;
timedatectl set-ntp true ,開啟網路時間同步;

timedatectl set-timezone ZONE ,設置時區。

NTP synchronized: yes 表示時間是同步狀態。

查看服務狀態以及從哪個ntp server同步時間。

NTP:軟體層面實現,成本低。同步精度10ms左右。

PTP:需要網路介面具備在物理層提供時間戳的功能,同步精度優於100ns,區域網的節點需要使用支持PTP功能的交換機。區域網網路接點不支持PTP的話,只能同不到us,而且受網路背景流量影響。

『捌』 linux設置系統時區命令

『玖』 有沒有辦法可以獲取linux開發板的硬體定時器頻率

有的。
具體步驟:
1、默認情況下系統節拍率選擇100Hz。
2、設置好後在Linux內核源碼根目錄下的config文件中可見系統節拍率被設置為100Hz。
3、Linux內核會使用CONFIGHZ來設置自己的系統時鍾,文件includeasmgenericparamh。
Linux內核使用全局變數jiffies來記錄系統從啟動以來的系統節拍數,系統啟動的時候會將jiffies。

閱讀全文

與linux硬體時鍾相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:958
phpffmpeg轉碼 瀏覽:669
長沙好玩的解壓項目 瀏覽:141
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163