FT8用にNTPサーバーを立てる

はじめに

 FT8は同期通信のため、運用時はPCの時刻をなるべく正確に補正する必要があります。よく目にするのは、iネッ時計やBktTimeSync等のソフトウェアを利用し、外部のNTPサーバーと同期する方法ですが、無線家としては自前で解決したいところ。そこで、GPSモジュールを使い、NTPサーバーを立てることにしました。ついでにWindowsのNTPクライアントの設定を変え、少しでも精度が上がらないか試してみます。

実施した内容

 1. NTPサーバーを立てる
 2. FT8運用PCの設定を変える

1. NTPサーバーを立てる

1.1 事前準備 
 ・サーバー
  - Rocky Linux 8 (RHEL8系)
 ・GPSモジュール
  - GR-7BN (DOCTORADIO) ※PPS出力無し
 サーバーは元々あるものを使用し、GPSモジュールはAmazonで購入しました。ラズパイなどを使えるのであれば、PPS出力のあるモジュールを購入するとより精度が上がると思われます (本当はPPS信号も使用したいのですが、PCに入れるのが面倒そうで諦めました) 。

1.2 必要なソフトウェアのインストール

[ntp@hogehoge ~]# dnf install chrony gpsd gpsd-clients
[ntp@hogehoge ~]# systemctl start chronyd.service
[ntp@hogehoge ~]# systemctl start gpsd.service

 chronyはNTPサーバー&クライアントソフトウェア (私の環境では元々インストールされていました) 、gpsdとgpsd-clientsはGPS用のソフトウェアです。gpsdでGPSモジュールから情報を取得し、chronyにわたすという流れになります。
 インストール後は再起動したほうが良いと思います。

1.3 GPSモジュールの動作確認+デバイス名確認

[ntp@hogehoge ~]# gpsmon

 GPSモジュールがきちんと動作していれば、取得した情報が出力されます。左上に「/dev/ttyACM0」等デバイス名の表示があるのでメモしておきます。

gpsmon実行結果

1.4 gpsdの設定
 /etc/sysconfig/gpsd内に設定を追加します。

[ntp@hogehoge ~]# vi /etc/sysconfig/gpsd

# "-n"を追記
OPTIONS="-n"
# "false"に変更
USBAUTO="false"

# デバイスの指定
DEVICES="/dev/ttyACM0"

1.5 chronyの設定
 /etc/chrony.conf内の設定を変更します。

[ntp@hogehoge ~]# vi /etc/chrony.conf

# 外部NTPサーバーへの同期を解除 (コメントアウト)
# pool 2.pool.ntp.org iburst

# GPSの設定を追記

# offsetはgpsmonで表示される "TOFF" の値に近いものを指定
refclock SHM 0 refid GPS precision 1e-1 offset 0.07

# LAN内からのアクセスのみ許可
allow 192.168.*.0/24

1.6 再起動
 chronyd.serviceを起動した後に、gpsd.serviceを起動します。

[ntp@hogehoge ~]# systemctl restart chronyd.service
[ntp@hogehoge ~]# systemctl restart gpsd.service

1.7 確認
 chronyがGPS経由で時刻同期できているか確認します。

[ntp@hogehoge ~]# chronyc sources

問題なく同期できている場合、以下のような表示となります。

chronyc sources 実行結果

1.8 ファイアウォール設定
 NTPクライアントがアクセスできるようにファイアウォール設定を追加します。

[ntp@hogehoge ~]# firewall-cmd --add-service=ntp –permanent
[ntp@hogehoge ~]# firewall-cmd --reload

2. FT8運用PCの設定を変える

1.1 設定変更
 レジストリエディターを起動し、以下の値を変更します。
 下記の設定を行うと、poll間隔としては2秒に1回と指定していますが、SpecialPollIntervalを60としているため、60秒に1回サーバーと同期を行います。

設定箇所①
設定箇所②

1.2 NTPサーバーの変更
 NTPサーバーをLAN内に立てたサーバーに変更し完成です。

さいごに

 GPSから時刻を同期させることに意味はないですがロマンがあります。
 一番の収穫はWindowsの設定を変えたことで、標準機能を使って正確な時刻に補正できるようになったところです。余計なソフトを入れずとも、快適にFT8を運用できるようになりました (NTPサーバー関係ないですけどね)。

「FT8用にNTPサーバーを立てる」への2件のフィードバック

  1. GPSを用いたNTPを初めて知りました!ちなみに公開サーバと比べてどの程度正確になったとかわかるのでしょうか?
    また写真を見る限りたくさんの衛星が存在するんだなぁと感じました!

    1. 「正確になるか」と言われると微妙ですが、chronyで公開サーバーへの同期をONにした状態で”chronyc sources”を実行した結果を添付します。前回同期時のズレがGPSでは”+168μs”であるのに対し、NTPサーバーは”-9546μs~-12ms”となっておりGPSで取得した時刻とmsオーダーでズレていることが伺えます。どちらが正確かは……?

コメントを残す