Como obter tempo estável em um SAMP5D3 xPlained Atmel

3

Eu estou executando o Debian Jessie a partir de um sdcard em um SBC SAMA5D3 xPlained da Atmel. Eu tenho um programa python que amostras de outro dispositivo via linha serial. Disse dispositivo tem um relógio de contagem regressiva 20s bastante confiável. Eu achei que os tempos de ciclo calculados estavam se movendo um pouco.

Isso levou à descoberta de que systemd-timesyncd estava ajustando o clock em 0.5s-1.0s a cada 32s. Não parece ajustar o tickrate, mas continua compensando. Desde que é muito, nunca recua e continua batendo a cada 32s. Descobri que os pacotes ntp completos e o openntpd se comportavam de maneira semelhante.

Então eu desliguei o systemd-timesyncd. E descobri que naquele momento eu estava perdendo cerca de 1,5s por minuto.

Isso me levou a instalar o ntpdate e o adjtimex. Eu escrevi um cron job que fazia um ntpdate a cada 10 minutos e registrava esses resultados em um arquivo. Usando a equação

tickAdjust = ntpAdjustmentMilliseconds / 10minutes

Eu poderia usar o adjtimex -t para ajustar o valor do tick. Com um valor de 10158, as atualizações de 10 minutos ficaram muito pequenas, pairando em ambos os lados de 0.

Então, minha pergunta neste momento é: o que fazer? Eu aprendi um pouco sobre Linux e tempo, mas parece que tenho mais perguntas agora. Eu não sei se esse valor de 10158 é apenas lá fora ou aceitável? Devo apenas escrever um pequeno programa python que analisa meus logs e faz como eu fiz manualmente? Por que é tão desordenadamente inicialmente que systemd-timesyncd não pode ajustá-lo? Meu kernel está apontando para a fonte certa de relógio? O guia do usuário diz que há dois relógios do processador, mas o seguinte mostra 3:

# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
> tcb_clksrc pit jiffies 

Como eles se relacionam? Eu brinquei com a mudança da fonte do relógio, mas não parecia mudar nada, por quê? Onde está o relógio do sistema e o relógio do hardware em tudo isso? O hardware rtc é usado?

Eu não tenho medo de apenas "rolar por conta própria" usando ntpdate e adjtimex, mas eu sinto que não tenho uma boa compreensão de como o tempo estável deve realmente ser realizado.

    
por Travis Griggs 02.02.2015 / 18:59

0 respostas