監視カメラを運用しているので、そこで動かしているZoneMinderにはできるだけ正確な時計を与えてやらないといけない。
Raspberry Pi 4には、USB接続のGPSを接続していて、それをgpsd経由でntpsecにデータを渡してやり、GPSから時刻データを得るようにしている。
サーバー負荷に応じて、GPSから得た時刻データを調整するのだが、見ているウチに「あれ、進めるんだっけ?遅らせるんだっけ?」と混乱してくるので、AIのgeminiさんに丸投げ(^^:
|
1 2 3 4 5 6 7 |
fudge 127.127.28.0 time1 0.106 refid GPS この設定でntpq -pnの結果が *SHM(0) .GPS. 0 l 15 16 377 0.0000 5.7048 8.1184 +61.205.120.130 .NICT. 1 u 34 64 377 7.9560 -23.0438 26.9807 となっています。 適切なパラメータは何ですか? |
ntpq -pn の結果から判断すると、適切な time1 の設定値は 0.077(またはより正確には 0.077251)となります。計算の根拠
NTPにおける
現在の設定(
offset(オフセット)の単位はミリ秒(ms)です。現在の設定(
time1 0.106)において、基準となる公的機関の NICT(日本の標準時サーバー)と、お使いの GPS(SHM(0))の間で以下のズレが生じています。-
- SHM(0) のオフセット:
+5.7048 ms(システム時間より 5.7ms 進んでいる) - NICT のオフセット:
-23.0438 ms(システム時間より 23.0ms 遅れている)
- SHM(0) のオフセット:
GPS(SHM)を正確な NICT の時刻に一致させるためには、両者の差分である
28.7486 ms(5.7048 - (-23.0438))だけ GPS の時間を遅らせる(マイナスする)必要があります。-
- 現在の設定値:
0.106秒 - 必要な修正量:
-0.0287486秒 - 新しい設定値:
0.106 - 0.0287486 = 0.0772514秒
- 現在の設定値:
修正後の設定例
/etc/ntp.conf の該当箇所を以下のように書き換えてください。|
1 |
fudge 127.127.28.0 time1 0.077251 refid GPS |
この設定値は、USB接続のGPSからデータを取ってくるのに、遅延が発生するので、設定値によって、遅延分の時刻を先に進ませるという趣旨のパラメータ。
なので、設定値を増やすと時計が進むし、少なくすると時計が遅れるという仕組み。
ntpqコマンドで状態を見ると、基準となっているのが、Raspberry Pi 4のシステム時計で、それよりもGPSやNTPサーバーの時刻が進んでいたら正の値で、遅れていると負の値になる。
GPSの値と、基準とするNTPサーバーの値を見ていると、プラスだったりマイナスだったりするので、混乱してくるのだ(笑)
geminiさんに丸投げは楽でいいね 🙂
