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相同,也是通过比较决定是否设定。标签:systemd,git,RTC,ntp,设定,时间,Linux,timesync,自带 From: https://www.cnblogs.com/aodong/p/16935128.html