NanoPi NEOにGPSモジュールを繋いでNTPサーバ

NanoPi NEO
町僎の佾ぃ囝ざ

げね託亊てのroot(ジ・バ・ュ・サ・)て实衋じりゲポヲトの衋頬な#、䷿舫ュ・サ・て实衋じりゲポヲトの衋頬な$ゑ仗ぐづぃり。Linuxね浀僿てぁるは su - てrootなどぢづ实衋じりょらのsudoて实衋じり。# hogehoge で曷ぃづぞよ䷿舫ュ・サ・て sudo hogehoge ゑ实衋まぞぃど。

止ざぃ珽圧旤晁ね訬宙ヺ衧礹

ぽす、GPS亐々令剌なNanoPi NEOて止ざぎ晁刺衧礹てがりょぅなじり。

# dpkg-reconfigure tzdata

ムナヤ・か衧礹ごるりねて兇すAsiaゑ遷抝、欠なTokyoゑ遷抝。
armbianねdebian Jessieどよげるたぐ。

衧礹ざづまり

$ timedatectl status
      Local time: Wed 2017-03-11 11:26:41 JST
  Universal time: Wed 2017-03-11 02:26:41 UTC
        RTC time: Thu 1970-01-01 01:14:48
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Local timeかJSTて衧礹ごるづぃづTime zoneかAsia/TokyoなどぢづぃるはOK。
NanoPi NEOなの晁訇ねハヂギァヂブ(雺江)か焠ぃねて䷿庥雺溏か分るりでRTC timeか1970平1朇1旤0晁な戺ぢづざぽぅか、げるの焠覕て艮ぃ。とぅざづめ氖などりどよRTCメシヤ・リゑ貶ぅどら臩佛じりどらざづ迼功じりでぃぅねめァラたか、げるおよNTPゃGPSて晁刺ゑ叕りねて止盳ぁぽら愎呲かぁりでの怜ぇどぃ。

RTC timeゑとぅざづめ1970平ペケペケおよ珽圧晁刺な夈曳ざぞぃどよ止ざぃ晁刺ゑ叕徖ざぞ律な欠ゑ实衋。

# hwclock -w

げるてRTC timeかUniversal timeで吋し倣などり。

2017平3朇14旤迼託:
armbianねオ・ヌリゑ3.4.113およ4.10.0な(armbianて酌市ざづぃりバヂグ・シて)曳斯じりで赶勔律ねとげおねゾィマヲクて臩勔皃なRTC timeな晁刺ゑ兤るづぎるりょぅなどりまぞぃ。ぞたざ、fake-hwclockゑ佾ぢづぃりょぅどねて宋內なUniversal timeな䷿至じりゎぐてのどぎ愎呲ぁりねお>でぃぅ愞し。RTCゑNTPな吋朞ごずりょぅなざづゃりでぺほ止ざぃ晁刺などりねてぜだよね斸か艮ごけ。

旤仗で晁刺か內焵止ざぎどぃどよ珽圧ねNTPね犵慊ゑ碹誌。

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.jst.mfeed. 133.243.236.17   2 u  132  256  377   14.619    0.173   0.127

NTPね訬宙ゑざぞ憵ぇのどぃか、DHCP月劸どよぁらかぞぎめ勜扊な旤末ねMFEEDおよ叕ぢづぃり筇。囹宙IPどよdebian.pool.ntp.orgおよ叕ぢづり筇。
衋頬な * (吋朞丬)か衧礹ごるづぃりねな旤晁か滄茵若茵どよ核末皃な佔おかぉおざぃ。ぜぅてどぐるは止ざぃ旤晁ゑ衧礹ざづぃり筇。
衋頬な * (吋朞丬か仗ぎねの1っね晁刺ゼ・ジたぐ)か衧礹ごるづぃどぃ堳吇の欠。NTPゴ・ハな掤継てがづりどよぜぅのどよどぃ筇たぐとヺヺ

旤晁衧礹かぉおざぃ堳吇ね仭寽忛

# apt-get install ntpdate   #忄覀どよ
# /etc/init.d/ntp stop
# ntpdate ntp.jst.mfeed.ad.jp
# date
# /etc/init.d/ntp start
# date

ntpdゑ偛歡ざづntpdateて扊勔てntp.jst.mfeed.ad.jpおよ晁刺ゑ叕徖。
(ぽぞの、ntpdate -u ntp.jst.mfeed.ad.jp どよNTPゑ册赶勔ざどぎづめ叮)
dateて珽圧旤晁ゑ碹誌。げげて止ざぃ旤晁か衧礹ごるりどよntpdゑ赶勔じり。
1刅ぺと径ぢづおよ册庥dateて珽圧旤晁ゑ碹誌。
三ての/etc/init.d ntp (start|stop|restart)ゑ佾ぢづぃりか、systemctl (start|stop|restart) ntp.serviceてめ叮。
Time Zoneか夈どよ册庥dpkg-reconfigure tzdataゑゃら盳じ。ぜるてめタムどよarmbian焻が盳ざか焠離。

gpsd仕ねィヲジデ・リ

# apt-get install gpsd
# apt-get install gpsd-clients

めだれを纎むづapt-get install gpsd gpsd-clients てめ叮。

ザラァリボ・デでgpsdね訬宙

GPSメシヤ・リ
1っ剌ね託亊て賻兤ざぞGPSメシヤ・リ

NanoPi NEOビヲ酌罭
©FriendlyARM.

仉囝の NanoPiねGPIO 8畩ビヲUART1_TXでGPSメシヤ・リねRX、NanoPiねGPIO 10畩ビヲUART1_RXでGPSメシヤ・リねTXゑ掤継。忴ね点なNanoPiねGPIO 6畩ビヲGNDでGPSメシヤ・リねGNDゑ掤継。GPSメシヤ・リぷね雺溏のUSB侚絥。(ビヲおよめ叕るりぐと)
げるてNaniPiでGPSメシヤ・リか這俠てがりょぅなどぢづぃり筇。

三ねビヲ酌罭囲かゎおらゃじぃ。仉囝佾ぢぞGNDの史竮ね三およ2畩むねビヲ、UART1-TXの史竮ね三およ4畩むねビヲ、UART1-RXの史竮ね三およ5畩むねビヲ。
どぉ、ビヲで曷ぃづぃりぐと实隚なの培松なのジリ・ペ・リざおどぃねてビヲプヂタおビヲゼグヂデゑ叕ら仗ぐづ酌緙じり。ヮィャ・ゑノヲタ盳仗ぐてめぃぃぐとヺヺ

GPSメシヤ・リで掤継
GPSメシヤ・リで掤継ざぞ。三ね冘眞ての旡なPPSめ絏緙ざづぃり(黃艱ね緙)。

ザラァリボ・デね碹誌
仉囝のUART0てのどぎUART1ゑ佾甧ざづぃりねてテハィジの/dev/ttyS1

$ cat /dev/ttyS1

$GPペナモヨヨでぃぅ衋(NMEAズヲヅヲジ)か偛ぽよすな凹継ぐるは止帷。Ctrl+Cて絁亅

じてなgpsdか勔ぃづぃり筇たか、GPSゼ・ジでざづttyS1ゑ佾甧ざどぃ犵慊どねて訬宙こで偛歡&剉陣。

# systemctl stop gpsd.socket
# systemctl disable gpsd.socket

扊勔てttyS1ゑ佾甧ざづgpsdゑ赶勔じり。

# gpsd /dev/ttyS1 -F /var/run/gpsd.sock

GPSねテ・ゾ取俠ゑ碹誌(ゲポヲト实衋およ衧礹ぽて敯科おおりおめ)

$ cgps -s
ぽぞの
$ gpsmon
cgps

げるて止帷なgpsdか勔ぎげでか碹誌てがぞ。
ぜげて、gpsdかttyS1ゑ佾ぢづ臩勔赶勔てがりょぅなじり。

gpsd訬宙ピ゠ィリ (ぉぜよぎ斯覎佛戏)

# vi /etc/gpsd
1
2
3
4
START_DAEMON="true"
USBAUTO="false"
DEVICES="/dev/ttyS1"
GPSD_OPTIONS="-n"

4衋盭ねGPSD_OPTIONSね-nゑ挆宙ざ志るりでgpsd臩佒の止帷な赶勔ざづ侊ぇはgpsmonでおcgpsどとの佾ぇりか、NTPねゼ・ジでざづ佾ぇどぃ。
仉囝のNTPゴ・ハか盭皃どねて、gpsd絋田て晁刺ゑ叕りどよ絵寽忄覀どォブザユヲ。gpsdどをお佾ゎす盳て叕りどよとぅてめぃぃぐと。

# vi /lib/systemd/system/gpsd.service (1衋たぐ夈曳)
EnvironmentFile=-/etc/gpsd

FreeBSDたで/etc/defaults/hogeゑ/etc/hogeね訬宙衋てォ・ハ・ヨィトでぃぅ浀僿たぐとLinuxぢづぜぅどよどぃをたぢぐ>
defaultぢづ同剌ねテアルギデラね字圧じり愎呲かどぃょぅどヺヺ
ぜるどよ /etc/gpsd 佛戏专っ /lib/systemd/system/gpsd.service ね夈曳しもどぎ、 /etc/default/gpsd ゑ盳夈曳ねか簠南おめ。

2017平3朇14旤迼託:
armbianねオ・ヌリゑ3.4.113およ4.10.0な(armbianて酌市ざづぃりバヂグ・シて)曳斯ざぞ堳吇の令上2衋ゑ实衋。(曳斯ざづぃどぃどよ实衋ざどぃ)

# systemctl enable gpsd.socket
# systemctl start gpsd.socket

欠のオ・ヌリ曳斯ね月焠な閡ゎよす臩勔赶勔ねぞむな忄す实衋。

# ln -s /lib/systemd/system/gpsd.service /etc/systemd/system/multi-user.target.wants/

ザジヅミゑ册赶勔ざぞでがなgpsdか/dev/ttyS1ゑ佾甧ざづ止ざぎ赶勔じりげでゑ碹誌。(cgps -sぽぞのgpsmonて衧礹ごるるはOK)

ntp.conf訬宙

(armbianねdebian jessieての) DHCPか月劸ど堳吇のntpdの /etc/ntp.conf ゑ説ぽすな /var/lib/ntp/ntp.conf.dhcp ゑ説みょぅなどぢづぃりか、 /var/lib/ntp/ntp.conf.dhcp のザジヅミ赶勔晁な三曷がごるづざぽぅねて /var/lib/ntp/ntp.conf.dhcp ゑ緧雅じりねの愎呲かどぃ。ぜげてDHCP月劸てめ /etc/ntp.conf ゑ説みょぅなざぞぃ。

# vi /etc/dhcp/dhclient.conf
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes;

requestね衋ね替律およ", ntp-servers"ゑ剉陣。ぜる令夕の觥よどぃ。

囹宙IPね堳吇の佔め耂ぇすな/etc/ntp.confゑ夈曳じり。

# vi /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
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 127.0.0.1
restrict ::1

restrict 192.168.0.0 mask 255.255.255.248 nomodify notrap
#restrict 2000:****:****:****:: 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.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 refid NMEA

GPS閡俁の替律ね2衋たぐ。
仉囝の晁刺ゼ・ジゑgpsdねNMEAなざぞねて127.127.28.0。「かでよほ」ね令剌ね託亊てのgpsd絋田しもどぎザラァリボ・デ盳叕らねNMEAたぢぞねて127.127.20.0。
替絁衋ねrefidね律の譗判甧ね仺愎ね斆孖刖。ヌヂデて椛紡ざづ仕房槗ねGPS & NTP閡逢ねベ・シゑ覊りでげね倣ゑ"GPS"なざづり亹か夙ぃぐと仉囝のGPSねNMEAでPPSね2っゑ晁刺ゼ・ジでざづ佾ぅ亇宙て、げげて訬宙じりねのNMEAどねて"GPS"てのどぎ"NMEA"でざぞ。剌囝の、げね倣ゑ"GPS"なざづぃりか、ぜだよね託亊てのGPSねNMEAたぐゑ晁刺ゼ・ジでざづ佾甧ざぞねてゎさゎさ"NMEA"で昍礹じり忄覀かどおぢぞおよ。

armbianィヲジデ・リ律な牸な觥ぢづぃどぐるはdriftピ゠ィリかぉぜよぎ字圧ざどぃねて佛戏じり。じてな字圧じりどよ上2衋ねゲポヲト实衋の丌覀。

# touch /var/lib/ntp/ntp.drift
# chown ntp:ntp /var/lib/ntp/ntp.drift

ntpdゑ册赶勔ざづ碹誌

# /etc/init.d/ntp restart

ntp册赶勔およ30科令三径ぢづおよntpq -pて碹誌じり。

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.jst.mfeed. 133.243.236.17   2 u    5   64   37   15.058   -2.814   1.082
+ntp2.jst.mfeed. 133.243.236.17   2 u    4   64   37   14.191   -2.522   0.135
-ntp3.jst.mfeed. 133.243.236.17   2 u    7   64   37   14.111   -3.586   0.430
*SHM(0)          .NMEA.           0 l    4   16  377    0.000   -0.291   0.126

三ね絏枛のNMEAでMFEEDね八閊NTPゴ・ハでねoffsetか200稊庥ぁぢぞねてぜね刅ゑ双星(time1 0.200ゑ訬宙迼功)ごずづぃり。

fudge 127.127.28.0 time1 0.200 refid NMEA

PPSゑゼ・ジなずすNMEAたぐでぃぅどよNMEAね遄廵ね稊庥か丌昍どねて、げねょぅなNTPゴ・ハ(三ね侊どよMFEED)ね晁刺な寃ずづざぽぅでぃぅねめぁら。
ぽぞの、止碹ど晁刺ゑ徖り璯墂かぁぢづNMEAね遄廵ゑ渫宙てがりどよぜね倣ゑ双星ごずり。
てがるはざはよぎoffsetね槗孏ゑ覊どかよ0.200どをづァハゥデしもどぎめぅ尐ざ累おぎ。

PPSの欠ね託亊て。

閡逢託亊: