Получение точного времени через GPS/Glonass/en: различия между версиями

Материал из Wiren Board
(Новая страница: «Getting real time signal via GPS/Glonass»)
 
(Новая страница: «stratum=0, refid=GPSP, flags=1 Then configure NTP as we need to and so on.»)
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
<languages/>
<languages/>
'''Статья носит рекомендательный характер и не предназначена для конечных пользователей.'''
'''The article is advisory in nature and is not intended for ultimate users.'''




Значит что надо сделать чтобы собрать правильный нтп (собирал на виренборде ~)
what to do to get a correct NTP ( ~1 Hour)


Поставить libcap-dev – без него не будет работать нтп с настройками кот по умолчанию в системе и после ребута все сломается и придется через дебаг консоль убирать из загрузки нтп.
To put libcap-dev – without it NTP with settings of a cat by default in system will not work and after a rebut everything will break and it is necessary to clean through debag the console from loading of NTP.
Через apt-get не получилось ставил через dpkg брал тут: https://packages.debian.org/wheezy/armel/libcap-dev/download
Apt-get did not work put using dpkg took here: https://packages.debian.org/wheezy/armel/libcap-dev/download
Качаем отсюда нпт http://www.ntp.org/downloads.html (Production 4.2.8p6)
Swing away NPT http://www.ntp.org/downloads.html (Production 4.2.8p6)
tar zxvf ntp-4.2.8p6.tar.gz
tar zxvf ntp-4.2.8p6.tar.gz
cd ntp-4.2.8p6
cd ntp-4.2.8p6
./configure —enable-linuxcaps # для этого и нужен libcap-dev
./configure —enable-linuxcaps # this is what libcap-dev is for
make
make
make install
make install
service ntp stop
service ntp stop
cp /usr/local/bin/ntp* /usr/bin/ && sudo cp /usr/local/sbin/ntp* /usr/sbin/ #заменяем системный нтп новым улучшенным
cp /usr/local/bin/ntp* /usr/bin/ && sudo cp /usr/local/sbin/ntp* /usr/sbin/ #system NTP new model improved


Далее настраиваем нтп – надо создать алиалсы для драйвера 20 (https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html)
Now you can set NTP to start aliasy driver 20 (https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html)


vi /etc/udev/rules.d/10-gps.rules  
vi /etc/udev/rules.d/10-gps.rules  
Строка 26: Строка 26:




Можно еще использовать драйвер 22 – нтп + драйвер 20 (нмеа) или 28 (гпсд)
You can still use driver 22 – NTP + driver 20 (NMEA) or 28 (GPSD)
Но 20 и так умеет ппс (flag1 1) и экспериментально я остановился на нем. (https://www.eecis.udel.edu/~mills/ntp/html/refclock.html)
But 20 and so keeps managing PPP (flag1 1) and experimentally I alighted on it. (https://www.eecis.udel.edu/~mills/ntp/html/refclock.html)


Правим /etc/ntp.conf
Edit /etc/ntp.conf


server 127.127.20.0 mode 17 minpoll 4 maxpoll 4 iburst prefer
server 127.127.20.0 mode 17 minpoll 4 maxpoll 4 iburst prefer
Строка 35: Строка 35:
fudge 127.127.20.0 flag1 1 flag2 0 time2 1.0 refid GPSP
fudge 127.127.20.0 flag1 1 flag2 0 time2 1.0 refid GPSP


time2 1.0 - это смещение времени гпс от ппс тк гпс и ппс асинхронны и если нет смещения то нтп отбранкует драйвер 20 – подбирается экспериментально по методике ниже (но думаю что для всех виренбордов 5 будет 1.0 (для пи2 у меня получилось 0.7)) https://support.ntp.org/bin/view/Support/ConfiguringNMEARefclocks
time2 1.0 is a time offset from GPS TK GPS PPP and asynchronous PPP and if there is no offset of the NTP tranchet driver 20 – selected experimentally by the method below (but I think that all firebord 5 will be 1.0 (for PI2 I got 0.7)) https://support.ntp.org/bin/view/Support/ConfiguringNMEARefclocks


if you want a good estimation for fudge time2 (perhaps because PPS is not an option for you) you could use the following procedure:
if you want a good estimation for fudge time2 (perhaps because PPS is not an option for you) you could use the following procedure:
Строка 46: Строка 46:




Перезагружаемся и смотрим что есть наши алиасы
Reboot and see what our aliases are


root@wirenboard:~# ls /dev/gps*   
root@wirenboard:~# ls /dev/gps*   


/dev/gps0  /dev/gpspps0
/dev/gps0  /dev/gpspps0


Далее ждем минут 10 и ntpq -nc peer -c as -c rl
Next, wait for 10 minutes and ntpq -nc peer -c as -c rl
Буква о у 127.127.20.0 – значит что последняя синхронизации с ппс (http://citrin.ru/net:ntpq)
The letter o at 127.127.20.0 means that the last sync with PPP (http://citrin.ru/net:ntpq)


root@wirenboard:~#  ntpq -nc peer -c as -c rl
root@wirenboard:~#  ntpq -nc peer -c as -c rl
Строка 102: Строка 103:
clk_jitter=0.008, clk_wander=0.000
clk_jitter=0.008, clk_wander=0.000


Это чтобы посмотреть ошибки и что выдает гпс
This is to view mistakes and that gives GPS


root@wirenboard:~# ntpq -c clockvar
root@wirenboard:~# ntpq -c clockvar
Строка 117: Строка 118:
Дальше настраиваем нтп как нам надо – кому что можно откуда и так далее.
Then configure NTP as we need to and so on.

Текущая версия на 14:58, 3 июля 2019

Другие языки:

The article is advisory in nature and is not intended for ultimate users.


what to do to get a correct NTP ( ~1 Hour)

To put libcap-dev – without it NTP with settings of a cat by default in system will not work and after a rebut everything will break and it is necessary to clean through debag the console from loading of NTP. Apt-get did not work – put using dpkg took here: https://packages.debian.org/wheezy/armel/libcap-dev/download Swing away NPT http://www.ntp.org/downloads.html (Production 4.2.8p6) tar zxvf ntp-4.2.8p6.tar.gz cd ntp-4.2.8p6 ./configure —enable-linuxcaps # this is what libcap-dev is for make make install service ntp stop cp /usr/local/bin/ntp* /usr/bin/ && sudo cp /usr/local/sbin/ntp* /usr/sbin/ #system NTP new model improved

Now you can set NTP to start aliasy driver 20 (https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html)

vi /etc/udev/rules.d/10-gps.rules


KERNEL=="ttyAPP2",NAME="%k",SYMLINK+="gps0",MODE="0660",GROUP="ntp"

KERNEL==“pps0",NAME="%k",SYMLINK+="gpspps0",MODE="0660",GROUP="ntp"


You can still use driver 22 – NTP + driver 20 (NMEA) or 28 (GPSD) But 20 and so keeps managing PPP (flag1 1) and experimentally I alighted on it. (https://www.eecis.udel.edu/~mills/ntp/html/refclock.html)

Edit /etc/ntp.conf

server 127.127.20.0 mode 17 minpoll 4 maxpoll 4 iburst prefer

fudge 127.127.20.0 flag1 1 flag2 0 time2 1.0 refid GPSP

time2 1.0 is a time offset from GPS TK GPS PPP and asynchronous PPP and if there is no offset of the NTP tranchet driver 20 – selected experimentally by the method below (but I think that all firebord 5 will be 1.0 (for PI2 I got 0.7)) https://support.ntp.org/bin/view/Support/ConfiguringNMEARefclocks

if you want a good estimation for fudge time2 (perhaps because PPS is not an option for you) you could use the following procedure:

   Switch off the PPS processing for the NMEA driver and mark the clock as noselect. Set the fudge time2 to zero. Add a few good public time servers or another clock; here in Germany I can use my DCF77 radio clock for that purpose. Disable all output sentences of the GPS18x LVC but the GPRMC sentence.
   Restart the daemon and watch the offset for the NMEA clock. When the value gets stable, use the absolute value of the offset as fudge time2 for the NMEA driver.
   Optionally restart ntpd and verify that the offset remains small. Note the jitter, which is probably in the order of 5-10msec. If the offset is small enough (better than 2ms is doable, but takes a long time to stabilise), go to the next step. Otherwise fine-tune fudge time2 and repeat this step.
   Enable PPS processing again if you can. After restarting ntpd jitter and offset should decrease rather fast.
   Finally, remove the noselect statement and enjoy your fast-locking NMEA clock with a Garmin GPS18x LVC!


Reboot and see what our aliases are

root@wirenboard:~# ls /dev/gps*


/dev/gps0 /dev/gpspps0

Next, wait for 10 minutes and ntpq -nc peer -c as -c rl The letter o at 127.127.20.0 means that the last sync with PPP (http://citrin.ru/net:ntpq)

root@wirenboard:~# ntpq -nc peer -c as -c rl

    remote           refid      st t when poll reach   delay   offset  jitter
==================================================================

o127.127.20.0 .GPSP. 0 l 8 16 377 0.000 0.000 0.008

  • 185.22.60.71 212.20.50.208 2 u 21 64 377 3.510 -0.048 0.132

+95.104.192.10 194.190.168.1 2 u 55 64 377 18.911 -1.880 0.093

-144.76.115.197 131.188.3.221 2 u 4 64 377 51.630 -6.302 0.509

+89.111.54.85 194.29.130.252 2 u 46 64 377 25.978 0.225 0.088


ind assid status conf reach auth condition last_event cnt

===============================================
 1 30454  974a   yes   yes  none  pps.peer    sys_peer  4
 2 30455  963a   yes   yes  none  sys.peer    sys_peer  3
 3 30456  9424   yes   yes  none candidate   reachable  2
 4 30457  933d   yes   yes  none   outlier              3
 5 30458  943a   yes   yes  none candidate    sys_peer  3

associd=0 status=0415 leap_none, sync_uhf_radio, 1 event, clock_sync,

version="ntpd 4.2.8p6@1.3265 Wed Apr 6 16:13:39 UTC 2016 (2)",

processor="armv5tejl", system="Linux/4.1.15-imxv5-x0.1", leap=00,

stratum=1, precision=-17, rootdelay=0.000, rootdisp=1.120, refid=GPSP,

reftime=dab9e00e.9c7d01b8 Thu, Apr 14 2016 9:23:26.611,

clock=dab9e016.a2b1d422 Thu, Apr 14 2016 9:23:34.635, peer=30454, tc=4,

mintc=3, offset=0.000121, frequency=91.858, sys_jitter=0.007629,

clk_jitter=0.008, clk_wander=0.000

This is to view mistakes and that gives GPS

root@wirenboard:~# ntpq -c clockvar

associd=0 status=0011 1 event, clk_no_reply,

device="NMEA GPS Clock",

timecode="$GNRMC,092359.000,A,5549.0526,N,03735.1798,E,0.00,172.16,140416,,,A*78",

poll=3426, noreply=1, badformat=0, baddata=0, fudgetime2=1000.000,

stratum=0, refid=GPSP, flags=1


Then configure NTP as we need to and so on.