带有 RTC 板的 Tinkerboard 不更新系统时间

Tinkerboard with RTC board does not update the system time

我正在开发 ASUS TinkerBoard,OS Linaro 9.5 - 内核 4.4.132

我加了一点基于DS3231芯片的RTC板。
系统创建设备 /dev/rtc1 添加到 /dev/rtc0 和 /dev/rtc(link 到 /dev/rtc0)。
我可以通过 i2cdetecthwclock 命令与 RTC 芯片通信,但我有一个奇怪的行为。

这是我的测试 - 当然我断开了网络以避免 ntp 同步:

没有 RTC:每次开机时,board/OS 都会从 2016 年 11 月 3 日开始重置日期和时间 00:00

使用实时时钟:

好像恢复了系统日期,掉电时系统时间卡住了,RTC时间是正确的,但是没有恢复到系统时间

有什么想法吗?

你说 /dev/rtc 是 link 到 /dev/rtc0,这意味着你的内核配置 CONFIG_RTC_HCTOSYS_DEVICE 设置为 rtc0。您可以将其设置为 rtc1 或更新您的设备树别名,以便 DS3231 成为 rtc0。

另一个解决方案是停止依赖内核 hctosys 并在启动脚本中使用 hwclock -f /dev/rtc1 --hctosys