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

关于校准 ARM 开发板时间的步骤和常见问题:我应该是RTC电池没电了才导致我设置了重启开发板又变回去2025年的时间

1、在控制台中输入以下命令,设置当前时间:

date -s "2025-07-21 19:05:00"

2、在控制台中输入以下命令,将当前时间写入硬件时钟:

hwclock -w

3、重启开发板,让系统读取硬件时钟中的时间:

reboot

4、在控制台中输入以下命令,查看当前时间是否正确:

date

如果时间正确,说明校准成功。如果时间不正确,可以重复以上步骤进行校准。


开发板重启后时间变回 2015 年,通常是以下几类原因导致,可按对应思路排查解决:

一、硬件层面

  1. RTC 电池没电或接触不良

    • 很多开发板依赖纽扣电池为 RTC(实时时钟)供电,若电池电量耗尽、松动或未安装,系统重启后无法从 RTC 获取正确时间,会回到默认初始值(常为 2015 等出厂测试时间)。
    • 解决:检查开发板 RTC 电池,重新安装 / 更换有电的纽扣电池(如 CR2032 型号),确保接触良好。
  2. RTC 硬件或驱动问题

    • 开发板 RTC 模块本身损坏,或 Linux 系统中 RTC 驱动未正确加载、配置,会导致无法正常读写硬件时钟。
    • 解决
      • 查看系统日志(dmesg 命令),搜索 “RTC” 相关关键词,确认驱动是否加载成功(如显示 rtc-x 设备注册成功)。
      • 若驱动有问题,重新编译内核时确保勾选对应 RTC 驱动(在 Device Drivers -> Real Time Clock 菜单);或联系开发板厂商获取正确驱动。

二、软件配置层面

  1. 系统未正确读取 RTC 时间

    • 部分嵌入式系统需手动配置时区、启用 RTC 同步,若未设置,系统可能优先用默认时间而非 RTC 时间。
    • 解决
      • 设置系统时区(以设置上海时区为例):

        bash

        # 创建/修改时区链接(不同系统路径可能不同,常见 /etc/localtime 或 /usr/share/zoneinfo)
        ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
        # 同步硬件时钟到系统(确保硬件时钟本身已校准)
        hwclock -s  
        
      • 检查 /etc/rc.local 等开机脚本,确认是否有覆盖时间的命令,若有需删除或修改。
  2. 文件系统为只读模式

    • 若开发板文件系统挂载为只读(如某些嵌入式系统为保护存储,默认只读),hwclock -w 可能无法将时间写入硬件时钟(因无法修改 RTC 设备节点或配置文件)。
    • 解决
      • 重新挂载文件系统为可读写:

        bash

        mount -o remount,rw /  
        
      • 执行 hwclock -w 后,再改回只读(可选,部分场景需保持只读):

        bash

        mount -o remount,ro /  
        

三、其他特殊情况

  1. 系统镜像或环境变量问题

    • 开发板使用的系统镜像本身有时间相关 Bug,或某些环境变量(如 TZ)被错误设置,影响时间显示。
    • 解决
      • 检查环境变量 TZecho $TZ,若异常(如为空或错误时区),重新设置:

        bash

        export TZ=Asia/Shanghai  
        
      • 尝试更换官方稳定版系统镜像,重新烧录验证。
  2. NTP 自动同步干扰(若开启)

    • 若系统开启了 NTP(网络时间同步)服务,但未正确联网,NTP 可能因同步失败将时间重置为错误值。
    • 解决
      • 关闭 NTP 服务(如 systemctl stop ntpd 或删除自动启动配置),手动校准时间后再测试;
      • 若需 NTP,确保开发板联网正常,且 NTP 服务器可访问(替换为国内服务器如 ntp.aliyun.com)。

按上述方向逐步排查,一般能定位到时间重置的根源。重点先检查 RTC 电池、驱动,再确认软件配置和文件系统挂载模式 。

http://www.dtcms.com/a/291178.html

相关文章:

  • Xilinx FPGA XCKU115‑2FLVA1517I AMD KintexUltraScale
  • 【Java EE】多线程-初阶-Thread 类及常见方法
  • Netty中CompositeByteBuf 的addComponents方法解析
  • PNP加速关断驱动电路
  • [数据结构]#4 用链表实现的栈结构
  • FastAPI 中,数据库模型(通常使用 SQLAlchemy 定义)和接口模型(使用 Pydantic 定义的 schemas)的差异
  • GraphRAG快速入门和原理理解
  • 在线教育如何设置视频问答/视频弹题?——重塑在线教育的互动体验
  • 元宇宙工厂漫游指南:VR可视化在设备巡检与远程运维中的沉浸式应用
  • Component cannot be used as a JSX component
  • 网络数据编码技术及其应用场景的全面解析
  • 基于Vue与CloudBase AI Toolkit的色觉识别Web应用开发报告:VibeCoding新范式实践
  • 基于dcmtk的dicom工具 第八章 echoSCU-dicom测试连接
  • 广东餐饮服务中级水平测试精选题库
  • 基于Python的多传感器融合的障碍物检测与避障演示
  • WPF 项目设置应用程序图标和设置程序集图标
  • 搭建种草商城框架指南
  • 修复WSL安装失败(错误: 0x80248014 )并安装K8S
  • 低空经济展 | 约克科技携小型化测试设备亮相2025深圳eVTOL展
  • Linux物理地址空间入门:从硬件到内核内存的基石
  • Javascript--事件
  • 耐达讯RS232转Ethercat网关:建筑驱动连接的“秘密武器”
  • 【系统全面】Socket编程——基础知识介绍
  • 2x2矩阵教程
  • AI赋能中医传承:智慧医疗新时代解决方案
  • 如何避免redis分布式锁失效
  • 搭建前端页面,介绍对应标签
  • 前端之学习后端java小白(一)之SDKMAN
  • Typecho目录树插件开发:从后端解析到前端渲染全流程
  • AI革命带来的便利