tecs.heta
2020年7月13日 10時51分
Armadillo-IOT G3(メモリ1G、3G非搭載、WLAN非搭載、バックアップ電池なし)を使用しています。
LANケーブル接続し、外につながる環境において、本体システムを起動させると、時刻同期されますが、どのような仕組みになっているのでしょうか?
できれば、ネットワーク経由での時刻同期を行いたくないです。
以上、宜しくお願いいたします。
コメント
y.nakamura
中村です。
どなたからも指摘が入らないようなので・・・
> Armadillo IoT ゲートウェイの時刻同期はネットワークに繋がる場合NTPサーバーと同期され、
> ネットワーク繋がらない場合はハードウェアクロックが読み出される
この2つの順番は逆です。
というか、2行目の説明は間違いです。
カーネル起動時にハードウェアクロック(RTC)を読み出します。
ネットワークに繋がるかどうかがわかる前なので、
ネットワークに繋がるかどうかに関係なくです。
起動時のコンソールに次のように表示されます。
bmic_rtc 3-0011: setting system clock to 2020-07-14 15:49:54 UTC (1594741794)
そのあと、ネットワークがつながればNTPからセットします。
「ネットワークにつながれば・・・」は、
つながった時に1回だけの/etc/network/if-up.d/ntpdateによる同期と、
その後のsystemd-timesyncd.serviceによる更新(同期)があるのですが、
systemd-timesyncd.serviceは起動時にも1つ仕事をしていて、
サービス起動時に/var/lib/systemd/clockのタイムスタンプをチェックして、
このファイルのタイムスタンプがカーネル起動時にRTCでセットされた
現在時刻よりも新しいときには、このファイルの時刻をセットしています。
たとえばRTCがバッテリバックアップされていないときなど、
/var/lib/systemd/clockのタイムスタンプよりもRTCの方が過去になると、
このファイルのタイムスタンプセットされます。
そのあと、NTPとの同期になります。
時系列的には、次のようになるのではないかと思います。
(systemd-timesyncdサービスがネットワーク接続よりも先に起動なら)
1. RTCによる時刻設定
2. /var/lib/systemd/clockのタイムスタンプによる時刻設定
(RTCよりもタイムスタンプが新しいときだけ)
3. ifup時のntpdateによる設定
4. systemd-timesyncd.serviceによる更新
(このときに/var/lib/systemd/clockタイムスタンプも更新)
> $ systemctl stop systemd-timesyncd.service
> $ systemctl disable systemd-timesyncd.service
でtimesyncdを停止しているなら、上の2と4はないはずなのですけど、
> というようにすると良いのですが、試したところで
> システムを再起動された場合はハードウェアクロック時刻と同期されずに
> "Thu Nov 3 17:17:00 UTC 2016"
> となっています。
これは何でしょうねぇ。
上の4つ以外にもあるのかもしれません。
--
なかむら
at_do.phanngoc
2020年7月13日 19時07分
ドです。
Armadillo IoT ゲートウェイの時刻同期はネットワークに繋がる場合NTPサーバーと同期され、
ネットワーク繋がらない場合はハードウェアクロックが読み出される
という仕組みで実施しています。
詳細については以下のリンクを参照出来ます。
https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…
NTPを使いたくない場合は
/etc/network/if-up.d/ntpdate の削除し、
(参照:https://armadillo.atmark-techno.com/forum/armadillo/2692)
systemd-timesyncd.service の停止する
$ systemctl stop systemd-timesyncd.service
$ systemctl disable systemd-timesyncd.service
というようにすると良いのですが、試したところで
システムを再起動された場合はハードウェアクロック時刻と同期されずに
"Thu Nov 3 17:17:00 UTC 2016"
となっています。
こちらでも原因を調べてみます。