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」の設定は無効化してあります。
どのようにしたらよいでしょうか。ご回答の程よろしくお願いいたします。
コメント
shun
お世話になっております。
> 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
at_akihito.irie
2023年5月24日 10時18分
入江です。
原因究明のため、以下の情報をいただけますか?
1. 作成されたrtc-sync.serviceのユニットファイル
2. ユニットファイルから実行されるシェルスクリプト
3. hwclockがNTPサーバーと同期していなかった場合に、hwclockが指す時刻
1.と2.については可能な範囲での公開で問題ありませんので、よろしくお願いいたします。