首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导时从RTC同步系统时钟

引导时从RTC同步系统时钟
EN

Ask Ubuntu用户
提问于 2021-01-05 22:34:57
回答 1查看 2.9K关注 0票数 2

伙计们!

我有一台单板计算机(HardKernel Odroid C2),它没有内置的RTC,在每次系统启动时都需要一个外部的时间源。虽然我有一个本地的NTP服务器,我也需要RTC,以防发生罕见的电源故障,这将迫使NTP服务器重新启动并释放其时间。由于时间对于系统的运行至关重要,所以我使用PCF8563 I2C RTC构建了RTC。问题是,它需要特殊的内核模块才能使系统可用,RTC和我必须在引导过程中加载这些模块。因此,系统从不正确的时间开始,加载所需的模块,然后在/etc/rc.local的帮助下从RTC设置系统时间:

代码语言:javascript
复制
#Set system datetime from RTC
logger "Starting system clock synchronization with RTC"
if [ -e /dev/rtc ]; then
    /sbin/hwclock --hctosys
fi
logger "System clock synchronized to RTC"

问题在于,systemd似乎将早期引导进程和时钟设置之间的时间看作是“不正确”地编写没有日志的过程。在系统崩溃和系统时钟设置之后,我看不到任何日志:

代码语言:javascript
复制
Jan  5 23:20:39 tank systemd-journald[206]: Journal stopped
Jan  5 23:20:55 tank root[394]: System clock synchronized to RTC <- this is the second logger message
Jan  5 23:20:55 tank systemd[1]: Started /etc/rc.local Compatibility.
...
Jan  5 23:21:07 tank chronyd[384]: Forward time jump detected!

通过从/etc/rc.local运行hwhlock --hctosys从RTC同步系统时钟是HardKernel建议的方法。但这似乎是完全错误的,因为在运行rc.local之前,系统显然会在预定义的时间内工作一段时间。那么,是否有任何方法可以从RTC早期设置系统时钟呢?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-01-09 10:52:49

我花了两天时间终于找到了确切的解决方案。问题是rc.local是在系统启动后执行到后期的。这就导致了以下几个问题: 1)部分(包括有价值的内核和早期系统启动)或所有日志从时间跳转到时间跳转,这使得日志在新日期之前丢弃所有日志;如果在系统记录器启动后(在我的示例中是system或syslog-ng ),系统时钟将被更新,那么在最后一次关闭之后,将根本没有日志。虽然系统仍在运行,但这是一个重大的失败,因为无法对运行中的系统进行任何调查。经过一些没有日志的累人的实验之后,我发现这种组合(实际上非常明显)可以在尽可能多的年时间内设置系统时钟:

/lib/systemd/system/hwrtc.service

代码语言:javascript
复制
[Unit]
Description=Synchronise System clock to hardware RTC
DefaultDependencies=no
After=systemd-modules-load.service
Before=systemd-journald.service time-sync.target sysinit.target shutdown.target
Conflicts=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/hwclock --hctosys --utc --noadjfile
RestrictRealtime=yes

[Install]
WantedBy=sysinit.target

并启用此服务。这将使系统在加载强制模块之后和日志启动之前立即启动hwclock,因此所有日志都将标记为从RTC恢复的实际时间,保存所有消息,包括第一个内核消息。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1305345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档