備注:
1)測試時一定要接電池,否則外部RTC斷電后無法工作導致測試失敗;
2)如果連接了網絡,系統會自動同步NTP時鐘,所以需要關閉自動同步時鐘。
關閉自動同步NTP時鐘方法:
先查看是否開啟同步,執行命令:
$ timedatectl
如下圖所示:
可以看到默認是打開的。
關閉時鐘同步,執行命令:
$ timedatectl set-ntp 0
$ timedatectl
如下圖所示:
由上圖,可以看到關閉了時鐘同步。
下面的測試中時間是隨意設置,僅是為了驗證功能正常;
測試思路:(記得接電池)
1)設置系統時鐘(外部RTC需要初始化時鐘,這里相當于給外部RTC的初始時鐘);
2)將設置的系統時鐘同步到硬件RTC;
3)關閉主板電源,等待一會兒(此時外部RTC繼續工作);
4)給主板上電,查看系統時鐘,查看外部RTC(主要是查看外部RTC是否正確);
5)將外部RTC同步到系統時鐘。
測試過程:
查看當前外部RTC時間,執行命令:
$ hwclock
如下圖所示:
查看當前系統時鐘,執行命令:
$ date
如下圖所示:
設置系統時鐘,執行命令(這條命令中的雙引號復制到調試串口終端中恒定被識別為中文符號,需要手動改為英文符號):
$ date -s “2019-11-6 21:50:00”
如下圖所示:
將系統時鐘同步到硬件RTC,執行命令:
$ hwclock -w
查看硬件RTC時鐘,如下圖所示:
關閉主板,等待一會;給主板上電,重新啟動,查看當前系統時鐘和硬件時鐘,如下圖所示:(可以看到硬件時鐘是上面設置的)
將硬件時鐘同步到系統時鐘,執行命令:
$ hwclock -s
設置完成后查看系統和硬件時鐘,如下圖所示:
硬件RTC測試完成。
硬件RTC測試完成后記得恢復NTP時鐘同步,執行命令:
$ timedatectl set-ntp 1