web-dev-qa-db-ja.com

ntpにgpsdを使用して、大きなオフセットでシステムの日付/時刻を更新する方法

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を追加しましたが、それでも運がありません。

7
tshepang

回避策...を使用することにしましたchrony

GPSを基準クロックとして使用するために/etc/chrony/chrony.confの設定ファイルにあるものは次のとおりです( ソース ):

refclock SHM 0

次に、実際にchronyに大きなオフセット調整を行わせるために、通常の段階的な調整ではなく、これを同じ構成ファイルに追加しました:

makestep 1000 -1

つまり、ハードウェアクロックが少なくとも1000秒ずれていると、ステップ調整が行われます。 -1は、基準クロックに一致するまでに必要な回数だけ試行することを意味します。

Debian Wheezyによって提供されたように、他の設定はそのままにしました。

3
tshepang

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を実行しています。

3
Takayuki Matsui