web-dev-qa-db-ja.com

gpsdからのntp時間の設定

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情報を出力し、cgpsgpsmonはすべて修正を取得し、有用な情報を出力します。

/dev/ttyUSB0権限がありますcrw-rw---- 1 root uucp 188gpsdはユーザーnobodyで実行されており、ntpdはユーザーntpとして実行されています

1
timlyo

gpsdは誰も実行していないため、/dev/ttyUSB0を読み取る権限がありません。これはまさに不満です。

nobodyユーザーをグループuucpに追加すると、問題は解決するはずですが、お勧めしません。または、/dev/ttyUSB0のモードを666に変更することもできますが、これは少し恐ろしいことではありません。何よりも、gpsdスタートアップ構成を編集して、他のユーザー(おそらくgpsd)として実行し、/dev/ttyUSB0gpsdのプライマリによってグループ所有にすることです。グループ(おそらくgpsd)。

gpsdがGPSを正しく読み取れるようになると時刻を設定すると仮定すると、これによりntpdは時刻をアドバタイズできるようになり、(設定したので)ストラタム-0から取得したことがわかります。 (ntp)ソース。

2
MadHatter

「リンクされた/dev/gps0でgpsdを実行して、GPSD_JSON行が期待どおりに表示されるようにする」必要があることに注意してください。したがって、GPSDが/dev/gps0で実行されているかどうかを確認してください。 GPSDはサーバーの/dev/ttyS0で実行され、/dev/gps0でDEVICESを/etc/default/gpsdに変更すると、NTPdはGPSDを正常にリンクできます。

0
JK Zhang