GNU/Linux >> Tutoriels Linux >  >> Linux

gpspipe renvoie l'horodatage correct, mais la mauvaise date (21 décembre 1995)

Cela semble être un bogue système/logiciel connu :

http://forums.gpsreview.net/discussion/29425/garmin-gps-iii-plus-date-problem

http://continuouswave.com/ubb/Forum6/HTML/002815.html

http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.htm

et de la page de manuel gpsd http://www.catb.org/gpsd/gpsd.html :

Il existe exactement deux circonstances dans lesquelles gpsd s'appuie sur l'horloge du système hôte :

Dans le signal de diffusion GPS, l'heure GPS est représentée à l'aide d'un numéro de semaine qui se renouvelle après 2 ^ 10 ou 2 ^ 13 semaines (environ 19,6 ans ou 157 ans), selon le vaisseau spatial. Les récepteurs sont tenus de lever l'ambiguïté à la date correcte, mais peuvent avoir des difficultés car ils ne connaissent pas le temps à moins de la moitié de cet intervalle, ou peuvent avoir des bogues. Les utilisateurs ont signalé des dates incorrectes qui semblent être dues à ce problème. gpsd utilise l'heure de démarrage du démon pour détecter et compenser les survols pendant son exécution, mais sinon, il signale la date telle qu'elle est signalée par le récepteur sans tenter de la corriger.

Si vous utilisez un GPS uniquement NMEA (c'est-à-dire que vous n'utilisez pas le mode binaire SiRF ou Garmin ou Zodiac), gpsd s'appuie sur l'horloge système pour lui indiquer le siècle en cours. Si l'horloge système renvoie une valeur non valide proche de zéro et que le GPS n'émet pas de GPZDA au début de son cycle de mise à jour (ce que la plupart des GPS NMEA grand public ne font pas), la partie siècle des dates fournies par gpsd peut être erronée. De plus, près du tournant du siècle, une plage de dates aussi large en secondes que la précision de votre horloge système peut être renvoyée au mauvais siècle.


Je viens de résoudre ce problème.
Le message d'AndreJ est précis et a aidé à démarrer mon enquête pour savoir pourquoi l'horloge système était si éloignée.
Dans mon cas, je connecte un récepteur GPS à un Raspberry Pi 2 exécutant Ubuntu 14.04. Les Raspberry Pis n'ont pas d'horloges matérielles et si tôt dans le processus de démarrage, avant que ntp ne puisse régler l'horloge, l'heure/la date sont réglées près du début de l'époque (1er janvier 1970).

Cela confond gpsd :"Jan 1 00:00:13 ubuntu gpsd[814] :gpsd:ERROR :l'heure système semble erronée, les dates peuvent ne pas être fiables."

La solution pour moi est d'exécuter 'fake-hwclock' qui stocke la date/heure exacte dans un fichier, puis règle l'horloge système à partir de ce fichier très tôt dans le processus de démarrage. Même si votre machine n'a pas d'horloge matérielle avec batterie et a été éteinte pendant un certain temps, ce réglage de date/heure sera suffisamment précis pour que gpsd puisse "désambiguïser à la date correcte".


Linux
  1. Contrôlez l'heure et la date de votre ordinateur avec systemd

  2. Comment filtrer les entrées du fichier journal en fonction de la plage de dates

  3. [Résolu] :Comment empêcher la synchronisation de l'horloge de la machine virtuelle avec la machine hôte et définir une heure d'horloge indépendante ?

  4. Comparaison de dates dans Bash

  5. la commande linux date -s ne fonctionne pas pour changer la date sur un serveur

Commande de date sous Linux

Mauvaise heure affichée dans la configuration du double démarrage Windows-Linux ? Voici comment y remédier

Comment faire pour que l'horloge affiche la date ?

7 exemples de commande de date sous Linux

Nom de code et date de sortie d'Ubuntu 22.10

Comment ajouter un horodatage au journal des scripts bash ?