Como posso verificar se meu daemon NTP possui suporte ao PPS?

3

Eu já li sobre compilação de NTP com timepps.h fornecido para obter suporte do PPS. Existe uma maneira fácil de verificar a versão já pré-compilada ou melhor instalada de um repositório ( Ubuntu 14.04.1, Kernel 3.13.0-37 ) para suporte a PPS?

EDITAR alguns googles depois ...

Inseri isso na minha /etc/ntp.conf e reinicie o ntpd. Parece que esta configuração está correta? Estou usando isso Placa de fuga GPS em /dev/ttyS0. De acordo com documentação isso deve satisfazer o GPS com o PPS. Baudrate é 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

Passei algum tempo para que funcionasse porque o apparmor bloqueou o ntpd para abrir a porta serial. Eu percebi isso do syslos. Por isso, adicionei esta linha a /etc/apparmor.d/tunables/ntpd. Então funcionou.

@{NTPD_DEVICE}="/dev/ttyS0"

As permissões nos dispositivos são

$ 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)

Para conseguir isso permanentemente eu criei alguns udev regras. Considerando que o comando setserial parece não ter efeito se eu verificar o porto com setserial -a /dev/ttyS0 após a inicialização do sistema.

$ 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"

Depois disso eu tive que deletar /var/lib/ntp/ntp.conf.dhcp uma vez. Porque é derivado de /etc/ntp.conf em qualquer evento DHCP ou apenas reinicialize. Por isso, irá gerar um novo na inicialização.

Ainda preciso de 127.127.22. * Entrada (driver ATOM PPS)? Porque como afirmado no documentação se eu usar flag1=1 PPS será usado implicitamente? Não, funciona apenas com o GPS NMEA (127.127.20.u).

Minha saída de ntpq -p é agora

     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

Para o suporte de relógio ATOM, tenho que compilar o ntp com o suporte de relógio ATOM ativado.

wenzul
fonte

Respostas:

0

Por que não facilitar a tarefa e tentar usar a funcionalidade do PPS? Edite seu arquivo de configuração e inclua o sinalizador PPS relevante e inicie o ntpd. Isso parece tão óbvio que não tenho certeza se estou sentindo falta de uma restrição.

Não está claro para mim o que você quer dizer com "versão instalada de um repositório"? Você quer dizer distribuição de linux? Se você fizer a resposta, sim, mas depende de qual distribuição você está usando. Mas apenas tentar usar o PPS parece ser o melhor teste.

Reconstruindo o ntp com suporte ao PPS

Depois de verificar se o dispositivo GPS está configurado corretamente, você pode reconstruir o ntp com suporte a pps por:

 # 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 

Para evitar que o apt não instale uma nova versão, novamente sem o suporte de relógio ATOM, use

 # echo ntp hold  | dpkg --set-selections
dfc
fonte
Obrigado pela resposta. Eu quis dizer Ubuntu & gt; = 14.04.1 repositório. Ok, estou esperando uma mensagem de erro se o NTP não puder suportar o PPS?
wenzul
Eu não acho que o PPS está habilitado por padrão com o Ubuntu. Você pode adicionar a saída de ntpq -pcrv para você pergunta? Se o GPS não estiver aparecendo, provavelmente significa que você tem um problema com a configuração do dispositivo serial. O usuário ntp no grupo de discagem ou qualquer outro grupo possui pps0 e porta serial? Vou adicionar instruções para reconstruir o ntp com o pps.
dfc
1
O PPS não está ativado. O asterisco ao lado do GPS seria um o O static-ip.blah imprime o PPS porque ele é sincronizado com uma fonte PPS.
dfc
Construindo fez isto! Muito obrigado. Agora aparece oGPS_NMEA(0). Obrigado pelas etapas de construção acima! Tornou a vida mais fácil. A compilação falhou em uma impressão de depuração em refclock_jupiter.c. Corrigido, então funcionou. Depois de definir o horário2 o apareceu. Então eu não preciso de um extra PPS Clock Discipline entrada em ntp.conf certo? Além disso, devo usar borda de subida ou descida (flag2)? E devo usar o clock do ntp ou a disciplina do kernel? Eu li que a disciplina de clock min / maxpoll 4 e ntp é melhor que os kernels devido a um algoritmo mediano.
wenzul
Eu respondi uma série de perguntas do ntp para você e você não marcou nada como aceito. Em vez de ampliar o foco desta questão, marque-a como aceita se eu tiver respondido à sua pergunta sobre como verificar o suporte do PPS e como construir com o suporte do PPS. Se você tiver outras dúvidas, faça um novo post e terei prazer em ajudar.
dfc