GPSをシステムに接続しています。システム時刻をGPS時刻の前後に4時間未満変更すると、ntpd
システム時刻が一致するように更新されます。 GPSのそれ。ただし、そのオフセットが4時間を超える場合、更新は行われません。
ntpd
を-g
オプションで実行することを確認しましたが、通常のntpサーバーを使用しない限り(たとえばserver 0.debian.pool.ntp.org iburst
)、それでも機能しません。 / etc/ntp.confで。ただし、問題のシステムが通常の操作中にインターネットにアクセスできないと仮定します。
そのファイルの他の関連する設定は次のとおりです。
server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 0.420 refid GPS
server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid GPS1
(ソース:gpsd
マンページ)
念のため、その構成にtinker panic 0
を追加しましたが、それでも運がありません。
回避策...を使用することにしましたchrony。
GPSを基準クロックとして使用するために/etc/chrony/chrony.conf
の設定ファイルにあるものは次のとおりです( ソース ):
refclock SHM 0
次に、実際にchrony
に大きなオフセット調整を行わせるために、通常の段階的な調整ではなく、これを同じ構成ファイルに追加しました:
makestep 1000 -1
つまり、ハードウェアクロックが少なくとも1000秒ずれていると、ステップ調整が行われます。 -1
は、基準クロックに一致するまでに必要な回数だけ試行することを意味します。
Debian Wheezyによって提供されたように、他の設定はそのままにしました。
4時間の制限チェックがntpd/refclock_shm.c(ntp-4.2.8p7)に実装されており、/ etc /ntp.confの値「1」をflag1に設定するとこのチェックが停止するようです。
server 127.127.28.0 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.0 refid GPS stratum 4
fudge 127.127.28.0 time1 0.113 # coarse processing delay offset
fudge 127.127.28.0 flag1 1 # ignore difference limit
RaspberryPiでntpd4.2.8p3を実行しています。