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

RTC时钟测试

1. 基础知识

Linux 的系统时间有时跟硬件时间是不同步的。
Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。 Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

常用操作指令

  • 查询硬件时钟
hwclock --show
  • 硬件时钟与系统时钟同步
hwclock --hctosys(hc代表硬件时间,sys代表系统时间)或者clock --hctosys
  • 系统时钟和硬件时钟同步
 hwclock --systohc或者clock --systohc
  • 查询系统时间
 date

2. 设备时间同步配置

2.1 NTP时间同步

需依赖设备可上外网
配置文件:/etc/chrony.conf
在这里插入图片描述
时间同步原理:chrony.conf中配置NTP服务,chronyd将NTP时间同步到系统时间。

2.2 RTC时间同步

配置文件:/etc/chrony.conf

# 启用内核对实时时钟(RTC)的同步。
rtcsync

配置说明:配置上该项后,linux内核将每隔11分钟将系统时间同步到RTC时间

3. RTC时钟测试

3.1 rtcsync指令配置测试

测试目的:验证rtcsync配置是否有效
测试步骤:

  1. 设置不安装纽扣电池。
  2. chronyc sources -v查询系统时间同步状态正常。
  3. hwclock 查询硬件RTC时间。硬件RTC时间为2000年,RTC时间无效。
  4. 关闭/打开chrony.conf中的rtcsync配置。
  5. 重启设备,hwclock 查询硬件RTC时间是否有效。
    测试结论:
    当chrony.conf文件中配置上rtcsync时,设备上电后内核时间可以同步到RTC时间。

3.2 RTC时间测试

测试目的:验证有纽扣电池时,RTC时间是否能起作用。
测试前置条件:有无安装纽扣电池,硬件RTC时间是否有效。
操作步骤:

  1. chronyc sources -v查询系统时间同步状态正常。
    #*为系统时间同步成功
    在这里插入图片描述

#?为系统时间同步失败
在这里插入图片描述

  1. hwclock 查询硬件RTC时间。如RTC时间未同步,执行hwclock --systohc同步RTC时间。
  2. 关闭设备的系统时间同步功能。
    /etc/chrony.conf中加#屏蔽NTP server配置(设备无外网可不修改)
  3. reboot或断电重启设备
  4. 设备重启后,date查询系统时间,hwclock查询硬件时间。chronyc sources -v确认时间是否同步。

测试结论:

  • hwclock硬件RTC时间无效时,reboot重启设备,硬件时间无法保存,系统时间无法同步;
  • hwclock硬件RTC时间有效时,reboot重启设备,硬件时间可以保存,系统时间首先同步硬件RTC时间;
  • hwclock硬件RTC时间有效时,RTC电池没电,断电重启,硬件时间无法保存,系统时间无法同步;
  • hwclock硬件RTC时间有效时,RTC电池有电,断电重启,硬件时间可以保存,系统时间可以同步;

参考资料
chronyd的那些事

http://www.lryc.cn/news/427292.html

相关文章:

  • 大数据技术——实战项目:广告数仓(第六部分)报表数据导出至clickhouse
  • Android studio模拟制作-简易的订餐交易小案例
  • 消防隐患在线小程序的设计
  • 【Vue3】路由Params传参
  • 授权cleanmymac访问全部磁盘 Mac授权访问权限 cleanmymac缺少权限
  • Ubuntu/18.04 LTS下编译 BoringSSL 库
  • 【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)
  • xss靶场详解
  • 华为的流程管理
  • 操作系统Linux
  • 1、.Net UI框架:MAUI - .Net宣传系列文章
  • Spring boot 使用 jSerialComm 对串口使用发送信息并接收
  • 江协科技STM32学习笔记(第10章 SPI通信)
  • 力扣热题100_回溯_22_括号生成
  • 【k8s】ubuntu24.04 containerd 手动从1.7.15 换为1.7.20
  • Java二十三种设计模式-备忘录模式(19/23)
  • js一些杂乱理解
  • 机器学习 之 线性回归算法
  • ThreadLoad如何防止内存溢出
  • 2024.8.19 学习记录 —— 作业
  • Java 阿里云视频直播开发流程
  • SQLite 轻量级的嵌入式关系型数据库的替代软件
  • Flutter-自适用高度PageView
  • 群晖NAS本地搭建可远程交互的大型语言模型LLM聊天机器人
  • TypeScript 构建工具之 webpack
  • conda环境下在pycharm中调试scrapy项目
  • contenteditable=“true“的标签限制字数的时候修改光标位置
  • 51单片机-LED灯蜂鸣器数码管按键DS18B20温度传感器
  • 笔记本一线品牌有哪些
  • mysql聚合函数和分组