TUTO : mise à l'heure Raspberry pi avec GPS

Bonjour,

il existe déjà un article décrivant comment mettre à l'heure le Raspberry pi en utilisant les données GPS , mais je vous propose ici une autre méthode, plus simple à mon sens.

Tout d'abord, je précise que j'ai essayé cette méthode pour récupérer l'heure dans les trames NMEA de mon transpondeur AIS EMTRAK B100 mais sans succès. J'utilise donc, en parallèle du transpondeur AIS, un petit GPS USB. Ce GPS ne sert donc uniquement qu'à la mise à l'heure du Raspberry car OpenCPN et autres utilisent les données venant du transpondeur AIS. Ce petit GPS USB à 20 euros pourra servir en secours en cas de panne de l'AIS.

  • Ouvrez une console de ligne de commande
  • Branchez le GPS USB
  • Tappez la commande : dmesg | tail , vous devriez obtenir un résultat similaire à ceci :


$ dmesg | tail
...
[22625.034377] usb 1-1.1: new full-speed USB device number 9 using ehci_hcd
[22625.128637] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device

Ici, on voit que c'est le fichier /dev/ttyACM0 qui correspond au GPS USB.
La commande suivante affichera les trames NMEA transmises par le GPS :

$ cat /dev/ttyACM0
$GPRMC,191745.80,V,,,,,,,160314,,,N*7B
$GPVTG,,,,,,,,,N*30

  • Le programme git est normalement installé par défaut dans Raspberry pi OS, sinon tapez : sudo apt-get install git
  • Copiez le contenu du github du programme gpsdate avec la commande suivante : git clone https://github.com/adamheinrich/gpsdate
  • Rendez-vous dans le répertoire créé : cd ./gpsdate
  • Compilez le programme : make all
  • Lancez le programme avec la commande suivante : sudo ./gpsdate /dev/ttyACM0

Vous obtiendrez un résultat similaire à ceci :

$ sudo ./gpsdate /dev/ttyACM0
Local time was: 2014-03-16 20:19:06 (CET)
GPS time is: 2014-03-16 19:19:07 (UTC)
Successfully updated local time.

Comment ça marche :
Parmi les trames NMEA produites par le GPS, la trame $GPRMC contient l'heure et la date UTC. Dès qu'il va trouver une de ces trames dans le fichier /dev/ttyACM0, le programme gpsdata va relever la date et l'heure et les renseigner à l'horloge système. Si vous avez correctement défini votre fuseau horaire dans les préférences système, l'horloge du bureau devrait vous afficher votre heure locale. Vous pouvez choisir de lancer le programme gpsdata manuellement ou également utiliser le programme cron pour qu'il le lance automatiquement régulièrement.

Sources :
www.f5uii.net[...]epteur/
github.com[...]gpsdate
www.cedricaoun.net[...]183.pdf

L'équipage
08 juil. 2020
09 juil. 2020

Yes !
La seule chose qui me manquait d'openplotter ; la mise à l'heure !

Merci !


09 juil. 2020

Salut,
cool que tu aies vu le post, j'allais t'envoyer un mp, je me rappelais que tu avais ça en cours toi aussi.


09 juil. 202009 juil. 2020

Dans OpenPlotter 2.0 il y a la mise à l'heure GPS: Signalk -> Admin -> Plugins -> Mise à l'heure (à peu près, cité de mémoire)

(et je crois qu'il y avait l'option aussi dans OpenPlotter 1.0, mais à un autre endroit)


Fabien83:Oui dans OpenPlotter mais pas dans Raspberry pi OS.Pour mon utilisation en tout cas, OpenPlotter est trop fourni en programmes et fonctionnalités et je préfère un Raspberry pi OS plus simple avec juste OpenCPN et xyGrib (et la mise à l'heure via GPS).·le 09 juil. 2020 12:15
BMayer (LauBen):Comme Fabien.De plus, j'utilise un RPi 2.Raspbian + kplex + (qtVlm / opencpn) y fonctionne sans pb.Openplotter avait du mal... ·le 09 juil. 2020 12:44
stelian:Désolé j'avais mal lu le message "La seule chose qui me manquait d'openplotter" et j'ai interprété "la seule chose qui me manquait sur openplotter...". Ceci étant dit je trouve que OpenPlotter2 est bien plus léger que le 1... Perso j'ai fait plutôt le chemin inverse: j'étais parti sur Raspbian, puis migré sur openplotter...·le 09 juil. 2020 17:07
09 juil. 2020

pour ceux qui font de l'astro, l'heure atomique des GPS n'est pas l'heure UTC.


Fabien83:Bonjour, tu as plus d'infos là-dessus ? Je trouve ça un peu curieux.... ·le 09 juil. 2020 16:45
09 juil. 2020

Tiens c'est curieux...

Quelles sont les conditions qui nécessitent une mise à l'heure de Pi!?
Quelle version du Pi?

J'ai justement installé le miens hier soir, un Pi4 4Go,Raspbian à jour. Connecté wifi, c'est le premier truc qu'il a fait tout seul comme un grand...


Now:Oui, il se mets à l'heure si il est connecté à internet par WiFi, comme n'importe quel ordinateur, mais sur un bateau, il n'y a pas internet, et donc pas d'heure.·le 09 juil. 2020 15:16
Fabien83:Oui moi aussi j'ai du wifi à bord mais seulement quand je suis en côtier. Une fois hors portée réseau, plus de quoi recaler l'heure sur le Raspberry. ·le 09 juil. 2020 16:47
BMayer (LauBen):Si tu n'as pas de wifi, tu n'as pas l'heure.Les RPi n'ont pas de composant pour stocker (et rafraîchir) l'heure quand ils sont hors tension·le 09 juil. 2020 16:50
Tdr:Haa, ba voila une info qu'elle est interessante.Merci·le 10 juil. 2020 11:33
09 juil. 2020

Merci pour ce tuto.

J'avais installé un petit composant "real time clock" sur le mien, car je n'étais pas parvenu non plus à lui faire prendre l'heure sur les trames NMEA de l'AIS BM track qui sert aussi de GPS.

C'est un peu moins cher qu'un GPS supplémentaire et installé en interne sur les GPIO du Pi (donc un câble de moins) De plus, le GPS doit être installé de façon à bien capter (ce qui n'est pas un soucis sur un bateau en polyester, mais pas forcement immédiat selon ou est le Pi) mais bon, ça ne fait pas GPS de secours et en plus l'heure du GPS est forcément bien plus fiable.


Fabien83:Bonjour Now, tu es donc exactement dans le même cas de figure que moi, pas moyen d'avoir une trame GPRMC complète dans ce que sort l'EMtrak B100. Je ne comprends pas d'où vient le problème. A moins de faire de grandes traversées, en effet une horloge avec une pile doit largement suffire. Bonne idée. ·le 09 juil. 2020 16:54
09 juil. 2020

Personnellement, vu que mon récepteur/transmetteur AIS (que j'ai pas encore d'ailleurs) peut être allumé ou éteint (vu la conso électrique supplémentaire, je préfère l'allumer uniquement quand j'ai besoin d'AIS), j'ai choisi de ne pas me baser sur l'AIS pour avoir les données GPS sur mon PI.

Donc mon GPS principal est un GPS USB. Le PI utilise ce GPS pour la carto et le renvoie aussi à la VHF ASN.


09 juil. 2020

Je suis l'auteur de l'article initial sur la synchro horaire avec gpsd/ntpd. L'idée à l'époque était de faire avec des briques systemes "reconnues" mais c'est vrai que c'est une bonne usine à gaz. La solution du petit script à faire tourner périodiquement est plutot interessante. Cela dit, j'utiliserais plutot gpsd en source (si le script le permet) plutot que le port serie direct, car gpsd est capable d'agreger plusieurs sources gps (par exemple un gps usb en plus du gps de l'ais) et produit une couche d'abstraction bienvenue en cas de changement de gps ou de branchement sur un autre port.
L'inconvénient des rtc à trois sous, c'est qu'elles dérivent beaucoup, et que donc, soit il faut les remettre à l'heure régulierement, soit il leur faut une source de synchro , et dans ce cas on retombe sur le probleme initial.


Fabien83:Bonjour, merci pour ce retour et merci pour ton article. En effet, la solution avec gpsd me semble également plus robuste mais je cherchais une solution plus simple à mettre en œuvre et qui suffit amplement dans mon cas de figure (un petit GPS USB que j'avais déjà dans un tiroir et qui reste maintenant branché à demeure).Je pense qu'une petite horloge est intéressante également mais seulement si on se connecte de temps en temps à internet pour la recaler régulièrement. ·le 09 juil. 2020 22:54
Now:Oui, j'avais oublié de le dire, mais je me connecte de temps en temps à internet, via mon téléphone en point d'accès, soit pour faire une mise à jour, soit pour rechercher une doc, ou même pour aller sur H&O , ça suffit à recaler l'heure.
J'avais essayé aussi avec GPSD mais je ne sais plus pourquoi, ça n'avait pas été stable, c'est à dire que ça marchais et puis un jour plus ( sans doute après une mise à jour) et ça ne voulais plus même en reprenant tout du début, mais je n'ai jamais eu le temps approfondir, et donc je n'ai jamais su pourquoi, ·le 09 juil. 2020 23:23
BMayer (LauBen):ATCFrog : Comme toi, je préfère réutiliser de l'existant, donc utiliser ton article. Mais les distributions nous appris à nous méfier, les passages jessy -> stretch -> buster ontchaune eu leur lots de changements / d'incompatibilités, par exemple sur les process de mise à l'heure :-)La simplicité de cet outil est bien séduisante...Et ce sera plutôt kplex que gpsd pour moi :-D·le 09 juil. 2020 23:25
10 juil. 2020

Bonsoir, Si jamais la méthode proposée ne marche pas chez quelqu'un, ça arrive, j'en partage une autre qui a marché sur deux Pi de générations différentes sur lesquels j'ai essayé:

  1. suivre ces instructions. terenez.com[...]-temps/

puis pour que cela se lance automatiquement:

  1. suivre uniquement les instructions du dernier paragraphe "Automatiser le tout", de cette page, surement le tuto de ATCFrog. www.hisse-et-oh.com[...]ire-gps

10 juil. 2020

En marge du sujet :
Déçu par l'usure des piles et la dérive des composants RTC pour RPi, je m'étais habitué à saisir l'heure à la main dans une console.
En bon fainéant, cela m'a vite ... gonflé.
Vous trouverez dans github.com[...]ateTime un ch'tit bout de programme en Python qui affiche une interface graphique pour saisir date et heure, et mettre à l'heure, juste en regardant une montre :-D .
Faudra que je fasse un peu de doc, notamment pour expliquer comment le lancer automatiquement, au démarrage de la framboise.


10 juil. 2020

Merci. Très utile, Stretch met l'horloge CMOS à zéro à chaque démarrage. Dommage que je n'ai pas pensé plus tôt à utiliser l'horloge du gps !


10 juil. 2020

Salut,

Personnellement je viens juste de finir une configuration basée sur GPSD et sur Chronyd (chrony est un logiciel similaire à ntpd).

Cela fonctionne par internet quand l'ordinateur de bord est connecté via le partage de connexion du téléphone, et par le GPS quand ce n'est pas le cas.

Je peux partager mes fichiers de configuration si certains sont intéressés!


Goj:c'est bien cela. Avec ntpd je n'y arrivais pas. Avec chronyd j'y suis arrivé du premier coup.·le 12 juil. 2020 01:30
Darjeeling:Bonjour à tous et merci de vos posts sur ce sujet.Ma config est la suivante: RPI3 B+ relié par Wifi à un multiplexeur qui reçoit le signal d'un GPS Furuno GP 32. Tout tourne sous RasPI Os et Openplotter. Je reçois parfaitement ma position sur la carte, mais impossible de faire une mise à jour date et heure grâce au GPS. J'ai cherché dans tous les messages et blogs sur le sujet .... rien à faire!Donc je suis très intéressé par la proposition de Gromain, de partager ses fichiers, (GPSD et Chrony, et comment paramétrer tout cela). Par avance merci à tous pour vos avis.·le 27 mars 2021 12:44
stelian:Si tu tournes sous OpenPlotter la mise à l'heure est automatique: dans signalk -> login -> plugins -> mise à jour de l'heure (ou à peu près ça, je cite de mémoire)·le 27 mars 2021 15:26
Darjeeling:Merci de ta réponse. J'ai 0 expérience de l'utilisation de signal K, bien qu'il soit installé dans mon RPI. Si on pouvait en parler en MP pour ne pas polluer ce post? (Signal K c'est quoi, comment ça marche, etc), bref j'ai tout à apprendr0, mais rien n'est perdu! Pa avance merci.·le 27 mars 2021 16:08
stelian:PM envoyé.·le 27 mars 2021 16:43
jdmuys:Intéressé par SignalK aussi. Pourquoi pas un fil dédié plutôt que MP?·le 27 mars 2021 17:47
11 juil. 2020

Pour ma part je privilégierai une solution du type de celle de atcfrog, à base de gpsd et ntp + chron (ou chrony). Sur le papier semble peut être usine à gaz, mais en réalité plus sain qu'un ./github dont on ne connait ni l'origine ni le mainteneur.
Gpsd est solide et éprouvé, et à passé sans sourciller la transition vers systemd (ce que kplex n'a pas encore tout à fait terminé proprement, mais cela reste mon avis).


BMayer (LauBen):kplex ecrit et lit des logs du nmea qui passe :-)Pas eu de pb pour avoir kplex au boot, bien que je ne l'utilise plus ainsi, j'ai désormais des scripts qui le lance de diverses façons à la demande.J'ai regardé en diagonale le code de gpsdate sur github, ça a l'air secure.Je crois que c'est c que je vais utiliser...·le 11 juil. 2020 01:22
12 juil. 202012 juil. 2020

Pourquoi cette méfiance vis à vis de github ? J'espère que BMayer, qui a un github lui aussi, ne le prend pas mal 😁 Aussi je pense que beaucoup de programmes sont sur github avant de se retrouver sur les dépôts une fois matures. Dans le cas de ce programme gpsdate, il ne fait que lire les trames nmea et changer l'heure et date système. Un script bash pourrait très bien faire la même chose. Ça ne me semble pas trop risqué. Sur une machine aussi légère que la mienne (RPi 2), et avec un GPS USB dédié juste faire la mise à l'heure, je trouve plus léger et beaucoup plus simple de lancer ce petit programme manuellement quand je veux faire la mise à l'heure plutôt que d'avoir gpsd et ntpd qui tournent en permanence (et dont l'installation est plus longue).
Cette solution est très peu connue et peut je pense offrir une alternative fiable dans des cas de figures similaires au mien (vieux RPi et besoin d'une mise en œuvre simple). Je ne pense pas qu'il y ait une solution moins bonne que l'autre ou moins fiable que l'autre, ça dépend du cas de figure. Si plusieurs gps, si changement de port par exemple alors la solution d'ATCFrog est plus indiquée.


BMayer (LauBen):Fabien83, c'est très proche de ce que je pense faire.Le GPS est allimentée (via un fusible) dès que les coupes batteries sont sur ON.Quand la framboise est allumée, détection existence de ttyUSB0. Quand OK, alors gpsdate, qui laissera le port disponible après l'avoir utilisé.Quand la navigation démarre lancement manuel de kplex, qui verrouillera le port pour son usage.Après, c'est fin de nav. :-)·le 12 juil. 2020 11:23
Fabien83:Impeccable ! Content que ça te soit utile.·le 12 juil. 2020 11:50
10 fév. 2021

Bonjour,

Très intéressée par votre manip.
Nous sommes en train d'installer un PI4 pour faire une centrale de navigation.
Un des soucis est de mettre le pi à l'heure en l'absence d'internet. J'ai réussi en installant gpsd et ntpq. Mais le pb c'est que cela ne marche que si l'écart n'est pas trop grand entre la date/heure du PI et la date/heure réelle. Si l'écart est trop important, ntpq ne fait rien. Donc je rentre une heure approximative et ensuite la mise à l'heure se fait, mais ça réduit complètement l'intérêt... Quitte à rentrer l'heure, je peux la rentrer avec une montre exacte...
J'ai donc essayé la manip indiquée avec gpsdate.

or il me mets un message d'erreur : "Can't open port /dev/ttyACM0 at 9600 baud"
J'ai essayé avec l'option "-b 4800" (et d'autres vitesses) mais l'erreur est toujours là.

Lorsque je teste avec $gpsmon j'ai bien toutes les infos. En réfléchissant l'erreur doit être normale vu que le port ttyACM0 est occupé par le daemon gpsd. Je l'arrête et relance $gpsdate. Là, nouvelle erreur:
"No valid time information from GPS in the last 10 seconds."

Pourtant cutecom me renvoie bien les infos.

Quelqu'un aurait-il une idée?
merci d'avance


10 fév. 2021

Je rajoute un extrait de la sortie de la commande $cat /dev/ttyACM0 :
$GNTXT,01,01,02,u-blox AG -
$GNTXT,01,01,02,HW UBX-M8030 0008000060
$GNTXT,01,01,02,ROM CORE 3.01 (107888)
2B
$GNTXT,01,01,02,FWVER=SPG 3.0146
$GNTXT,01,01,02,PROTVER=18.00
11
$GNTXT,01,01,02,GPS;GLO;GAL;BDS77
$GNTXT,01,01,02,SBAS;IMES;QZSS
49
$GNTXT,01,01,02,GNSS OTP=GPS;GLO37
.........................................
$GNGGA,174127.00,4714.68098,N,00130.04227,W,2,12,0.70,23.0,M,48.0,M,,0000
64
$GNGSA,A,3,29,31,25,26,18,04,16,05,,,,,1.19,0.70,0.96*18


10 fév. 202110 fév. 2021

Bonjour,
je viens de me replonger rapidement dans ce que j'avais écrit dans le tuto. C'est la trame $GPRMC qui contient les infos date et heure et je ne vois pas cette trame dans la sortie que tu as copié/collé.

Comme tu l'as identifié, il me semble aussi qu'il y a deux problèmes.
- problème d'accès au fichier par gpsdate quand gpsd est déjà lancé
- problème lié au GPS utilisé car pas de trame $GPRMC

Comme je l'avais indiqué, je ne sais pour quelle raison, je n'ai jamais réussi à avoir les infos dans les données sortant de mon transpondeur AIS. J'obtenais la même erreur que toi : "No valid time information from GPS in the last 10 seconds.". Je n'ai pas cherché plus loin puisque je comptais de toute façon utiliser mon petit GPS USB pour avoir l'heure. Ton problème numéro 2 est vraissemblement le même que le mien avec l'AIS.
Depuis quel appareil prends-tu les données GPS ?

Sinon, vu que ntp semble déjà fonctionner à peu près, il serait peut-être plus intéressant de creuser de ce côté. Il y a certainement un paramètre qui bloque la mise à jour de l'heure si trop d'écart. man ntpd/ntpq !


10 fév. 2021

Merci de la réponse, ça m'a mis sur la voie d'une explication concernant la réponse "No valid time information from GPS in the last 10 seconds."
Je n'ai pas de trame GPMRC mais j'ai une trame GNRMC (mon extrait précédent ne l'avait pas copié):
$GNRMC,192322.00,A,4714.67911,N,00130.04152,W,0.011,,100221,,,D*7E

Or lorsque le GPS est à la fois "gps"(étatsuniens) et "glonass (russe) les deux premières lettres utilisées sont GN et non GP. Les trames sont donc des trames GNMRC et non GPMRC. Peut-être que le programme gpsdate n'a prévu de lire que des trames GPMRC? ce qui expliquerait le message d'erreur.
J'ai cherché un peu dans les fichiers du répertoire gpsdate si la variable était paramétrée quelque part mais ça dépasse quelque peu mes compétences...

Quant à l'écart entre les dates, il est possible effectivement de désactiver le "panic threshold" (l'écart maxi à rattraper) avec l'option -g lors du lancement de ntpd. Mais vu qu'il se lance automatiquement je ne sais pas où mettre l'option. C'est surement pas compliqué mais je n'ai pas trouvé...

Mam'tine

des explications ici: doc.ntp.org[...]bug.htm


stelian:En regardant le code github.com[...]sdate.c on voit que tu as effectivement raison, il n'y a que la trame GPMRC qui est testée.Le plus simple c'est de modifier le code pour rajouter GNMRC (et l'équivalent Galiléo que j'ai la flemme de chercher). Et de soumettre un bug au développeur via github pour qu'il fasse évoluer son outil.Pour le lancement de ntpd, au pif, /etc/init/, /etc/init.d/ ou /etc/systemd/ ? Au pire un "grep -r ntp /etc" devrait le trouver...·le 10 fév. 2021 21:35
stelian:D'après fr.wikipedia.org[...]EA_0183 :Les deux premiers caractères après le signe $ (talker id) identifient l'origine du signal2. Les principaux préfixes sont :BD ou GB - Beidou ;GA - Galileo ;GP - GPS ;GL - GLONASS.Le préfixe GN est utilisé dans le cas de signaux mixés GPS + GLONASS.Donc en fait il faudrait tester pour {BD,GB,GA,GP,GL,GN}MRC...·le 10 fév. 2021 21:37
Fabien83:Merci pour ces infos Stelian ! Je verrai à l'occasion de mon côté pour modifier le code. Mon problème avec l'ais venait certainement de là.Tinou, pour le lancement de ntp, il suffit en effet de trouver quel script de démarrage le lance. Et si tu ne trouves pas, c'est moche mais tu rajoutes fais un script qui le relance avec l'option-g. ·le 10 fév. 2021 21:55
Candide29:@Tinou:Dans le dossier "/etc/default/" tu dois avoir un fichier "ntp" contenant la ligne NTPD_OPTS='-g' .. non ?·le 11 fév. 2021 10:44
10 fév. 2021

A propos de GPS, comme je viens d'acheter mon premier Raspberry PI4, qu'est-ce que vous me conseillez comme modèle sur port USB ?
1ère chose à laquelle je vais m'attaquer ensuite, c'est cette mise à l'heure.


Fabien83:J'ai un truc à vingt balles qui va très bien ! ·le 10 fév. 2021 21:57
11 fév. 2021

Salut,

Comme je le disais, j'utilise Chrony, aucun souci pour lui avec du code à modifier pour une trame non supportée.

Un exemple d'installation et de configuration se trouve ici: planktonscope.readthedocs.io[...]_setup/ (C'est moi qui ai rédigé cette doc).
A part la partie sur le support du PPS qui n'est pas indispensable, le reste devrait être assez clair.

Un paquet à installer, et un fichier de configuration à paramétrer!

Bonne journée à tous,


Fabien83:Merci pour l'info ! ·le 11 fév. 2021 10:51
11 fév. 2021

Pour résumé:
- solution 1: installer et activer gpsd qui récupère les données du gps et les met à disposition d'autres clients, par exemple Opencpn et Ntp. Exécuter ntp qui va faire la mise à l'heure du système à partir des données récoltées par gpsd. Ntp ne fait la mise à l'heure que si l'écart entre les deux horaires n'est pas trop grand. On peut désactiver cette condition d'écart avec l'option "-g". Dans mon cas , malgré le fichier /etc/default/ntp avec la ligne NTPD_OPTS='-g', ntp refuse de faire cette mise à l'heure. :-(

Cette solution, lourde, peut avoir l'intérêt de mettre à disposition ces données GPS pour d'autres usages.
N'arrivant pas à la faire marcher de manière fiable, j'essaye l'autre solution.

-solution 2: utiliser le script indiqué par Fabien83 "gpsdate". Comme mon gps renvoie une trame non prévue par ce programme, j'ai changé la variable "GPRMC" par "GNRMC" dans le programme gpsdate.c puis recompilé comme indiqué ci-dessus. ça marche :-) lorsque je le lance à la main. J'ai rajouté la commande
" $/home/pi/gpsdate/gpsdate /dev/ttyACM0 " dans le fichier /etc/rc.local pour qu'il s'éxécute . Reste à vérifier demain que lors du redémarrage du pi que la date soit bien mise à jour ET que le port /dev/ttyACM0 soit libéré et disponible pour OpenCpn...

Attention: les deux solutions sont complètement exclusives! Si le démon gpsd tourne , il bloque le port /dev/ttyACM0 pour son seul usage , port qui devient inaccessible à gpsdate.


Candide29:Pour ta solution 1, essaie d'ajouter "flag1 1" dans les lignes décrivant la connexion SHM de ton fichier ntpd.conf si le -g ne suffit pas.·le 12 fév. 2021 10:53
gromain:Solution 3: GPSD classique + chrony!Vraiment, ça marche super bien et aucun souci de configuration complexe ou de triturage!·le 12 fév. 2021 17:07
11 fév. 2021

Pour info la dernière version de qtVlm (5.10.0) a une option pour se caler sur la date GPS au lieu de la date système. Ce qui ne règle rien pour le reste je le reconnais.


12 fév. 2021

Résultat le lendemain: la mise à jour de la date et de l'heure a bien marché lors du démarrage du PI :-))
Mais j'ai été obligée de changer de technique pour la prise en compte de gpsdate au démarrage: utiliser le /etc/rc.local n'a pas marché (technique en voie d'abandon) , j'ai utilisé systemd. Des explications très claires (en anglais) ici:
www.dexterindustries.com[...]tartup/

merci à tous pour vos conseils.
Christine

ps: je ne sais pas comment vous faites pour répondre à un message qui ne soit pas le message principal...


13 fév. 2021

Le problème c'est que ça met le Pi à l'heure uniquement au démarrage, ensuite l'horloge va dériver. NTP est fait pour ça ;-)


13 fév. 2021

Oui, je me rends bien compte de cela mais je ne pense pas que ce soit très gênant. Pour ce que je comprends, Ntp a été développé pour une synchronisation hyper précise d'horloges en permanence. Un besoin légitime pour des applications en temps réel mais ici, ça ne me semble pas indispensable.
L'autre intérêt d'installer gpsd serait de mettre à disposition toutes les infos reçues du GPS pour plusieurs applications, vu qu'il les lit en permanence et les remets à disposition sur un espace de mémoire partagée (SHM: shared memory, 127.127.28.0) sans pour autant bloquer le port série /dev/ttyxxxx .
Mais comme gpsdate ne se lance qu'une fois au démarrage, il libère le port, donc Opencpn peut le récupérer.
Pour l'instant, je vais laisser comme cela.
J'essayerai un peu plus tard la solution proposée par Candide29 (flag...) quand j'aurais un peu plus de temps... J'aime pas rester sur un échec sans comprendre...


15 fév. 2021

j'avais écrit sur heo un article sur la mise à l'heure du pi via gpsd et ntp. Si quelqu'un a le courage de partir en chasse...


Fabien83:J'étais parti en chasse avant de rédiger ce tuto ! Le lien est indiqué au tout début de mon post ! ·le 15 fév. 2021 12:18
Xanadu:Bonjour,comme cet article sort dans la première page quand on fait une recherche Internet sur le sujet, ce serait intéressant de le rafraichir avec les derniers parfums de la framboise de la saison ... :-)·le 15 fév. 2022 11:32
22 fév. 2021

Pour infos, j'ai réussi à mettre à jour le PI avec le programme présenté dans le post initialgpsdate. j'ai modifié le fichier gpsdate.c où j'ai modifié la ligne:
if (strcmp(msgid, "GNRMC") == 0 && (length == 11 || length == 12)) {

la ligne initiale contenait GPRMC, je l'ai remplacé par GNRMC et recompilé comme indiqué plus haut (make all) et cela fonctionne :-))


Fabien83:Merci pour le retour. L'idéal serait de rajouter GPRMC, GNRMC, etc correspondant aux différentes constellations. Je n'ai jamais trop touché au langage C mais, sauf si quelqu'un le fait avant, j'essaierai de proposer une modif le prochain coup que j'irai au bateau. ·le 22 fév. 2021 21:23

Phare du monde

  • 4.5 (147)

2022