Как я могу проверить, поддерживает ли мой демон NTP PPS?

4544
wenzul

Я уже читал о компиляции NTP с помощью timepps.h, чтобы получить поддержку PPS. Есть ли простой способ проверить уже скомпилированную или скорее установленную версию репозитория ( Ubuntu 14.04.1, Kernel 3.13.0-37 ) на поддержку PPS?

РЕДАКТИРОВАТЬ некоторые гугл позже ...

Я вставил это в мой /etc/ntp.confи перезапустить ntpd. Кажется, эта конфигурация будет правильной? Я использую этот GPS прорыва доски на /dev/ttyS0. Согласно документации это должно удовлетворить GPS с PPS. Бодрейт составляет 9600 .

server 127.127.20.0 mode 18 minpoll 4 iburst prefer true fudge 127.127.20.0 flag1 1 flag2 0 flag3 1 flag4 1 

Я потратил некоторое время, чтобы заставить его работать, потому что apparmor заблокировал ntpd, открыв последовательный порт. Я понял это из syslos. Поэтому я добавил эту строку в /etc/apparmor.d/tunables/ntpd. Тогда это сработало.

@="/dev/ttyS0" 

Разрешения на устройства

$ ll /dev/ttyS0 /dev/pps* /dev/gps* lrwxrwxrwx 1 root root 5 Okt 18 23:00 /dev/gps0 -> ttyS0 lrwxrwxrwx 1 root root 4 Okt 18 23:00 /dev/gpspps0 -> pps0 crw-rw-rw- 1 root dialout 251, 0 Okt 18 23:00 /dev/pps0 crw-rw-rw- 1 root dialout 4, 64 Okt 18 23:09 /dev/ttyS0 $ id ntp uid=106(ntp) gid=113(ntp) Gruppen=113(ntp),20(dialout) 

Чтобы достичь этого навсегда, я создал несколько правил udev . Принимая во внимание, что команда setserial, кажется, не вступает в силу, если я проверяю порт setserial -a /dev/ttyS0после загрузки системы.

$ cat /etc/udev/rules.d/09-pps.rules # Provide a symlink to /dev/ttyS0 and set low_latency for latency improvement KERNEL=="ttyS0", SYMLINK+="gps0", MODE="0666" KERNEL=="ttyS0", RUN+="/bin/setserial /dev/%k low_latency" KERNEL=="ttyS0", RUN+="/usr/sbin/ldattach pps /dev/%k"  # Symlink /dev/pps0 to /dev/gpspps0 KERNEL=="pps0", SUBSYSTEM=="pps", DRIVER=="", SYMLINK+="gpspps0" KERNEL=="pps0", GROUP="dialout" KERNEL=="pps0", MODE="0666" 

После этого мне пришлось /var/lib/ntp/ntp.conf.dhcpодин раз удалить . Потому что он получается из /etc/ntp.confлюбого события DHCP или просто перезагрузки. Таким образом, он будет генерировать новый при запуске.

Нужно ли мне еще вход 127.127.22. * (Драйвер ATOM PPS)? Потому что, как указано в документации, если я использую flag1=1PPS будет использоваться неявно? Нет, он работает только с GPS NMEA (127.127.20.u).

Мой вывод ntpq -pсейчас

 remote refid st t when poll reach delay offset jitter ============================================================================== -fritz.box 185.31.136.34 3 u 36 64 177 0.298 4.496 0.076 *arcticfox.dorid 192.53.103.104 2 u 43 64 177 14.125 2.041 1.307 +monitman.com 158.43.128.33 2 u 44 64 177 25.325 4.703 0.314 +spacys.de 212.82.32.15 2 u 43 64 177 24.156 -1.503 2.094 -cse-server.com 122.227.206.195 3 u 38 64 177 24.372 -3.421 0.618 oGPS_NMEA(0) .GPS. 0 l 1 16 377 0.000 -0.270 0.024 

Для поддержки часов ATOM я должен скомпилировать ntp с включенной поддержкой часов ATOM.

3

1 ответ на вопрос

0
dfc

Почему бы не облегчить себе задачу и не попытаться использовать функциональность PPS. Отредактируйте ваш конфигурационный файл и включите соответствующий флаг PPS и запустите ntpd. Это кажется настолько очевидным, что я не уверен, что мне не хватает ограничений.

Мне не понятно, что вы подразумеваете под "установленной версией репозитория"? Вы имеете в виду дистрибутив Linux? Если вы ответите «да», это зависит от используемого вами дистрибутива. Но просто попытка использовать PPS кажется лучшим тестом.

Восстановление NTP с поддержкой PPS

Убедившись, что у вас настроено устройство gps, вы можете перестроить ntp с поддержкой pps:

 # apt-get build-dep ntp # apt-get install pps-tools ubuntu-dev-tools # apt-get source ntp # cd <The ntp version directory something like ntp-4.2.6.p5+dfsg > # dpkg-buildpackage -uc -us -nc  # dpkg -i ../ntp*.deb  

Чтобы избежать того, что apt не установит новую версию, опять же без поддержки часов ATOM, используйте

 # echo ntp hold | dpkg --set-selections 
Спасибо за ответ. Я имел ввиду Ubuntu> = 14.04.1 репозиторий. Итак, я ожидаю сообщение об ошибке, если NTP не может поддерживать PPS? wenzul 9 лет назад 0
Я не думаю, что PPS включен по умолчанию с Ubuntu. Можете ли вы добавить вывод `ntpq -pcrv` к вашему вопросу? Если GPS не отображается вообще, это, скорее всего, означает, что у вас есть проблемы с вашей конфигурацией последовательного устройства. Является ли пользователь ntp в группе дозвона или какой-либо другой группе принадлежит pps0 и последовательный порт? Я добавлю инструкции по перестройке ntp с pps. dfc 9 лет назад 0
PPS не включен. Звездочкой рядом с GPS будет `o`. Static-ip.blah печатает PPS, потому что он синхронизируется с источником PPS. dfc 9 лет назад 1
Строительство сделал это! Большое спасибо. Теперь появляется `oGPS_NMEA (0)`. Спасибо за шаги сборки выше! Сделал жизнь проще. Сбой компиляции при отладочной печати в refclock_jupiter.c. Исправил это, тогда это работало. После того как я установил time2 `o` появилось. Так что мне не нужна дополнительная запись PPS Clock Discipline в _ntp.conf_ верно? Кроме того, я должен использовать падающий или нарастающий фронт (flag2)? И я должен использовать часы ntp или дисциплину ядра? Я читал, что min / maxpoll 4 и тактовая частота ntp лучше, чем ядра благодаря срединному алгоритму. wenzul 9 лет назад 0
Я ответил на ряд вопросов NTP для вас, и вы не пометили их как принятые. Вместо того, чтобы расширять фокус этого вопроса, отметьте его как принятый, если я отвечу на ваш вопрос о проверке поддержки PPS и или о том, как создавать с поддержкой PPS. Если у вас есть другие вопросы, пожалуйста, создайте новое сообщение, и я буду рад помочь. dfc 9 лет назад 0
Спасибо. Вы правы, на вопрос был дан ответ. Я открою последний в теме выдумки. wenzul 9 лет назад 0