Installer Gpsd
Ressources/Sources
Matériel
- Navilock GNSS GPS NL-8002U u-blox 8 USB 1,50 m [u-blox GNSS receiver (idVendor=1546, idProduct=01a8)]
Installation et tests
- Installer les paquets suivant :
- Raspbian/Debian :
apt-get install gpsd gpsd-clients
- Opensuse :
zypper in gpsd gpsd-clients
- Afficher la liste du matériel USB connecté :
lsusb
- Brancher le GPS sur un port USB
- GPS connecté la commande suivante devrait afficher une ligne contenant U-Blox AG :
lsusb
- Rechercher l'adresse du GPS à la fin de
dmesg
, elle devrait être de la forme /dev/tty… :dmesg
- Dans notre cas, nous obtenons : /dev/ttyACM0
- Tester l'activité du GPS :
gpsd -D5 -N -n -F /var/run/gpsd.sock /dev/ttyACM0
- Voir qui écoute sur le port 2947 de Gpsd :
lsof -i :2947
- Voir tous les fichiers ouverts qui contiennent le mot gps :
lsof -n | grep gps
Pour lancer Gpsd :
- dans un 1er terminal le lancer :
gpsd -D5 -N -n -F /var/run/gpsd.sock /dev/ttyACM0
- dans un second voir son activité avec au choix :
- Gpsmon :
gpsmon
- Cgps :
cgps -s
Pour accéder à /dev/ttyACM0 en tant qu'utilisateur classique :
- vérifier quel est le groupe de /dev/ttyACM0 (ici dialout) :
ls -al /dev/ttyACM0
- ajouter son compte au groupe dialout :
usermod -a -G dialout jpm
- se déconnecter puis se reconnecter pour appliquer les changements.
Activation de systemd avec Gpsd
Par défaut, Gpsd utilise la version socket pour la désactiver il faut arrêter le service puis le socket :
systemctl stop gpsd.service ; systemctl disable gpsd.service
systemctl stop gpsd.socket ; systemctl disable gpsd.socket
- Pour lister les services Gpsd en cours d'utilisation :
systemctl list-units |grep gps
- Pour réactiver ces services :
systemctl enable gpsd
NMEA, USB
Avec Node, il est possible de se passer de GPSD et parser directement les trames NMEA qui arrive. Pour cela, il faut utiliser les modules :
- serialport : pour se connecter à /dev/ttyACM0
- nmea ou nmea-simple : pour décoder les trames NMEA.