GPSレシーバーから時刻を取得するようにntpdを構成しようとしています(BU-353S4
)しかし、いくつかのエラーが発生しています。
Arch LinuxArmでntpd4.2.8.p6-3とgpsd3.16-2を使用しています。 Arch wikiのチュートリアル をフォローしていますが、トラブルシューティング情報がありません。
Gpsdログにはエントリが含まれています
gpsd:ERROR: response: {"class":"ERROR","message":"No such device as /dev/gps0"}\x0d\x0a
約6秒ごとに繰り返され、開始、停止メッセージ以外は何もありません。
/var/log/ntp.logに含まれるもの:
Listen and drop on 0 v6wildcard [::]:123
Listen and drop on 1 v4wildcard 0.0.0.0:123
Listen normally on 2 lo 127.0.0.1:123
Listen normally on 3 eth0 172.10.10.75:123
Listen normally on 4 lo [::1]:123
Listen normally on 5 eth0 [fe80::ba27:ebff:feba:af05%2]:123
Listening on routing socket on fd #22 for interface updates
GPSD_JSON(0): GPSD revision=3.16 release=3.16 protocol=3.11
ntpq -p
出力
remote refid st t when poll reach delay offset jitter
==============================================================================
GPSD_JSON(0) .GPS. 0 l - 64 0 0.000 0.000 0.000
/etc/ntp.conf
含む
restrict 127.0.0.1
restrict ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# GPSD config
server 127.127.46.0
fudge 127.127.46.0 time1 0.0 time2 0.0 refid GPS
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
しかしながら Sudo gpscat /dev/gps0
は(私の訓練されていない目には)有効なnmea gps情報を出力し、cgps
とgpsmon
はすべて修正を取得し、有用な情報を出力します。
/dev/ttyUSB0
権限がありますcrw-rw---- 1 root uucp 188
。 gpsd
はユーザーnobody
で実行されており、ntpd
はユーザーntp
として実行されています
gpsd
は誰も実行していないため、/dev/ttyUSB0
を読み取る権限がありません。これはまさに不満です。
nobody
ユーザーをグループuucp
に追加すると、問題は解決するはずですが、お勧めしません。または、/dev/ttyUSB0
のモードを666に変更することもできますが、これは少し恐ろしいことではありません。何よりも、gpsd
スタートアップ構成を編集して、他のユーザー(おそらくgpsd
)として実行し、/dev/ttyUSB0
をgpsd
のプライマリによってグループ所有にすることです。グループ(おそらくgpsd
)。
gpsd
がGPSを正しく読み取れるようになると時刻を設定すると仮定すると、これによりntpd
は時刻をアドバタイズできるようになり、(設定したので)ストラタム-0から取得したことがわかります。 (ntp)ソース。
「リンクされた/dev/gps0
でgpsdを実行して、GPSD_JSON行が期待どおりに表示されるようにする」必要があることに注意してください。したがって、GPSDが/dev/gps0
で実行されているかどうかを確認してください。 GPSDはサーバーの/dev/ttyS0
で実行され、/dev/gps0
でDEVICESを/etc/default/gpsd
に変更すると、NTPdはGPSDを正常にリンクできます。