当前位置: 首页 > ops >正文

关于如何同步开发板的时间和现在一样:

重启后开发板时间再次回到 2015 年,说明硬件时钟(RTC)未正确保存时间系统未从 RTC 读取时间,问题可能出在以下几个方面,按步骤排查修复即可:

一、确认硬件时钟(RTC)是否正常工作

  1. 查看当前硬件时钟时间
    输入命令 hwclock 或 hwclock --show,观察输出:
    • 如果显示的时间也是 2015年1月1日,说明之前的 hwclock -w 命令未成功将系统时间写入 RTC,或 RTC 硬件故障(如无电池、电池没电)。
    • 如果显示的是你之前设置的正确时间(2025-07-19 17:36),则问题是系统开机时未从 RTC 读取时间。

二、针对性解决:

情况 1:硬件时钟(RTC)未保存时间(hwclock 显示错误)
  • 重新写入 RTC 并验证

    1. 先重新设置系统时间:

      bash

      date -s "2025-07-19 17:36:00"  # 设置正确系统时间
      
    2. 强制写入硬件时钟(加 -f 指定 RTC 设备,部分开发板需要):

      bash

      hwclock -w -f /dev/rtc0  # 多数开发板RTC设备为/dev/rtc0,若不存在可尝试/dev/rtc
      
    3. 立即查看 RTC 是否保存成功:

      bash

      hwclock -f /dev/rtc0  # 若显示2025-07-19 17:36,则写入成功
      
  • 检查 RTC 硬件(如电池)
    如果多次写入后,hwclock 仍显示错误时间,可能是开发板的 RTC 备用电池没电或接触不良,需要物理检查硬件(部分开发板需要外接纽扣电池维持 RTC 供电)。

情况 2:RTC 时间正确,但系统开机不读取(hwclock 显示正确,date 错误)

系统默认可能未配置 “开机时从 RTC 同步时间”,需要手动添加启动脚本:

  1. 编辑系统启动初始化文件(不同开发板路径可能不同,常见路径如下):

    bash

    vi /etc/init.d/rcS  # 或 /etc/rc.local、/etc/profile
    
  2. 在文件末尾添加以下命令(同步 RTC 时间到系统时间):

    bash

    hwclock -s -f /dev/rtc0  # -s 表示从RTC读取时间到系统
    
  3. 保存文件并重启开发板,验证时间是否正确:

    bash

    reboot  # 重启后输入 date 查看是否为正确时间
    

三、终极解决方案:若 RTC 硬件故障,用脚本强制同步(临时替代)

如果 RTC 彻底无法使用,可通过开机脚本强制设置时间(适合临时调试,断电后仍会丢失):

  1. 编辑启动文件(如 /etc/init.d/rcS),添加:

    bash

    # 每次开机强制设置为固定时间(需定期更新脚本)
    date -s "2025-07-19 17:36:00"
    
  2. 保存后重启,时间会被强制设置为脚本中的值。

按以上步骤操作后,重启开发板再次输入 date,即可确认时间是否保持正确。核心是确保 “RTC 能保存时间” 且 “系统开机时读取 RTC”。


目前的状态是:硬件时钟(RTC)时间正确,但系统时区仍为 UTC(导致显示时间与北京时间相差 8 小时)。具体表现为:

  • hwclock -f /dev/rtc0 显示正确时间(2025-07-19 17:43),说明 RTC 保存正常;
  • date 显示时区为 UTC,而我们需要的是 CST(中国标准时间,UTC+8)。

解决时区问题的关键步骤(确保永久生效):

1. 手动创建 / 替换时区配置文件

如果 /usr/share/zoneinfo/Asia/Shanghai 存在:

bash

# 强制将时区设置为上海(覆盖原有时区配置)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

如果上述文件不存在(部分精简系统可能缺少),直接写入时区环境变量到启动脚本:

bash

# 编辑启动文件(确保开机时加载时区)
echo 'export TZ="Asia/Shanghai"' >> /etc/profile
# 立即生效当前终端的时区
source /etc/profile
2. 验证时区是否生效

执行 date 命令,若输出包含 CST 则成功:

bash

date
# 正确结果示例:Sat Jul 19 17:43:13 CST 2025 (时区从UTC变为CST)
3. 重启后再次确认

重启开发板:

bash

reboot

http://www.xdnf.cn/news/15759.html

相关文章:

  • 地图定位与导航
  • Verilog *2* SPI-立创逻辑派G1测试-1
  • 数据结构:字符串(Strings)
  • IIS部署 .net项目
  • 面试150 课程表Ⅱ
  • Redisson RLocalCachedMap 核心参数详解
  • 从“数字土著”到“数据公民”:K-12数据伦理课程的设计、实施与成效追踪研究
  • Java 大视界 -- 基于 Java 的大数据实时流处理在智能制造生产过程质量实时监控与异常诊断中的应用(352)
  • Gitee 提交信息的规范
  • lvs笔记
  • 教育科技内容平台的用户定位与产品方案:从需求到解决方案的精准匹配
  • Keepalived 监听服务切换与运维指南
  • 基于LSTM的时间序列到时间序列的回归模拟
  • AspectJ 表达式中常见符号说明
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现动物分类(C#源码,UI界面版)
  • 张 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导;
  • 微服务学习(六)之分布式事务
  • 商业秘密的法律属性与保护路径探析
  • LeetCode 322. 零钱兑换 LeetCode 279.完全平方数 LeetCode 139.单词拆分 多重背包基础 56. 携带矿石资源
  • 【Docker基础】深入解析Docker-compose核心配置:Services服务配置详解
  • 【学习记录】智能客服小桃(进度更新ing)
  • Elastic Search 8.x 分片和常见性能优化
  • UniApp 自定义导航栏:解决安全区域适配问题的完整实践
  • 当OT遇见IT:Apache IoTDB如何用“时序空间一体化“破解工业物联网数据孤岛困局
  • 【黄山派-SF32LB52】—硬件原理图学习笔记
  • NLP中情感分析与观念分析、价值判断、意图识别的区别与联系,以及四者在实际应用中的协同
  • 疯狂星期四文案网第12天运营日报
  • 最少标记点问题:贪心算法解析
  • RabbitMQ面试精讲 Day 3:Exchange类型与路由策略详解
  • Astro:前端性能革命!从原生 HTML 到 Astro + React 的升级指南