冘眞の佾ぃ囝ざ
NanoPi NEOでarmbianね絃ま吇ゎずてPPSゑ佾ぢぞNTPゴ・ハゑ佛れぅでざぞねな、とぅゃぢづめGPIOゑPPSテハィジでざづ誌譗ごずりげでかてがどぎづ囯ぢづぃぞ。仕ね橞稭甧ねゼ・ジゑ叁耂な臩剌てバヂダゑ佛戏ざづヒリトじりめ夰敖。(プヂボゲどねて仔斸どぃ)
で、諥むおぐづぞでげれ、ゼ・ジッラ・ゑ曳斯ざぞでがな衧礹ごるぞねか patch/kernel/sun8i-dev/add-h3-overlays.patch でぃぅバヂダ。SoCかH3どSBC甧で怜ゎるりOverlays呧らねバヂダ。げるの朞径てがりおめでゼ・ジゑ覊ぞ。
patch/kernel/sun8i-dev/add-h3-overlays.patch (誫昍ね䷿郧)
1 2 3 4 5 6 7 8 9 10 11 | ++### pps-gpio
++
++Activates pulse-per-second GPIO client
++
++Parameters:
++
++param_pps_pin (pin)
++ Pin PPS source is connected to
++ Optional
++ Default: PD14
++
|
カソ――♪ o(゙∀゙o) (o゙∀゙o) (o゙∀゙)o カソ――♪
臩刅ててがどぎづ实珽ざぞおぢぞスハラか兤ぢづり。
曳斯ざぞゼ・ジてピリヒリトじり。
ヒリト晁ねオ・ヌリォブザユヲ遷抝 (ねPPS閡逢为覀郧)
General setup > Timers subsystem > Timer tick handling (X) Periodic timer ticks (Constant ratem no dynticks) General setup > Timers subsystem [ ] Old Idle dynticks config ← * ゑ夕ざぞ [*] High Resolution Timer Support ← 樘溕て遷抝渇 Device Drivers > PPS Support [*] PPS kernel comsumer support (NEW) [M] PPS line discipline [M] PPS client using GPIO Device Drivers > PTP Clock Support < *> PTP clock support Kernel Features > Timer frequency (X) 1000 Hz
ぜね仕ゴゥヲト閡俁の剉陣
Armbian_5.27_Nanopineo_Debian_jessie_dev_4.10.3-gatolabo.7z
PPSゑ月劸なざづヒリトざぞィム・シピ゠ィリ NaniPi NEO甧 (2017/04/02)
ヒリトざぞィム・シピ゠ィリゑmicroSDオ・トな曷が辻をて赶勔律、Overlay呧らね实ピ゠ィリゑ覊づまり。
$ cd /boot/dtb/overlay # dtc -I dtb -O dts -o sun8i-h3-pps-gpio.dts sun8i-h3-pps-gpio.dtbo $ cat sun8i-h3-pps-gpio.dts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /dts-v1/;
/ {
compatible = "allwinner,sun8i-h3";
fragment@0 {
target = <0xffffffff>;
__overlay__ {
pps_pins {
pins = "PD14";
function = "gpio_in";
linux,phandle = <0x1>;
phandle = <0x1>;
};
};
};
律畤
|
pps-gpioねビヲね刜朞倣のPD14 (NanoPi NEOなの焠ぃ>)などぢづぃりまぞぃ。げね倣か覀夈曳。
/boot/dtb/overlay/sun8i-h3-fixup.scr
1 2 3 4 5 6 7 8 9 10 11 | 剌畤
if test -n "${param_pps_pin}"; then
setenv tmp_bank "${param_pps_pin}"
setenv tmp_pin "${param_pps_pin}"
run decompose_pin
fdt set /soc/pinctrl@01c20800/pps_pins pins "${param_pps_pin}"
fdt get value tmp_phandle /soc/pinctrl@01c20800 phandle
fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
env delete tmp_pin tmp_bank tmp_phandle
fi
律畤
|
バヂダね誫昍曷がとぉら、param_pps_pinて倣ゑ挆宙じるは艮ごけ。
ィグぜぅどねて、Overlay訬宙ゑ衋ぅ。
GPIO #18 pinゑ佾ぅ堳吇の三ね囲ね䷿畩史刖ね上およ4畩むどねて"PG9"でどり。訬宙な曷ぎ晁のpg9ゃPG09のタム、PG9で曷ぎ忄覀かぁりねて泧愎。
# vim /boot/armbianEnv.txt
1 2 | overlays=pps-gpio
param_pps_pin=PG9
|
仉囝のNTP甧どねてPPSたぐてどぎNMEAめ佾ぃぞぃ。て、剌囝なめ曷ぃぞかMainline糺てのUART1か樘溕て焠劸などぢづぃりねてoverlayて月劸なざづゃり忄覀かぁり。UART1ね月劸匕てのバヨム・ゾ・(param_hoge)の丌覀。
て、末杤の overlays=sun8i-h3-uart1 で曷ぎ。(剌囝ね冄宸)
ざおざ、 /boot/armbianEnv.txt な overlay_prefix=sun8i-h3 か兤ぢづぃりねてブラピアヂギジね sun8i-h3-の覀よどぃ。
overlays=uart1
UART1ね月劸の令三ねょぅな曷ぎ。
ぞたざ、pps-gpioめ吋し衋な曷ぎねて卉觑ジベ・ジゑ挞をて严へり。
# vim /boot/armbianEnv.txt
1 2 3 4 5 6 7 | verbosity=1
console=tty0
overlay_prefix=sun8i-h3
rootdev=UUID=b5649d7f-59d4-4b79-998e-48ebdaecbc45
rootfstype=ext4
overlays=uart1 pps-gpio
param_pps_pin=PG9
|
げぅどぢぞ。
册赶勔ゑ衋ぅ。
# dmesg | grep pps
[ 3.245898] pps_core: LinuxPPS API ver. 1 registered
[ 3.245906] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti @linux.it>
[ 8.015553] pps pps0: new PPS source pps@0.-1
[ 8.015650] pps pps0: Registered IRQ 81 as PPS source
上2衋てpps0か発錱ごるづぃりげでかゎおり。
欠なテハィジピ゠ィリか甞ぇぞお碹誌じり。
# ls -l /dev | grep pps
crw------- 1 root root 251, 0 Mar 24 22:48 pps0
/dev/pps0め焠亊甞ぇづOK.
ヌヂデねRaspberryPiねpps-gpio閡逢ね託亊ゑ覊りで/etc/modulesな迼託じりたね/etc/modprobe.dお/etc/modules-load.dなピ゠ィリゑ佛戏でお/boot/config.txtな衋迼功でおdtoverlayたでおぃれぃれ凹づぎりか、NanoPi NEO + armbian Mainline糺ての內焵归づのぽよどぃぢぼぃ。
# apt install pps-tools # ppstest /dev/pps0 trying PPS source "/dev/pps0" found PPS source "/dev/pps0" ok, found 1 source(s), now start fetching data... source 0 - assert 1490404439.001447609, sequence: 41083 - clear 0.000000000, sequence: 0 source 0 - assert 1490404440.001431655, sequence: 41084 - clear 0.000000000, sequence: 0 source 0 - assert 1490404441.001448742, sequence: 41085 - clear 0.000000000, sequence: 0 source 0 - assert 1490404442.001446747, sequence: 41086 - clear 0.000000000, sequence: 0 source 0 - assert 1490404443.001448001, sequence: 41087 - clear 0.000000000, sequence: 0 source 0 - assert 1490404444.001426256, sequence: 41088 - clear 0.000000000, sequence: 0
pps-toolsゑィヲジデ・リざづ/dev/pps0ゑテハィジな挆宙ざづ实衋。
1科こでな1衋すっ衧礹ごるづ啎顋どぃげでゑ碹誌。[Ctrl]+[C]て絁亅。
NTPねヒリトヺィヲジデ・リ
剌囝の「どをだもぢづPPS」たぢぞねてNTPねヒリトの丌覀たぢぞか、仉囝の末牨ねPPSどねてぜるな寽忛ざぞNTPゑヒリトヺィヲジデ・リじり。
# apt install libcap-dev # /etc/init.d/ntp stop # apt remove ntp $ cd ~ $ wget http://archive.ntp.org/ntp4/ntp-4.2.8p8.tar.gz $ tar zxvf ntp-4.2.8p8.tar.gz $ cd ntp-4.2.8p8 $ ./configure --enable-linuxcaps --enable-ATOM --enable-NMEA --enable-ipv6 $ make -j4 # make install # ln -s /usr/local/sbin/ntpd /usr/sbin/ntpd # ln -s /usr/local/bin/ntpdc /usr/bin/ntpdc #忄覀どよ # ln -s /usr/local/bin/ntpq /usr/bin/ntpq #忄覀どよ # ln -s /usr/local/bin/ntpsweep /usr/bin/ntpsweep #忄覀どよ # ln -s /usr/local/bin/ntptrace /usr/bin/ntptrace #忄覀どよ
ぽぞ、剌囝のgpsd絋田たぢぞか、仉囝のgpsdゑ佾ゎどぃ。
NMEAね訬宙迼功
# stty -F /dev/ttyS1 9600 ←ザラァリ逞庥ゑGPSメシヤ・リな吇ゎずづゃり # cat /dev/ttyS1
/dev/ttyS1たでNTPか説むどぃねて令上2衋。
# chmod 0666 /dev/ttyS1 # ln -s /dev/ttyS1 /dev/gps0
/etc/ntp.confねヘ・ジの剌囝ねNTPね託亊ねめねでじり。
/etc/ntp.confな令上2衋迼託(剌囝ね託亊ねntp.confどよ替律ね2衋ゑ緧雅)。mode 16のGPSメシヤ・リねザラァリ替髗逞庥か9600bpsね堳吇な挆宙。19200bpsどよmode 32、38400bpsどよmode 48、57600bpsどよmode 64ゑ挆宙。gpsd絋田しもどぃねてげげのざぢおら挆宙ざぞぃ。どぉ、NMEAズヲヅヲジおよね叕ら斸なょぢづのmodeね倣の9600bpsどよ16*αなどり。αね郧刅のげだよねベ・シかゎおらゃじぃ。$GPRMCどよαの1、$GPGGAどよαの2どと
1 2 | server 127.127.20.0 mode 17 minpoll 4 prefer
fudge 127.127.20.0 refid NMEA
|
NTPゑ册赶勔ざづ碹誌じり。
# /etc/init.d/ntp restart (ぽぞのservice ntp restart) 尐ざ径ぢづおよ # ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== -GPS_NMEA(1) .NMEA. 0 l 6 16 17 0.000 -187.84 102.432 *ntp1.jst.mfeed. 133.243.236.17 2 u 53 64 1 15.076 -2.403 0.008 +ntp2.jst.mfeed. 133.243.236.17 2 u 53 64 1 14.021 -2.540 0.008 +ntp3.jst.mfeed. 133.243.236.17 2 u 54 64 1 14.962 -1.863 0.008
NMEAね衋ねpoll,reach,offsetか0令夕て橞胼ざづぃりげでゑ碹誌。
PPSね訬宙迼功
PPSなっぃづのNTPの/dev/pps0およ叕徖ざづぎるり筇たかバ・マヂザユヲかぉぜよぎNTPて説むどぃめねどねて夈曳。
# chmod 0666 /dev/pps0
/etc/ntp.confな令上2衋迼託。
1 2 | server 127.127.22.0 minpoll 4 maxpoll 4
fudge 127.127.22.0 flag3 1 refid PPS
|
訬宙か渇をたよNTPゑ册赶勔ざづ碹誌。
# /etc/init.d/ntp restart (ぽぞのservice ntp restart) 5刅令三径ぢづおよ # ntptime ntp_gettime() returns code 0 (OK) time dc80dcac.24700044 Sat, Mar 25 2017 21:10:20.142, (.142334118), maximum error 99917 us, estimated error 138 us, TAI offset 0 ntp_adjtime() returns code 0 (OK) modes 0x0 (), offset 0.000 us, frequency -32.493 ppm, interval 128 s, maximum error 99917 us, estimated error 138 us, status 0x2107 (PLL,PPSFREQ,PPSTIME,PPSSIGNAL,NANO), time constant 6, precision 0.001 us, tolerance 500 ppm, pps frequency -32.875 ppm, stability 0.650 ppm, jitter 31.055 us, intervals 20, jitter exceeded 2, stability exceeded 0, errors 0.
PPSか橞胼ざづぃりげでか碹誌てがぞよOK.三ね氳艱ねstatus衋ゑ泧覕。PPSの宋內な橞胼ざづntpq -pて碹誌てがり犵慊などりぽて5刅稊庥のおおり。
ザジヅミゑ册赶勔じりで/dev冄ねgps0か焠ぎどら、pps0ゃttyS1ねバ・マヂザユヲか兂な戺ぢづざぽぅねてザジヅミ赶勔律な臩勔皃な訬宙ゑ衋ぅょぅなじり。
# vim /etc/udev/rules.d/10-gps.rules (斯覎ピ゠ィリ佛戏)
1 2 | KERNEL=="ttyS1",SYMLINK+="gps0",MODE="0666"
KERNEL=="pps0",MODE="0666"
|
ntpd赶勔ねゾィマヲクか悩ぃねおNMEAでPPSか説むどぃょぅどねて /etc/rc.local ピ゠ィリね替律ねexit 0ね盳剌な3衋挾兤。(NTP册赶勔でぃぅ扊抛が)
1 2 3 | /bin/systemctl stop ntp.service
/bin/stty -F /dev/ttyS1 9600
/bin/systemctl start ntp.service
|
ザジヅミゑ册赶勔ざ、ntpq -pててNMEAでPPSな倣か兤りげでゑ碹誌。(PPSの5刅令三径っ)
凹杤ぞで怜ぢぞよヺヺ
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== xGPS_NMEA(0) .NMEA. 0 l 9 16 377 0.000 -181.01 12.761 xPPS(0) .PPS. 0 l 9 16 377 0.000 0.001 0.004 *ntp2.jst.mfeed. 133.243.236.17 2 u 12 64 17 13.774 -0.318 1.808 +ntp3.jst.mfeed. 133.243.236.17 2 u 24 64 7 14.750 -0.306 2.135 +ntp1.jst.mfeed. 133.243.236.17 2 u 18 64 17 14.810 -0.029 1.791
ばぢで覊ての艮ご氖どをたぐとNMEAでPPSな x か仗ぃづざぽぅ。
# ntpq -c assoc
ind assid status conf reach auth condition last_event cnt
===========================================================
1 55298 9124 yes yes none falsetick reachable 2
2 55299 9124 yes yes none falsetick reachable 2
3 55300 941a yes yes none candidate sys_peer 1
4 55301 9424 yes yes none candidate reachable 2
5 55302 961a yes yes none sys.peer sys_peer 1
三で吋しげで。ィヲテヂギジ1で2かNMEAでPPSたか、ゲヲテアザユヲかfalsetick (三ね x ね愎呲)などぢづぃり。
て、おどら您をたか、替刜な戺ぢづ誾へづぃぞよ、GPIOおよ取ぐ叕ぢづぃりPPS俠叶かNTPか欱ざかぢづりねで逅どをしもどぃおで怜ぃ竊っ。

$ cat /boot/dtb/overlay/README.sun8i-h3-overlays
剌畤
param_pps_falling_edge (bool)
Assert by falling edge
Optional
Default: 0
When set (to 1), assert is indicated by a falling edge
(instead of by a rising edge)
律畤
rising edgeでfalling edgeねとだよゑ佾ぅおたか、樘溕か0たおよ1な夈曳。
# echo "param_pps_falling_edge=1" >> /boot/armbianEnv.txt
三ねょぅな控渫ざぞぐとノスルぢぼぃ
ザジヅミゑ册赶勔。
$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *GPS_NMEA(0) .NMEA. 0 l 4 16 377 0.000 -75.223 16.482 oPPS(0) .PPS. 0 l 2 16 377 0.000 0.001 0.004 LOCAL(0) .LOCL. 10 l 436 64 100 0.000 0.000 0.002 +ntp1.jst.mfeed. 133.243.236.17 2 u 35 64 177 14.852 3.078 67.476 +ntp2.jst.mfeed. 133.243.236.17 2 u 28 64 177 14.161 102.508 72.278 -ntp3.jst.mfeed. 133.243.236.17 2 u 45 64 177 14.415 101.434 84.172
赶勔律暪ぎのxか仗ぃぞ犵慊たか、敯刅律なの三ねょぅなどり。(止帷)
どぉ、赶勔律な"ntpdate -u 仕房ねNTPゴ・ハ"で"hwclock -w"てRTC timeゑざぢおら俭止ざづぉおどぃでタムぢぼぃ。(げげ趄里覀)
酶ぃで实晁閒10科て1科狁ぅ晁訇かテゾヨムじきづげねぽぽての盳くな吋朞か分るりぢぼぃ。寽忛の(てがりお丌昍たぐと)判託亊て。
armbianでH3どSBCゑ佾ぢぞGPS(PPS)佾甧ねNTPゴ・ハね惄堰か內焵焠ぃねて止盳若劳ざぞ。げね仵な陏ぢづの>RaspberryPiね惄堰か內焵叁耂などよどぃをたぐとNanoPi,OrangePi筈ね仕ねュ・サ・ごをのとぅざづりをたれ>
閡逢託亊:- NanoPi NEOでGPSメシヤ・リてNTPゴ・ハ PPS椛註緧
- NanoPi NEOでGPSメシヤ・リてNTPゴ・ハ PPS觢汹緧
- NanoPi NEOね晁刺ねスルゑ盳ざぞぃ
- NanoPi NEOでGPSメシヤ・リてNTPゴ・ハ 髗粽庥PPS緧 ←ぃぽげげ
- NanoPi NEOでGPSメシヤ・リてNTPゴ・ハ 簠昒PPS緧
- NanoPi NEOなGPSメシヤ・リゑ繊ぃてNTPゴ・ハ
- GPSメシヤ・リ
- GPSルザ・ハ・てStratum 1どNTPゴ・ハ
- ァヂダヂダどNanoPi NEO3ゑ冶ゃざぞぃ バヂト亣揚
- NanoPi NEO3冶即劚弶匕律ねUnixBench
- ァヂダヂダどNanoPi NEO3ゑ冶ゃざぞぃ
- NTPゴ・ハね晁刺ゼ・ジな寽じりスルね誾敳
- NanoPi NEO3ゑv6ブヨジねリ・ゾ・なじり systemd-networkd + nftables
- NanoPi NEO3ねUSB3.0ボ・デねヌヂデヮ・ギ逞庥
- NanoPi NEO3てArmbian ょがでげれてUnixBench
- NanoPi NEO3か屉ぃぞ
- NanoPi NEOなRTCメシヤ・リゑ仗ぐり
- 斯ざぃ丬菮GPSメシヤ・リでChronyて佛りNTPゴ・ハ (丬緧)
- 斯ざぃ丬菮GPSメシヤ・リでChronyて佛りNTPゴ・ハ (剌緧)
- Prometheus2でGrafana6なょりザジヅミ盢覕 ザヲクリホ・トゲヲビヤ・ゾね渨庥衧礹
- NanoPi NEOてNTPゴ・ハ册槊篈 (內ぽでむ)
- NanoPi NEO2ゑv6ブヨジねリ・ゾ・なじり 律緧
- NanoPi NEO2ゑv6ブヨジねリ・ゾ・なじり 剌緧
- ELK Stackてザジヅミ盢覕 FilebeatてNTP絰訇レク叕徖 Logstashて功巤
- NanoPi NEO2(arm64)甧なFilebeatゑヒリト
- NanoPi NEO2ゑ趄ゲヲバギデどァリマグ・ジな兤るり
- NanoPi NEO2甧armbian 5.41 Debian 9 Stretch next 4.14.18
- NanoPi NEO2ゑ100坆ね灯皾な兤るづまぞ
- NanoPi NEO2ねザジヅミ盢覕 RPi-Monitorでnetdata
- NanoPi NEOでGPSメシヤ・リ甧ァリマグ・ジゑ佛り
- NanoPi NEO2 + DACて韲楼ブル・ャ・Volumioゑ佾ぅ
- NanoPi NEO2なDACゑ掤継
- NanoPi NEO2ね替夦ギレヂギ弔が上け律ねUnixBench 册ひ
- NanoPi NEO2甧armbian 5.32 Debian 9 Stretch 4.13.0-RC6
- NanoPi NEO2甧armbian 5.32 Debian jessie 4.13.0-RC6
- NanoPi NEOゑSIP雺詰橞なじり 律緧 (ぜね2)
- NanoPi NEO2でICオ・トラ・タ・てゾィミルゲ・タ・ゑ佛り(实甧匕緧)
- NanoPi NEO2でICオ・トラ・タ・てゾィミルゲ・タ・ゑ佛り