最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Linux IMX6ULL RTC掉电不保存问题解决|全球快报

来源:博客园


(相关资料图)

背景:公司临时派发的小任务,解决项目中RTC实时时钟的问题,在为解决这个问题之前,项目的实时时钟老是一断电重启就会出现出现恢复到一个固定的时间。琢磨了许久,终于解决了,特此记录一下,给读者如遇到相关问题提供一下思路拓展。

平台:imx6ull开发板加Linux系统。

解决步骤:

1.删除Linux系统的/etc/timestamp文件,timestamp文件记录着一个固定时间,当其记录的时间大于系统时间,如果RTC功能不正常将开发板断电重启就会恢复timestamp文件记录的时间值,这也是为什么RTC断电重启Linux系统的时间会恢复在一个时间值。(原因:查看/etc/init.d目录下的bootmisc.sh和save-rtc.sh这两个脚本文件的源码,这两个脚本的作用就是将系统时间记录在/etc/timestamp文件中)

2.执行第一步之后,使用date -s [日期格式]和hwclock -w命令,发现RTC命令还是不正常。第二步修改Linux内核RTC参数,在Linux内核源码处执行make menuconfig,取消 >Device Drivers > Real Time Clock 的 Set the RTC time based on NTP synchronization。保存配置重新编译内核,使用新的内核镜像启动Linux系统。(原因:具体原因不知道是啥,笔者认为这个NTP synchronization参数是网络时间同步协议,笔者的Linux系统不支持网络功能,防止这个选项参数干扰RTC实时时钟)

3. 上两个步骤还是不行的话,则需要考虑Linux系统RTC驱动设备不正常或者板子上的纽扣电池没电了。使用ls /dev/etc*命令查看一下Linux系统的RTC驱动设备是否正常挂载,如果正常挂载则换一个纽扣电池再次验证RTC实时时钟的功能,笔者换一个纽扣电池后,RTC实时时钟正常运行,断电之后还是保存时间再也不会恢复一个不正确的固定时间值。

关键词: