Percebo que, como o Raspberry Pi não possui um relógio em tempo real de hardware, alguns problemas com cronometragem precisa podem se apresentar, mesmo quando a persistência nas reinicializações não é um requisito .
Isso pode ser mitigado pela execução de um daemon NTP que corrigirá continuamente a hora local, mas o NTP não é uma opção se o Raspberry Pi não estiver conectado a uma rede.
Portanto, se eu deixar um Raspberry Pi ativado com horário preciso no início, quanto devo esperar que o tempo relatado seja desviado do horário local real?
E entre as reinicializações?
raspbian
timekeeping
system-clock
SDsolar
fonte
fonte
Respostas:
Existem realmente duas questões:
1) A precisão do próprio oscilador - que possui variáveis como exclusividade, idade, temperatura, etc.
2) Se houver algo que possa causar erros de contagem de tempo em relação ao oscilador de cristal. Seriam coisas como interrupções perdidas ou problemas de transição se o relógio usado fosse depois de um multiplicador de PLL - ou afetado pela aceleração do relógio (se for usado).
Aliás, o NTP, a menos que seja muito bem implementado, pode piorar o tempo auto-relativo preciso a curto prazo, pois significa que o relógio local pode ser alterado para ser consistente com uma autoridade externa, em vez de permanecer consistente consigo mesmo.
fonte
Vai depender do cristal que eles usaram, talvez 10ppm ou mais. Você não pode realmente contar com isso, a menos que seja especificado em algum lugar. Você poderá usar o GPS se não estiver conectado a uma rede. Caso contrário, um chip RTC pode ser adicionado.
Você precisará de algo melhor do que apenas o tempo do software, se houver uma chance de o RPi perder energia ou travar.
Espero estar ligando um RTC ao GPIO em breve
fonte
Interpretando a pergunta a ser feita sobre um Raspberry Pi executando o Raspbian.
O sistema operacional é a influência dominante em como o Rapberry Pi mantém o tempo.
Resposta: Sem uma fonte externa, o relógio interno é altamente imprevisível em termos de manter o tempo por conta própria.
Estudos de caso recentes:
Este é um gráfico de um datalogger Raspberry Pi 3 B que de repente perdeu a energia da rede elétrica por cerca de uma hora:
Você pode ver claramente que, quando a energia foi ligada, ela inicializou e reiniciou o registro de dados.
Mas o relógio Raspbian volta no tempo.
Então você pode vê-lo pular para a hora correta assim que receber uma atualização de time.nist.gov
Como configuro o Raspbian para usar o servidor de horário primário time.nist.gov?
Aqui está uma nova plotagem do mesmo sistema novamente.
Como ele foi interrompido ontem (veja a plotagem acima), eu costumava
sudo init 0
desligá-lo corretamente, para criar uma imagem do cartão SD com o Win32DiskImager em um PC.Demora um pouco, como pode ser visto aqui.
Neste, você pode ver o Raspbian reiniciar o relógio exatamente onde parou. Parece que registrou bons dados (sobe) em um minuto.
Em seguida, mostra o que acontece quando recebe a atualização de horário. Salta para a direita.
A quantidade que ele salta para frente (algumas horas) é o tempo que Raspbian perdeu enquanto o cartão SD estava sendo fotografado.
Aqui está uma reviravolta surpreendente.
O sistema simplesmente congelou. Luzes vermelhas e verdes acesas, sem tremulações.
Anunciado (usando
espeak
) em questão de minutos pelo trabalho cron baseado em ping do servidor principal, que monitora os registradores de dados apenas para essa ocorrência. Portanto, não demorou mais do que alguns minutos.Energia puxada por alguns segundos. Reinicializei - os LEDs parecem normais.
Aqui está como essa falha afetou o registro de dados:
O relógio Raspbian avançou duas horas quando o sistema foi reiniciado.
Em seguida, a atualização de tempo de time.nist.gov o redefine.
Resposta: Sem uma fonte externa, o relógio interno é imprevisível em termos de manter o Tempo Real por conta própria.
Como configuro o Raspbian para usar o servidor de horário primário time.nist.gov?
fonte