我有一个嵌入式板(纳米派R5C)带有 RTC 电池连接器:
黑板上很明显哪一个是正的,哪一个是负的。此外,检查文档:
RTC 备份电流为 0.25μA TYP(VDD =3.0V,TA =25℃)。
连接器部件号:Molex 53398-0271
我已将 CR1616 电池以正确的极性连接到此插座上。
检查启动日志时,RTC 似乎正在初始化,但日期不正确(2017 年):
$ dmesg | grep rtc
[ 2.979031] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[ 2.979143] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[ 3.198765] rk808-rtc rk808-rtc: registered as rtc0
[ 3.199273] rk808-rtc rk808-rtc: setting system clock to 2017-08-04T09:00:03 UTC (1501837203)
[ 6.011447] rtc-hym8563 5-0051: rtc information is valid
[ 6.018302] rtc-hym8563 5-0051: registered as rtc1
Timedatectl 还报告不正确的 RTC 日期:
$ timedatectl status
Local time: Sun 2023-07-09 22:52:41 CEST
Universal time: Sun 2023-07-09 20:52:41 UTC
RTC time: Fri 2017-08-04 09:07:44
Time zone: Europe/**** (CEST, +0200)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
有时我看到“系统时钟同步”显示为“是”,但是切换电源后,RTC 会丢失其值并重置为 2017 年日期。
该 RTC 连接器上的电压为 2.96V。
我还可以检查和修复什么?
答案1
“系统时钟同步”意味着系统时钟(即“通用时间”输出线timedatectl status
)正在与某个外部时间源同步。它可能对 RTC 没有任何影响。
(在 PC 硬件上,“系统时钟同步”似乎意味着内核的“11 分钟模式”处于活动状态,导致 RTC 与系统时钟同步,但在 RTC 所在的硬件架构上,情况可能并非如此。可选,比如这个NanoPi。)
RTC 时钟是分离从系统时钟:您可能应该运行timedatectl set-local-rtc 0
或hwclock --systohc --utc
将系统时钟时间(作为 UTC)复制到 RTC。
答案2
(答案从问题中移走)
主要问题是系统使用的rtc0
默认 RTC 没有电池备份。我设法rtc
使用 udev 规则获得默认值,但是系统仍然工作得很奇怪:
# timedatectl
Local time: Mon 2023-07-10 00:04:13 CEST
Universal time: Sun 2023-07-09 22:04:13 UTC
RTC time: Mon 2023-07-10 07:37:16
Time zone: Europe/*** (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
如您所见,现在 RTC 正常(这是 rtc1),但本地时间仅与日期同步!所以看来本地时间是从 RTC 获取的日期(路由器中不允许访问互联网),但时间尚未设置!总是从 00:00 开始。我可以以某种方式从 rtc 启用时间同步吗?