/dev/serial0
NMEAステートメントとPPS(Pulse Per Second)信号を送信するUBLOX GNSSモジュールを使用して、インターネットなしでRaspberry Pi 4に正確な時間を提供したいと思います/dev/pps0
。
これらすべての情報はリリース直後に届き、配信gpsmon -n
および検証されますsudo ppscheck /dev/pps0
。しかし、chrony
情報を取得するには数分かかります。
コンテンツ生成を使用してchrony
これを設定しました。/etc/chrony/conf.d/gps.conf
refclock SHM 0 refid NMEA offset 0.1 precision 0.2 poll 0
refclock PPS /dev/pps0 refid PPS lock NMEA poll 0 trust prefer
log refclocks
私は設定ファイルのオプション(遅延、オフセット、精度、信頼、選択しない、デフォルト設定、ロック)を使用して多くの実験をしましたが、役に立ちませんでした。
私は/etc/chrony/chrony.conf
元の姿を残しました。
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usable directives.
# Include configuration files found in /etc/chrony/conf.d.
confdir /etc/chrony/conf.d
# Use Debian vendor zone.
pool 2.debian.pool.ntp.org iburst
# Use time sources from DHCP.
sourcedir /run/chrony-dhcp
# Use NTP sources found in /etc/chrony/sources.d.
sourcedir /etc/chrony/sources.d
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys
# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift
# Save NTS keys and cookies.
ntsdumpdir /var/lib/chrony
# Uncomment the following line to turn logging on.
#log tracking measurements statistics
# Log files location.
logdir /var/log/chrony
# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0
# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync
# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
makestep 1 3
# Get TAI-UTC offset and leap seconds from the system tz database.
# This directive must be commented out when using time sources serving
# leap-smeared time.
leapsectz right/UTC
問題は、再起動後にPPSからデータをchrony
受信できないことです。 (列にハイフンが表示されます。)と(更新なし)を実行してgpsd
これを確認しました。chronyc sources
LastRx
sudo tail -f /var/log/chrony/refclocks.log
数分後(5〜20分)、chronyはgpsd
PPSから時間を取得し始め、数秒後にシステム時間を更新します(前の段落で説明したのと同じ方法で識別されます)。時には状況によって異なり、chrony
時間を確保した後にPPSを読むのに数分かかりますgpsd
。何度も再起動しようとしましたが、結果は常に同じです。 GNSSモジュールのデータはすぐに入力され、起動時gpsmon -n
にすぐにアクセスできますppscheck
。それでは、chrony
なぜ同じ情報を得るのに5分以上かかりますか?
しかし、システム時間をリセットした後はsudo date +%T -s "12:00:00"
問題sudo systemctl reastart chrony
ありません。chrony
システム時間は数秒以内に更新されます。
私が問題を解決しようとしたことの1つはrunningでしたsudo ntpshmmon
。起動時にNTP2およびNTP3サンプルが表示されましたが、NTP0サンプルはchronyが参照クロックに接続し始めたときにのみ表示されました。これは原因を絞り込むのに役立ちますが、そこからデバッグを続行する方法がわかりません。
この質問は以下で修正されました。Raspberry Piスタック交換に関する質問。