1. 程式人生 > 其它 >Linux系統時間的設定以及自帶的timesync時間同步

Linux系統時間的設定以及自帶的timesync時間同步

 1.三個階段的系統時間設定

1.1 核心啟動階段

     這裡是在menuconfig檔案配置RTC設定系統時間選項。

     CONFIG_RTC_HCTOSYS_DEVICE="rtc1",或者直接在deconfig中新增選項。      沒選就不會設定,我猜預設1970-XX-XXX。(因為很久以前看的,沒有筆記習慣,所以具體邏輯忘記了)   1.2 systemd啟動     systemd版本應該是250。     預設的情況下,在編譯systemd的時候會記錄一個編譯時間。    沒有特別設定而且是git下來的情況應該是git log中的最近的一次提交記錄。    如果不是git 的,使用的是NEW檔案的修改時間。    參照:meson.build(systemd的Build檔案)        上面記錄的時間 > RTC的時間  就會重新設定系統時間。    上面記錄的時間 < RTC的時間  保持不變(具體還會判斷一下可以超過太多也是不行的)。     參照:src/shared/clock-util.c(int clock_apply_epoch(ClockChangeDirection *ret_attempted_change))    
  1.3 timesyncd啟動    這裡需要啟用ntp服務。    timedatectl set-ntp true    沒啟用ntp時,是不會設定系統時間的。    設定系統時間的邏輯和systemd相同,也是通過比較決定是否設定。