Question:
Ai-je besoin d'un RTC si mon Raspberry Pi est connecté en permanence à Internet?
ON5MF Jurgen
2018-02-21 01:48:38 UTC
view on stackexchange narkive permalink

Quelle serait la précision de l'heure de mon Raspberry Pi 3 s'il est connecté en permanence à Internet, mais sans RTC?

Je n'ai pas de réponse précise pour l'instant, mais c'est bien mieux qu'une seconde. De quelle précision avez-vous besoin?
Une précision d'environ 1 seconde serait suffisante.
Le RTC n'est pas utilisé pour le chronométrage lorsque le système est en marche. C'est une lecture hwclock au démarrage et une écriture hwclock à l'arrêt. Lorsque le système est en marche, HPET ou d'autres minuteries CPU sont utilisés, ils sont beaucoup plus précis.
Cinq réponses:
crasic
2018-02-21 02:56:01 UTC
view on stackexchange narkive permalink

Comme le protocole NTP tente de mesurer et de compenser la latence du réseau et d'autres retards, il est très précis même lors de l'utilisation de serveurs horaires publics.

RTC est utilisé pour maintenir l'heure du système lorsque l'alimentation est coupée, et il n'est même pas nécessairement précis, une fois que votre raspberry PI a démarré et reçu l'heure de NTP il continuera à compter le temps sans RTC même si le réseau est déconnecté.

Lorsque vous utilisez NTP , vous ne synchronisez pas en permanence avec le réseau, l'heure du système est maintenue avec une minuterie basée sur l'horloge du processeur.


Lorsqu'il est exécuté avec un serveur de temps de réseau local, NTP peut atteindre une précision de <1ms.

Lorsqu'il est exécuté sur l'Internet public, le routage dynamique et potentiellement asymétrique des paquets contribue à une estimation plus médiocre des retards du réseau. Cependant, vous pouvez vous attendre à une précision bien inférieure à 1s , la plupart des documents affirmant une précision de 100 ms sur l'Internet public.

Si vous avez besoin d'une meilleure synchronisation, sans une meilleure précision, vous pouvez envisager d'exécuter un serveur NTP local pour synchroniser plusieurs raspberry pi les uns par rapport aux autres avec une synchronisation meilleure que 1ms (bon pour aligner les données du capteur).

Si vous avez besoin à la fois de précision et de synchronisation, vous pouvez exécuter un serveur NTP Stratum 1 en utilisant le GPS comme source de temps.

En fait, sur une bonne connexion Internet, l'erreur se situe généralement en millisecondes à un chiffre. Ces spécifications datent de l'époque où les ordinateurs et les connexions réseau étaient tous deux un peu plus lents.
goldilocks
2018-02-21 02:53:48 UTC
view on stackexchange narkive permalink

Selon wikipedia, le Network Time Protocol utilisé par défaut sur Raspbian et des millions d'autres appareils et ordinateurs en réseau:

est destiné à synchroniser tous les ordinateurs participants avec en quelques millisecondes

En fait, NTP est utilisé sur les systèmes (serveurs, PC, etc.) qui ont un RTC afin de corriger la dérive des horloges informatiques. Cela signifie que si vous ajoutiez un RTC, il resterait précis en utilisant exactement les mêmes mécanismes de réseau que ceux déjà utilisés pour régler l'horloge «logicielle» du système d'exploitation (qui, de manière réaliste, est liée à la fréquence du processeur, c'est-à-dire qu'il y a du cristal dedans quelque part qui garde effectivement l'heure lorsque le système est allumé).

R.. GitHub STOP HELPING ICE
2018-02-21 06:13:17 UTC
view on stackexchange narkive permalink

La présence ou l'absence de RTC n'a rien à voir avec la précision du chronométrage. Il s'agit simplement de pouvoir conserver (une mauvaise approximation de) l'heure actuelle pendant que l'appareil est éteint afin que l'heure système soit correcte avant d'afficher le périphérique réseau et ntpd.

Notez que si vous voulez une source d'horloge distante sécurisée plutôt que ntp simple, vous aurez besoin de connaître une idée approximative de l'heure actuelle (précise à l'échelle du mois) afin de valider les certificats; c'est probablement le principal objectif moderne d'un RTC sur les appareils connectés à Internet.

Tribmos
2018-02-22 04:00:54 UTC
view on stackexchange narkive permalink

Après avoir fait des expériences avec C ++ sur mon RPI3 (Stretch) en utilisant la fonction sys / time.h gettimeofday (**) et l'API de câblagePi, puis en mesurant par rapport à un champ d'application, les applications rationalisées peuvent obtenir une résolution et une précision inférieures à la milliseconde.

Maintenant, si vous utilisez d'autres langues sur le RPI, vous ne pourrez peut-être pas obtenir ces vitesses.

Chris H
2018-02-21 03:55:14 UTC
view on stackexchange narkive permalink

Nous obtenons une précision meilleure qu'une seconde sur plusieurs unités en utilisant un serveur NTP public de l'autre côté d'un réseau complexe et chargé. Nous n'avons également besoin que d'une précision de l'ordre de 1s (que l'horloge système peut maintenir pendant des jours lorsqu'elle est sous tension).

Consultez la page de manuel ntpd, mais après avoir configuré un serveur , vous assurer que ntpd -g s'exécute au démarrage devrait être tout ce dont vous avez besoin. Le -g vous ramène au temps réel si l'horloge est sortie, par exemple après une panne de courant.

`chrony` fonctionne bien mieux que` ntpd` sur les systèmes qui peuvent avoir leur connexion aller et venir à tout moment.
@hobbs c'est intéressant. Mieux en quoi? Les miens sont câblés en raison d'un [problème de stockage des mots de passe] (https://unix.stackexchange.com/q/242811/47326) et la connexion est fiable. En fait, ils sont plus susceptibles de perdre de l'énergie que le réseau, mais des ralentissements se produisent parfois.
https://chrony.tuxfamily.org/comparison.html#Performance
En plus du fonctionnement "réseau non fiable", chrony peut apporter une correction plus importante à la fréquence d'horloge du système. Si la différence entre la fréquence d'horloge nominale et la fréquence d'horloge observée est supérieure à ± 500 parties par million, ntpd ne la corrigera pas. Fondamentalement, chrony fonctionne mieux dans une machine virtuelle que ntpd.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...