摘要
上一次,我写了一篇关于将GPS连接到没有PPS的NanoPI并同步Chrony以创建NTP服务器的演讲。 除了连接器周围没有连接,因此可以在不焊接的情况下制造。 但是,由于GPS具有PPS功能,因此无法使用它。 这次,我将制作一台高精度的GPS NTP服务器,这需要焊接但使用PPS。
はじめに
前回、PPSなしでNanoPIにGPSを繋ぎChronyを同期させNTP Serverを作る話を書きました。コネクタ回り以外接続は行わないのではんだ付けなしに作れます。でも、折角GPSにPPS機能がついているのですからこれを使わない手はありません。今回は、はんだ付けがいりますがPPSを使った、高精度のGPS NTP Serverを作ります。
準備
まず、NanoPI NEO2にGPSをつなぐ(PPSなし)簡易編をすべて実行しPPSなしのNTP Serverを作ってください。
pps-toolsの導入
apt install pps-tools
設定
/boot/armbianEnv.txt
GPIO18をPPS入力に指定します。
dtoverlay=pps-gpio,gpiopin=18
私のようにRoot FSをMaicroSDでなく、SSDにしている場合、これはboot時の指定ですので、MicroSDにあるFileを変更しなくてはなりません。
mkdir /a
mount /dev/mmcblk0p1 /a
vi /a/boot/armbianEnv.txt
/etc/modules
必要なmoduleを指定します。
g_serial
pps-gpio
/etc/chrony/chrony.conf
クロックソースにPPSを追加
# information about usuable directives.
pool ntp.jst.mfeed.ad.jp
refclock SHM 0 delay 0.5 refid NEMA
refclock SHM 1 offset 0.0 delay 0.1 refid PPS
halt
halt commandでSystemを一旦停止し電源を切ります。
配線
大したことありません。NanoPI コネクタのGPIO18 (pin12)とGPSの1PPSを接続します。
USBシリアルを繋ぎGPSもつないでPower On!
確認
# lsmod | grep pps
pps_ldisc 16384 2
pps_gpio 16384 0
# chronc
> sources
210 Number of sources = 5
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
# - NEMA 0 4 377 18 +218ms[ +218ms] +/- 251ms
# ? PPS 0 4 0 - +0ns[ +0ns] +/- 0ns
^* ntp1.jst.mfeed.ad.jp 2 6 177 35 -415us[ -378us] +/- 75ms
^+ ntp3.jst.mfeed.ad.jp 2 6 177 36 +535us[ +572us] +/- 114ms
^+ ntp2.jst.mfeed.ad.jp 2 6 177 39 +275us[ +312us] +/- 101ms
結論
またしてもあっさり繋がりStratum 1のNTP Serverが出来上がりました。使用したLinux Kernelを/proc/config.gzで確認したところPPS用にBuldされていたのでKernel Buildは行わずに済みました。