OpiTracker [Ep. 10] – Configuration de Direwolf en Tracker

OpiTracker [Ep. 10] – Configuration de Direwolf en Tracker

Dans l’épisode précédent nous avons donc vu comment configurer GPSd et allons maintenant l’utiliser dans Direwolf afin d’envoyer nos trames de position ainsi que le configurer pour qu’il se lance automatiquement à chaque démarrage de notre Orange Pi.

Configuration de Direwolf en Tracker

Afin de configurer Direwolf en tracker il va falloir le configurer de sorte à l’interfacer avec GPSd, lui dire quoi envoyer comme trame et quand les envoyer.

Nous allons donc éditer à nouveau le fichier de configuration de Direwolf et le compléter. Comme toujours, l’édition passe par l’éditeur nano.

sudo nano /usr/local/etc/direwolf-tracker.confLangage du code : Shell Session (shell)

Se placer à la fin du fichier et ajouter les lignes suivantes, à adapter avec votre prénom ! Les options sont explicités juste après.

# Configuration du Tracker
GPSD
SMARTBEACONING 75 1 3 10 0:30 28 240
TBEACON SENDTO=0 ALT=1 MESSAGING=1 VIA=WIDE1-1,WIDE2-1 COMPRESS=1 SYMBOL="car" COMMENT="73 de Dudule"Langage du code : PHP (php)
  • Les lignes commençant par un # sont des commentaires, mais ça vous le saviez déjà.
  • GPS cette ligne indique à Direwolf d’utiliser GPSD comme source de position, pas plus compliqué que ça!
  • SMARTBEACONING 75 1 5 10 0:30 28 240 Cette ligne configure le SmartBeaconing. Cet algorithme permet d’envoyer vos trames en fonction de votre vitesse et de vos changements de cap. Ici nous enverrons une trame toute les minutes à 75mile/h (120km/h) et au dessus. Inversement, à 3miles/h (5 km/h) il y aura une trame toutes les 10 minutes. Entre ces 2 vitesses l’intervalle de temps sera recalculé en fonction de votre vitesse courante ainsi, à 90km/h, il y aura une trame environ toutes les 90 secondes.
    Les deux derniers chiffres sont la détection de changement de cap qui est aussi tributaire de la vitesse. Ces parametres ont étés testés afin de ne pas envoyer des trames à tout va sur une route un sinueuse.
  • TBEACON SENDTO=0 ALT=1 MESSAGING=1 VIA=WIDE1-1,WIDE2-1 COMPRESS=1 SYMBOL= »car » COMMENT= »73 de Dudule »
    Cette ligne est sans doute la plus importante, c’est celle qui va configurer notre trame APRS.
    • TBEACON signifie tout simplement « Tracker Beacon ».
    • SENDTO=0 notre trame sortira sur le CHANNEL 0 que nous avons configuré lors de l’épisode 7.
    • ALT=1 Nous souhaitons envoyer l’information d’altitude
    • MESSAGING=1 Nous activons le flag afin d’indiquer que notre station peut réceptionner des messages. Ça ne sera bien évidemment le cas que lorsque nous aurons interfacé Direwolf via Bluetooth avec une application le permettant.
    • VIA=WIDE1-1,WIDE2-1 défini le chemin/nombre de bonds que nous demandons au réseau
    • COMPRESS=1 nous compressons notre trame afin d’utiliser le moins de ressources possibles sur le réseau
    • SYMBOL= »car » notre trame affichera une jolie voiture
    • COMMENT= »73 de Dudule » Sera le commentaira affiché à la fin de notre trame. Vous pouvez le modifier à votre guise, mais tachez de ne pas faire trop long.

Le tout en image:

Je ne vous remets pas la manipulation pour enregistrer le fichier et quitter nano, à ce stade elle devrait être connue.

Il ne nous reste plus qu’à tester. Assurez vous que votre GPS et votre carte sont soient branchés et que votre poste soit allumé réglé au bon volume ainsi que raccordé à une antenne. Assurez vous aussi que votre GPS est acquis une position.

direwolf -c /usr/local/etc/direwolf-tracker.conf

Surveillez l’affichage de Direwolf et guettez une ligne rose/violette c’est votre trame qui est émise. Si vous avez déjà une autre radio APRS vous pouvez vérifier que votre trame soit bien émise, ou à défaut vous rendre sur aprs.fi.

Une fois le test concluant, appuyez sur CTRL et C pour quitter Direwolf.

Lancement de Direwolf au démarrage

Voilà Direwolf est à présent configuré en tracker standalone. Bien entendu, nous ne voulons pas avoir à nous connecter via Putty à chaque démarrage pour lancer Direwolf. Cela serait quand même bien qu’il se lance tout seul comme un grand au démarrage.

Pour réaliser cela nous allons nous appuyer sur systemd. Systemd est un composant essentiel des systèmes d’exploitation Linux modernes dont Armbian. C’est lui qui va s’occuper de démarrer tout le système (couche réseau, couche graphique …) ainsi que d’autres programmes qui tournent en tâche de fond les fameux services. Nous avons déjà effleuré systemd lors de l’épisode 9 lorsque nous avons configuré gpsd et ntp qui sont des services s’exécutant en tâche de fond. Nous allos donc configurer notre système afin que Direwolf soit également exécuté en tant que service à chaque démarrage.

Direwolf ne fourni pas vraiment les fichiers permettant de le faire tourner en tant que service, nous allons donc devoir créer ce qu’il nous faut pas nous même. Pas de panique, comme très souvent sous Linux cela passe par la création et l’édition de quelques fichiers textes et l’exécution de quelques commandes.

Nous allons donc créer le fichier /etc/systemd/system/direwolf.service .

Encore une fois, nous allons utiliser nano

sudo nano /etc/systemd/system/direwolf.service

Voici le contenu du fichier, je ne vous remet pas les captures d’écran concernant l’édition via nano, cela devrait être de la routine à présent ;).

[Unit]
Description=Direwolf
After=network.target

[Service]
User=geoffrey
ExecStart=/usr/local/bin/direwolf -X 16 -c /usr/local/etc/direwolf-tracker.conf
Restart=always

[Install]
WantedBy=default.targetLangage du code : JavaScript (javascript)

En langage systemd ce fichier s’appelle « unit file ». Un « unit » dans systemd peut être de plusieurs type: service, timer etc … Vous trouverez plus d’informations sur le sujet ici. Ici notre unit sera donc un service.

Décortiquons donc le fichier. Il est composé de sections et de ligne de paramètres. Le début d’une section commence par un mot clé entre crochets, nous avons donc trois sections ici: Unit, Service et Install. Les sections Unit et Install sont obligatoires et requisent par systemd. Les décrire en détail nous obligerait à rentrer dans les arcanes de systemd, ce qui n’est pas le but ici.

La section [Service] est celle qui nous intéresse le plus. Elle comporte trois lignes:

  • user=geoffrey défini l’utilisateur sous lequel le service tournera. Il est toujours bon pour la sécurité de ne pas faire tourner un service sous l’utilisateur root. Cette valeur est à changer avec votre nom d’utilisateur !
  • ExecStart=/usr/local/bin/direwolf -X 16 -c /usr/local/etc/direwolf-tracker.conf sans doute la ligne la plus importante, défini le programme a démarré en tant que service ainsi que ses paramètres sur a ligne de commande. Notez le paramètre -X 16 qui active le mode FX25.
  • Restart=always indique à systemd de redémarrer le service de façon perpétuelle en cas de plantage de celui-ci

Bien! Nous avons donc un fichier Unit qui décrit un service. Il ne nous reste plus qu’à l’activer. Ceci se fait via la commande suivante.

sudo systemctl enable direwolf.serviceLangage du code : CSS (css)

Nous pouvons maintenant démarrer le service avec la commande:

sudo systemctl start direwolf.serviceLangage du code : CSS (css)

En cas de succès, rien n’est affiché. A noter que cette commande ne sera pas à lancer au démrrage du Orange Pi, le service sera automatiquement lancé au démarrage. Nous pouvons donc redémarrer l’Orange Pi via la commande (qui est connue à ce stade)

sudo reboot

Une fois le Orange Pi redémarré, on s’y reconnecte avec putty et on vérifie que Direwolf s’est bien lancé en tant que service.

sudo systemctl status direwolf.serviceLangage du code : CSS (css)

La commande devrait afficher en vert « Active: active (running)« 

Le tout en images:

Conclusion

Vous avez à présent un joli tracker universel! Vous pouvez l’emmener en mobile et il émettra fièrement vos trames APRS.

Au prochain épisode nous configurerons le Bluetooth et ferons l’appairage avec APRSdroid.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *