URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93992
[ Назад ]

Исходное сообщение
"Свой источник времени для синхронизации ntp"

Отправлено axel101 , 05-Ноя-12 16:55 
Понадобилось синхронизировать сервер с внешним источником времени (устройство, которое только разрабатывается). Решил использовать драйвер 20 "Generic NMEA GPS Receiver" в качестве источника синхронизации ntp (поскольку устройство только разрабатывается, можно выбрать любой протокол).
Для пробы написал небольшой скрипт, который в com-порт каждую секунду генерирует строки в соответствии с документацией. Использовал режим GPRMC.
Генерируемые строки:
$GPRMC,174509,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*78
$GPRMC,174510,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*70
$GPRMC,174512,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*72
$GPRMC,174513,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*73

Соответственно каждая строка заканчивается <cr><ln>
Остальные параметры брал из примера википедии. Пробовал так же пропустить остальные параметры (просто запятые подряд), пробвал убрать контрольную сумму (в доке на драйвер написано что она опциональная), резальтат один, логи ntp говорят:

5 Nov 12:44:45 ntpd[1135]: clock GPS_NMEA(0) event 'clk_badtime' (0x06)

ntpq говорит:

ntpq> cv
assID=0 status=0606 clk_badtime, last_clk_badtime,
device="NMEA GPS Clock",
timecode="$GPRMC,174513,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*73",
poll=2, noreply=0, badformat=0, baddata=26, fudgetime1=0.000, stratum=0,
refid=GPS, flags=0

Пробовал использовать режим GPGLL, тоже самое


Содержание

Сообщения в этом обсуждении
"Свой источник времени для синхронизации ntp"
Отправлено LSTemp , 05-Ноя-12 17:15 
>[оверквотинг удален]
> Генерируемые строки:
> $GPRMC,174509,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*78
> $GPRMC,174510,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*70
> $GPRMC,174512,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*72
> $GPRMC,174513,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*73
> Соответственно каждая строка заканчивается <cr><ln>
> Остальные параметры брал из примера википедии. Пробовал так же пропустить остальные параметры
> (просто запятые подряд), пробвал убрать контрольную сумму (в доке на драйвер
> написано что она опциональная), резальтат один, логи ntp говорят:
> 5 Nov 12:44:45 ntpd[1135]: clock GPS_NMEA(0) event 'clk_badtime' (0x06)

звучит банально, но: почитать RFC вместо вики?


> ntpq говорит:
> ntpq> cv
> assID=0 status=0606 clk_badtime, last_clk_badtime,
> device="NMEA GPS Clock",
> timecode="$GPRMC,174513,A,5542.23,N,03741.60,E,0.6,2.2,051112,1.1,E*73",
> poll=2, noreply=0, badformat=0, baddata=26, fudgetime1=0.000, stratum=0,
> refid=GPS, flags=0
> Пробовал использовать режим GPGLL, тоже самое


"Свой источник времени для синхронизации ntp"
Отправлено axel101 , 05-Ноя-12 17:41 
> звучит банально, но: почитать RFC вместо вики?

Хм, вобщем-то я читал документацию на драйвер 20 отсюда: http://www.fifi.org/doc/ntp-doc/html/driver20.htm

Разночтений не нашёл
RFC не читал, спасибо, прочитаю :)


"Свой источник времени для синхронизации ntp"
Отправлено PavelR , 06-Ноя-12 06:12 
>> звучит банально, но: почитать RFC вместо вики?
> Хм, вобщем-то я читал документацию на драйвер 20 отсюда: http://www.fifi.org/doc/ntp-doc/html/driver20.htm
> Разночтений не нашёл
> RFC не читал, спасибо, прочитаю :)

потом можно будет почитать исходник парсера ntp


"Свой источник времени для синхронизации ntp"
Отправлено axel101 , 06-Ноя-12 11:49 
Вобщем Дело оказалось вовсе не в этом.
ntp ругался в случае если время на GPS сильно уходило вперёд (4 часа)