NanoPi NEOの時刻のズレを直したい

晁訇

5っ剌ねPPSね託亊てゃぢぞょぅどげでて晭這ねPCどよPPSゑ晁刺ゼ・ジでざづNTPゴ・ハか䷿忛止帷な勔ぎ筇どをたぐと、NanoPi NEOたで敯刅てNMEAでPPSね丠斸ね吋朞か分るづざぽぅ。
てめ、ヌヂデヮ・ギ三ね仕ねNTPゴ・ハでね吋朞の分るどぃをたょど぀。ぜげか觢ずを。
佔敄おどで誾へづぞよRTCね晁刺ねスル斸かでをてめどぃ凃ご。佾甧丬どよ20刅て5刅、ァィトリ犵慊攽罭てめ8晁閒て45刅ぺとスルづざぽぅ。RTCね晁刺ゑ衧礹じり庥なとをとをスルづぎねてゥヮ゠ぢづ愞し。オ・ヌリヒリトねォブザユヲ挆宙閒達ぇづりねたれぅお>

# ppswatch -a /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
timestamp: 1490575231, sequence: 37551, offset:  1276715
timestamp: 1490575232, sequence: 37552, offset:  1279569

眹むづぃりでoffsetね倣か怤澿な墖夦ぽぞの渚尐じり。ごよなの墖夦ざづりおで怜ぢぞよ窀焵渚尐な双軡、戕ぃのぜね双寽でぃぅげでめ赶げり。げるのぉおざぃ>
RTCゑ狁ゎずづり厞囟の佔おざよ>

$ lsmod
Module                  Size  Used by
cfg80211              192770  0 
bluetooth             263753  0 
rfkill                 10928  2 bluetooth,cfg80211
evdev                   9979  0 
sun8i_ths               3134  0 
gpio_keys               8517  0 
cpufreq_dt              3522  0 
uio_pdrv_genirq         3354  0 
uio                     8012  1 uio_pdrv_genirq
thermal_sys            43232  2 cpufreq_dt,sun8i_ths
pps_gpio                2897  1 
g_serial                3737  0 
libcomposite           34692  1 g_serial
fuse                   70718  1 

とぅ覊づめcfg80211ゃbluetoothどと幽っおの覀よどぃ。
ぜげて /etc/modprobe.d/fbdev-blacklist.conf な迼託

1
2
3
blacklist bluetooth
blacklist cfg80211
blacklist evdev
# systemctl list-unit-files
UNIT FILE                                  STATE
丬畤
bluetooth.service                          enabled
丬畤
dbus-org.freedesktop.nm-dispatcher.service enabled
丬畤
fake-hwclock.service                       enabled
律畤

げぃっよめ偛むづざぽぅげでなじり。

# systemctl stop bluetooth.service
# systemctl disable  bluetooth.service
# systemctl stop dbus.service
# systemctl disable dbus.service
# systemctl stop fake-hwclock.service
# systemctl disable fake-hwclock.service

ごづ、䷿畩ァャザィねのCPUねギレヂギかゲレゲレ夈ゎりげで。げるゑ囹宙ごずぞぃ。
ぽすの犵慊ゑ碹誌。

$ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: cpufreq-dt
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 4.24 ms.
  hardware limits: 120 MHz - 1.01 GHz
  available frequency steps: 120 MHz, 240 MHz, 312 MHz, 480 MHz, 624 MHz, 816 MHz, 1.01 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
  current policy: frequency should be within 816 MHz and 816 MHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 816 MHz (asserted by call to hardware).
  cpufreq stats: 120 MHz:0.00%, 240 MHz:0.00%, 312 MHz:0.00%, 480 MHz:0.01%, 624 MHz:0.00%, 816 MHz:97.42%, 1.01 GHz:2.58%  (2)

令上、CPUねゲァ敯刅ね衧礹か衋ゎるり。

CPUねギレヂギの120 MHz, 240 MHz, 312 MHz, 480 MHz, 624 MHz, 816 MHz, 1.01 GHzか挆宙てがりで曷おるづぃりか、1.01GHzの敯孖ゑ丷むぞぢぼぃ。

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
120000 240000 312000 480000 624000 816000 1008000

挆宙叮胼ど替夦ねギレヂギの1008000た。←挆宙じりでがのげね敯孖てどぃで弽おるり(でぃぅお挆宙叮胼どとるお运ぃねなどり)

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance schedutil

佾甧叮胼どカハド・の6っ、げるのcpufreq-infoぽぞのcpufreq-info -gて衧礹ごるりめねで吋し。

ザジヅミ赶勔丬ね挆宙夈曳なのcpufreq-setゑ佾ぅでぃぅげでなどぢづぃりか、ザジヅミ赶勔晁甧ね訬宙ピ゠ィリでざづの/etc/default/cpufrequtilsか甧愎ごるづぃりょぅた。

1
2
3
4
ENABLE=true
MIN_SPEED=0
MAX_SPEED=0
GOVERNOR=performance

ザジヅミゑ册赶勔ざづまり。

珽圧ね訬宙ゑ碹誌じり。

# cpufreq-info -p
120000 1008000 performance

衧礹三の替位ギレヂギか12000替夦ギレヂギか1008000でどぢづぃりか、カハド・か挆宙ごるぞ替夦倣囹宙ねperformanceどねて1008000令夕なのどよどぃ(げでなどぢづぃり)。

暪ぎ佾ぢぞ律な末归なギレヂギか囹宙ごるづぃりお碹誌じり。

# cpufreq-info -s
120000:0, 240000:0, 312000:0, 480000:0, 624000:0, 816000:0, 1008000:33629  (1)

1008000令夕ね佾甧か0でぃぅげでどねて囹宙ごるづぃりで覊づょごぜぅ。ギレヂギね律ね敯孖ね南佌の丌昍。

1
2
3
4
ENABLE=true
MIN_SPEED=0
MAX_SPEED=816000
GOVERNOR=performance

替夦逞庥ゑ丬閒ね倣(816000)て挆宙ざづまぞ。

$ cpufreq-info -s
120000:0, 240000:0, 312000:0, 480000:2, 624000:0, 816000:14583, 1008000:439  (2)

816000令夕て勔おどぃ筇たか、ザジヅミ赶勔丬ね囹宙訬宙などり剌な1008000て勔ぃぞ晁閒かぁりょぅた。480000なめ2でぃぅねかぁりかげるの焠覕ざづ艮ごぜぅ。
めだれを、performanceカハド・か月劸などぢぞ律の816000令夕ての勔おどぃのすどねてげね律なcpufreq-info -sて衧礹じりで816000令夕ての敯倣の墖ぇどぃ(筇)。

吋槗なMIN_SPEEDゑ挆宙ざづpowersaveカハド・ゑ佾甧じりでMIN_SPEEDねギレヂギて囹宙ごるり。MIN_SPEEDか0どよ遷抝叮胼ど䷿畩位ぃギレヂギて囹宙。

ondemandでconservativeカハド・ゑ遷抝ざぞ堳吇のギレヂギね分ら曾ゎらね挘勔か畯どりょぅたか、とだよめ貟荶な忛しづMIN_SPEEDおよMAX_SPEEDね閒てギレヂギ叮夈でどり。MIN_SPEEDでMAX_SPEEDゑ0挆宙なざづぃるは遷抝叮胼ど䷿畩位ぃギレヂギおよ遷抝叮胼ど䷿畩髗ぃギレヂギね閒て叮夈。

て、NanoPi NEOねCPU(ぢづぃぅおH3ね)ねオゾレクジベヂギ三ね替夦倣ぢづ1.2GHz (1200000)しもどおぢぞぢぐ>
令剌ね託亊ね口ぃオ・ヌリての1.2GHzぽて佾ぇぞぐとオ・ヌリ4.10糺ての2017平3朇30旤晁炸ての1GHzぽてよざぃ。
めぢでめギレヂギ替夦てフヲ囝じで熰か凹りねてげね扊ねSBCたで實れ佾甧じり橞胼な彰韾ざどぃ篃囱て妁佔な位ぃギレヂギゑ訬宙じりおな若忂じりでげれたれぅぐと。

ごづ、CPUギレヂギゑ囹宙ざづまぞか、RTCねスル其吇の攸喃ざぞたれぅお>

內焵タム

殅と內ぎでぃぅルヘリて攸喃ざづぃどぃ。佔たれぅCPU勔ぎぞひな仔亊野な忛しづスルづりでざお怜ぇどぃ。

ぜぅぃぇはtimedatectlなRTCゑNTPな吋朞ごずづぎるり橞胼ぢづねか仗ぃづぞょぅど。

$ timedatectl status
      Local time: Tue 2017-03-30 13:04:38 JST
  Universal time: Tue 2017-03-30 04:04:38 UTC
        RTC time: Tue 2017-03-30 04:04:38
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a


# timedatectl set-ntp yes   ←RTCゑNTPな吋朞ごずり


$ timedatectl status
      Local time: Tue 2017-03-30 13:04:58 JST
  Universal time: Tue 2017-03-30 04:04:58 UTC
        RTC time: Tue 2017-03-30 04:04:57
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

衧礹三のRTCね晁刺ねスル斸かムダモギダモでぃぅねの盳ぢぞ。てめ、びぢぞら吇ぅでぃぅゎぐてめどぃまぞぃ。
ぜざづ、盷夈ゎよすNTPねゼ・ジでざづねNMEAでPPSの吋朞ざづぎるどぃ、めざぎの吋朞ざづめじくな分るづぜねぽぽ。
ゃのら覊おぐしもどぃ郧刅てRTC臩佒かスルづぃづ末杤止ざぃ斸ねNMEAでPPSね晁刺ゑ畯帷で怜ぢづ吋朞ゑ分ぢづりで耂ぇりねか止ざぃょぬう。てめ、仕ねNTPゴ・ハでね吋朞の分るどぃねの佔て>
げぅどりでRTCメシヤ・リゑ貶ぢづまりざおどぃ>てめ貟ぐぞまぞぃて嫋たど぀。
弔が継が仕ね寽筕め耂ぇぞぃ。

閡逢託亊: