Armadilloフォーラム

Armadillo-640 起動時の時刻設定について

shun

2023年5月23日 16時00分

お世話になっております。

Armadillo起動時にNTPサーバーが起動していることを確認し、
起動していれば本体時刻(date)→RTC(hwclock)
起動していなければRTC(hwclock)→本体時刻(date)になるようなユニットファイルrtc-sync.serviceを作成し、

systemctl enable rtc-sync.service

で初期起動時にそのサービスを実行するようにしたのですが、hwclockがNTPサーバーと同期していませんでした。

rtc-sync.serviceが起動時に実行されていることはsyslogにて確認済みで、
rtc-sync.serviceで実行するシェルスクリプトを起動後に手動で実行したらRTC同期は成功しました。

「Armadillo-640 製品マニュアル (buster) 対応」P.72 6.6 RTC に記載されている「systemd-timesyncd.service」の設定は無効化してあります。

どのようにしたらよいでしょうか。ご回答の程よろしくお願いいたします。

コメント

at_akihito.irie

2023年5月24日 10時18分

入江です。

原因究明のため、以下の情報をいただけますか?

1. 作成されたrtc-sync.serviceのユニットファイル
2. ユニットファイルから実行されるシェルスクリプト
3. hwclockがNTPサーバーと同期していなかった場合に、hwclockが指す時刻

1.と2.については可能な範囲での公開で問題ありませんので、よろしくお願いいたします。

shun

2023年5月24日 11時01分

お世話になっております。

> 1. 作成されたrtc-sync.serviceのユニットファイル

[Unit]
Description=Sync RTC with System Clock
 
[Service]
ExecStart=/home/[省略]/RTCSync.sh
 
[Install]
WantedBy=default.target

> 2. ユニットファイルから実行されるシェルスクリプト

#!/bin/bash
 
# NTPserver active
if systemctl is-active --quiet ntp.service; then
	echo "ntp.service is active."
	hwclock --systohc
# NTPserver inactive
else
	echo "ntp.service is not active."
	hwclock --hctosys
fi

> 3. hwclockがNTPサーバーと同期していなかった場合に、hwclockが指す時刻
以下条件

root@armadillo:~# hwclock
2022-05-22 21:00:03.508708+09:00
root@armadillo:~# date
Wed May 24 09:13:28 JST 2023

【Reboot時】

root@armadillo:~# hwclock
2022-05-22 21:01:45.128690+09:00
root@armadillo:~# date
Wed May 24 09:15:02 JST 2023

【AC電源抜き挿し時】

root@armadillo:~# hwclock
2019-02-14 19:12:43.851231+09:00
root@armadillo:~# date
Thu Feb 14 19:12:31 JST 2019

このようにReboot時でも電源入切でもNTPサーバーの時間を反映できておりません。
また、電源の入切(停電時想定)だと2019年とhwclockも初期化(?)されてしまっております。

/var/log/syslog

Feb 14 19:12:07 armadillo systemd[1]: Started Sync RTC with System Clock.
Feb 14 19:12:08 armadillo RTCSync.sh[229]: ntp.service is active.
Feb 14 19:12:12 armadillo systemd[1]: rtc-sync.service: Succeeded.

ログを見る限り実行されている様です。

お忙しいところ恐縮ですが、ご回答の程よろしくお願いいたします。

shun

2023年5月24日 17時52分

お世話になっております。

WLAN/RTCオプションモジュール用 DTB (Device Tree Blob)を書き換えたら問題なく動作しました。

ご対応ありがとうございました。