Ceci est une ancienne révision du document !
Plusieurs applications radioamateurs nécessitent que l'ordinateur sur lequel elles fonctionne soit précisément à l'heure. C'est notamment le cas pour des modes de transmissions qui utilisent un cadencement précis entre émission et réception. En temps normal, la synchro de l'horloge du PC se fait à travers le réseau (localement si on dispose d'un serveur NTP ou plus généralement, par internet) via le protocole NTP. Sur le terrain il n'est pas toujours possible d'avoir accès à un réseau fiable, voire à un réseau tout court. En utilisant un récepteur GPS autonome, il est possible de mettre très précisément à l'heure son ordinateur, sans connexion à un réseau.
Environnement : “Raspbian GNU/Linux 11 (bullseye)”
$> sudo apt install -y gpsd gpsd-tools gpsd-clients
Éditer /dev/default/gpsd
# Devices gpsd should collect to at boot time. # They need to be read/writeable, either by user gpsd or the group dialout. DEVICES="/dev/ttyACM0" # Other options you want to pass to gpsd GPSD_OPTIONS="-n" # Automatically hot add/remove USB GPS devices via gpsdctl USBAUTO="true" # Socket GPSD_SOCKET="/var/run/gpsd.sock" # Start deamon at startup START_DAEMON="true"
$> sudo service gpsd start
sudo apt install -y ntp ntpdate ntpsec ntpstat
Éditer /etc/ntp.conf
et ajouter
#GPS TIME SOURCE server 127.127.28.0 minpoll 4 maxpoll 4 fudge 127.127.28.0 refid GPS
Redémarrer le service ntp
sudo service ntp restart
Éditer /etc/systemd/system/gpsd.service
[Unit] Description=GPS (Global Positioning System) Daemon Requires=gpsd.socket # Needed with chrony SOCK refclock After=chronyd.service [Service] EnvironmentFile=-/etc/default/gpsd EnvironmentFile=-/etc/sysconfig/gpsd ExecStart=/usr/sbin/gpsd -N $GPSD_OPTIONS $DEVICES [Install] WantedBy=multi-user.target Also=gpsd.socket [Unit] Description=GPS (Global Positioning System) Daemon Requires=gpsd.socket # Needed with chrony SOCK refclock After=chronyd.service [Service] EnvironmentFile=-/etc/default/gpsd EnvironmentFile=-/etc/sysconfig/gpsd ExecStart=/usr/sbin/gpsd -N $GPSD_OPTIONS $DEVICES [Install] WantedBy=multi-user.target Also=gpsd.socket
sudo systemctl daemon-reload sudo systemctl reenable gpsd.service