带有 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)。
我可以通过 i2cdetect 和 hwclock 命令与 RTC 芯片通信,但我有一个奇怪的行为。
这是我的测试 - 当然我断开了网络以避免 ntp 同步:
没有 RTC:每次开机时,board/OS 都会从 2016 年 11 月 3 日开始重置日期和时间 00:00
使用实时时钟:
- 已通过 Internet 连接同步 date/time
- 强制使用
hwclock -f /dev/rtc1 --systohc
设置的 RTC 值
- 检查值 'hwclock -f /dev/rtc1 --get'
- 断开网络连接并关闭电路板 - 假设在 18:00
- 在 18:15
给电路板通电
- 桌面准备就绪后,我看到系统时间设置为 18:00 (?)
- 如果我通过
hwclock -f /dev/rtc1 --get
读取 RTC 并且我有 18:15
- 数据正确设置为今天 (!)
好像恢复了系统日期,掉电时系统时间卡住了,RTC时间是正确的,但是没有恢复到系统时间
有什么想法吗?
你说 /dev/rtc 是 link 到 /dev/rtc0,这意味着你的内核配置 CONFIG_RTC_HCTOSYS_DEVICE
设置为 rtc0。您可以将其设置为 rtc1 或更新您的设备树别名,以便 DS3231 成为 rtc0。
另一个解决方案是停止依赖内核 hctosys 并在启动脚本中使用 hwclock -f /dev/rtc1 --hctosys
。
我正在开发 ASUS TinkerBoard,OS Linaro 9.5 - 内核 4.4.132
我加了一点基于DS3231芯片的RTC板。
系统创建设备 /dev/rtc1 添加到 /dev/rtc0 和 /dev/rtc(link 到 /dev/rtc0)。
我可以通过 i2cdetect 和 hwclock 命令与 RTC 芯片通信,但我有一个奇怪的行为。
这是我的测试 - 当然我断开了网络以避免 ntp 同步:
没有 RTC:每次开机时,board/OS 都会从 2016 年 11 月 3 日开始重置日期和时间 00:00
使用实时时钟:
- 已通过 Internet 连接同步 date/time
- 强制使用
hwclock -f /dev/rtc1 --systohc
设置的 RTC 值
- 检查值 'hwclock -f /dev/rtc1 --get'
- 断开网络连接并关闭电路板 - 假设在 18:00
- 在 18:15 给电路板通电
- 桌面准备就绪后,我看到系统时间设置为 18:00 (?)
- 如果我通过
hwclock -f /dev/rtc1 --get
读取 RTC 并且我有 18:15 - 数据正确设置为今天 (!)
好像恢复了系统日期,掉电时系统时间卡住了,RTC时间是正确的,但是没有恢复到系统时间
有什么想法吗?
你说 /dev/rtc 是 link 到 /dev/rtc0,这意味着你的内核配置 CONFIG_RTC_HCTOSYS_DEVICE
设置为 rtc0。您可以将其设置为 rtc1 或更新您的设备树别名,以便 DS3231 成为 rtc0。
另一个解决方案是停止依赖内核 hctosys 并在启动脚本中使用 hwclock -f /dev/rtc1 --hctosys
。