NanoPi NEOとGPSモジュールでNTPサーバ PPS解決編

GPSメシヤ・リで掤継
冘眞の佾ぃ囝ざ

NanoPi NEOゑPPSどNTPゴ・ハなざぞねたか、とぅざづめPPSでNMEAな吋朞ざどぃ、吋朞ざづめじくな分るり、てめ仕ねNTPゴ・ハの吋朞じりでぃぅげでて怜ぃぢがら迶赯じりげでなどぢづざぽぢぞか、絏尿ねでげれ、盭か箿穳たぢぞねか为厞囟たぢぞ。

替絁皃どNTPね訬宙ピ゠ィリの令上ねょぅど愞しなどぢぞ。(「かでよほ」ね丬ね亹ねヌヂデヮ・ギての实隚なのIPv6ゑ月劸なざづぃり)

/etc/ntp.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
driftfile /var/lib/ntp/ntp.drift
#statsdir  /var/log/ntpstats/

server ntp1.jst.mfeed.ad.jp #210.173.160.27
server ntp2.jst.mfeed.ad.jp #210.173.160.57
server ntp3.jst.mfeed.ad.jp #210.173.160.87
#server ntp1.v6.mfeed.ad.jp #2001:3a0:0:2001::27:123
#server ntp2.v6.mfeed.ad.jp #2001:3a0:0:2005::57:123
#server ntp3.v6.mfeed.ad.jp #2001:3a0:0:2006::87:123

restrict -4 default ignore
#restrict -6 default ignore

restrict -4 127.0.0.1
#restrict -6 ::1

restrict 192.168.0.0 mask 255.255.255.248 nomodify notrap
#restrict abcd:1234:abcd:1234:: mask ffff:ffff:ffff:ffff:: nomodify notrap

restrict -4 210.173.160.27 mask 255.255.255.255 nomodify notrap noquery
restrict -4 210.173.160.57 mask 255.255.255.255 nomodify notrap noquery
restrict -4 210.173.160.87 mask 255.255.255.255 nomodify notrap noquery
restrict -6 2001:3a0:0:2001::27:123 nomodify notrap noquery
restrict -6 2001:3a0:0:2005::57:123 nomodify notrap noquery
restrict -6 2001:3a0:0:2006::87:123 nomodify notrap noquery

server 127.127.20.0 mode 17 minpoll 4 prefer
fudge  127.127.20.0 time2 0.175 refid NMEA

server 127.127.22.0 minpoll 4 true
fudge  127.127.22.0 flag3 1 refid PPS

MNEAゑ佾ゎすなPPSね勔佛詥騒ゑ繯ら迓ざづぃぞでぃぅ剌描かぁぢづ、PPSゑ吋朞ごずりなのPPS令夕ねとるおねserverなpreferゑ仗ぐどぐるはどよどぃねてserver ntp1.jst.mfeed.ad.jpね律なpreferゑ仗ぐぞっめらたぢぞ。
ざおざ、三ね訬宙侊ねょぅなserver衋ね未尽なゲムヲデてIPァトルジゑ曷ぃづぃりをたぐと、ぜね未尽なpreferゑ曷ぃづざぽぢづぃぞ。っぽら曷ぃぞっめらかゲムヲデね䷿郧などぢづぞ。
三ね侊ての仕房ねNTPゴ・ハてのどぎ、MNEAゑ月劸なざづぜるなpreferゑ仗ぐづぃり。(27衋盭)

28衋盭、MNEAね遄廵裛止なtime1ゑ佾ぢづぞ。げるのTypo。ラピ゠ルヲジギレヂギトヨィハか127.127.20.*どよtime2たゎぬ。三ね侊てのPPSでね晁刺巭0.175科ゑ裛止ざづぃり。

30衋盭、PPSね吋朞か分るどぃょぅなtrueゑ迼功ざぞ。←弶弔たぐとげるか劸ぃづりで怜ぅ。

$ ntptime
ntp_gettime() returns code 0 (OK)
  time dc906a84.a546f588  Thu, Apr  6 2017 16:19:32.645, (.645614050),
  maximum error 3000 us, estimated error 17 us, TAI offset 0
ntp_adjtime() returns code 0 (OK)
  modes 0x0 (),
  offset 0.000 us, frequency -30.816 ppm, interval 256 s,
  maximum error 3000 us, estimated error 17 us,
  status 0x2107 (PLL,PPSFREQ,PPSTIME,PPSSIGNAL,NANO),
  time constant 4, precision 0.001 us, tolerance 500 ppm,
  pps frequency -30.815 ppm, stability 5.914 ppm, jitter 10.656 us,
  intervals 106, jitter exceeded 8, stability exceeded 0, errors 0.
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*GPS_NMEA(0)     .NMEA.           0 l   14   16  377    0.000    1.050  17.884
oPPS(0)          .PPS.            0 l   13   16  377    0.000    0.002   0.006
+ntp1.jst.mfeed. 133.243.236.17   2 u   27   64  377   19.929    1.864   0.205
+ntp2.jst.mfeed. 133.243.236.17   2 u   31   64  377   19.896    0.758   0.121
-ntp3.jst.mfeed. 133.243.236.17   2 u   27   64  377   17.214    1.781   0.071

冄蔴晁訇かハオてザジヅミ晁訇かまりまりスルりねてRTCメシヤ・リてめ仗ぐどぃでタムどねおで怜ぢぞぐとどをでおどぢぞ。
ぢづぃぅお、覊盳じぢづ夦亊。
ぞた、UART(ザラァリボ・デ)か艮ぎどぃねおシヂゾ・か夦がぃねか氖などり。

setserialゑ佾ぅで艮ぃでぃぅベ・シかぁぢぞねて詥ざづまぞ。

# apt install setserial
# setserial /dev/ttyS1 low_latency

ttyS1な寽ざづlow_latencyゑズヂデざぞ。

$ cat /var/lib/setserial/autoserial.conf
###PORT STATE GENERATED USING AUTOSAVE-ONCE###
###AUTOSAVE-ONCE###
#KERNEL
/dev/ttyS0 uart undefined port 0x0000 irq 33 baud_base 1500000 spd_normal
/dev/ttyS1 uart undefined port 0x0000 irq 34 baud_base 1500000 spd_normal
/dev/ttyS3 uart undefined port 0x0000 irq 35 baud_base 1500000 spd_normal

臩勔誌譗ごるぞIRQの止ざぜぅ。UARTね稭顝の誌譗ごるづぃどぃ。ぉぜよぎNanoPi NEOねUARTね稭顝かU6_16550Aでぃぅ些稭>たおよおど。

$ setserial /dev/ttyS1 -a
/dev/ttyS1, Line 1, UART: undefined, Port: 0x0000, IRQ: 34
        Baud_base: 1500000, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal low_latency

䷿忛、替律ね衋なlow_latencyでぃぅねか兤ぢぞねて勔ぃづり氖ど槗孏。
どねて、setserial /dev/ttyS1 low_latency ゑ/etc/rc.localな曷が辻み。兵ねでがなntpか偛ぽぢづりゾィマヲクて实衋ごるり斸か艮ぃおめ。

ぞたざ、setserialてlow_latencyゑズヂデざぞ劸枛の內ぎ焠ぃょぅな覊ぇり(ソンムしもを)。佔お閒達ぢづり>

2020平7朇3旤迼託:
愎呲かぁりおとぅおの丌昍たか、勔ぃづぃりねか氖な兤よどぃねてザラァリボ・デ甧ねgettyゑ偛むぞぃで怜ぢぞ。
ザラァリボ・デ甧ねgettyのserial-gettyでぃぅゴ・ヒジて、 /lib/systemd/system/serial-getty@.service なぁり。
@仗がねゴ・ヒジの牸殉どねて晭這なゴ・ヒジ同挆宙ての偛歡てがどぃ。

$ sudo systemctl stop serial-getty@ttyS0.service        #偛歡
$ sudo systemctl disable serial-getty@ttyS0.service     #焠劸匕

げをど愞して、@ね律な偛歡ざぞぃボ・デ同(三ね侊てのttyS0)ゑ仗ぐり。

で、ぃぅげでて、OS偳ねGPIO寽忛ね遄るでざゆ・めどぃマジ&勗達ぃかぁぢづおどら旤敯かおおぢぞめねね、PPSゑ佾ぢぞNTPゴ・ハめ䷿忛てがぞ。
NanoPi NEO(焠卯)*パ・デザヲギ*退斘、GPSメシヤ・リ*GPSァヲヅド(げだよの退斘焠斘)て吇訇紃3,000内てPPS寽忛NTPゴ・ハかてがりでぃぅげでなどり。艮ぃ晁仢などぢぞめをたど぀。

閡逢託亊: