La carte son est prête, nous allons maintenant compiler et installer Direwolf.
Présentation succinte de Direwolf
Direwolf est un TNC (Terminal Node Controller) entièrement logiciel utilisant une carte son pour envoyer et recevoir des signaux packets. Il est très performant et laisse nombre de TNC physiques sur le carreau.
Il est capable de fonctionner dans les modes suivants:
- Packet 1200bauds
- Packet 9600bauds
- Packet 300 bauds
- Decodage DTMF pour passerelle APRStt
- AIS (Rx uniquement)
Il intègre en outre des fonctions avancées de Digipeater, iGate et tracker! C’est cette dernière fonctionnalité que nous allons exploiter pour notre projet.
Le gros plus par rapport aux autres solutions est la gestion du FX25. Le FX25 ajoute une correction d’erreur au traditionnel AX25, tout en restant rétro-compatible ! Une trame FX25 sera parfaitement décodée par un appareil AX25, mais ne bénéficiera pas des avantages liés à la correction d’erreur. Pour en apprendre plus, vous pouvez lire cet article par John WB2OSZ, auteur de Direwolf.
Les digipeaters alsaciens suivant gèrent le FX25: F5ZEE, F5KAV-3, F4FXL-3, F1ZSG.
Préparation
Direwolf n’est pas disponible dans les dépôts ARMbian, ou si il l’est ce n’est pas dans une version récente. Nous allons donc devoir le compiler nous-mêmes, ce n’est pas bien sorcier.
Nous allons tout d’abord installer les prérequis et outils nécessaires via la commande apt. Ces prérequis sont des librairies utilisées par Direwolf ainsi que les outils pour sa compilation.
Pas de capture d’écran, l’utilisation de la commande apt devrait être connue à ce stade 🙂
sudo apt install avahi-daemon git build-essential gcc g++ make cmake libasound2-dev libudev-dev libavahi-client-dev libgps-dev
Récupération du code source de Direwolf
Pour récupérer le code source voici les commandes. Je les décortique juste après ;
cd ~
git clone https://www.github.com/wb2osz/direwolf
Langage du code : PHP (php)
- cd ~ : cd pour Change Directory. Cette commande permet tout simplement de se placer dans un répertoire. Ici, nous nous assurons que nous sommes dans notre dossier home.
Le caractère ~ est un « raccourci » vers notre dossier « home ». Le dossier « home » est l’équivalent Linux du dossier « Users » sous Windows. Dans ce dossier « home » se trouve les sous-dossiers propres à chaque utilisateur du système. Dans mon cas, le dossier est /home/geoffrey. Taper la commande cd ~ est donc équivalent à cd /home/geoffrey ! - git clone https://www.github.com/wb2osz/direwolf
git est un gestionnaire de versions. C’est le plus utilisé depuis ces 15 dernières années. Il permet aux développeurs de gérer et versionner le code source. Ici, via le paramètre clone, nous lui demandons de cloner tout le code source du projet direwolf qui est hébergé sur github. Cette commande clone tout le code ainsi que son historique depuis les débuts de Direwolf! Cela peut prendre un peu de temps suivant votre la vitesse de votre connexion Internet.
Compilation
La commande git clone précédente nous a donc permis de récupérer le code source. Celui-ci a été placé dans un sous dossier « direwolf », nous nous plaçons donc dans ce sous répertoire via la commande
cd direwolf
Git permet aux développeurs de gérer plusieurs « états » de leur code source en parallèle. Ces états s’appelent des « branches ». Par convention, la branche dite stable se nomme « master » et la branche de travail se nomme dev ou develop. Nous allons utiliser la branche dev de Direwolf qui, grâce à l’esprit méticuleux de l’auteur, est déjà très stable. La commande git clone a en fait téléchargé toutes les branches du projet! Il suffit de dire à git de se placer sur la branche que nous voulons, la dev, via la commande ci-dessous.
git checkout dev
Le tout en image:
Nous créons maintenant un sous répertoire « build » qui nous servira de répertoire de travail pour la compilation. Nous utilisons la commande
mkdir build
mkdir pour Make Directory est la commande utilisée pour créer un répertoire.
Plaçons nous ensuite dans ce répertoire build nouvellement créé.
cd build
Les commandes en image:
Ils nous faut ensuite préparer la compilation avec cmake. CMake va vérifier que tous les prérequis et dépendances sont bien présents, adapter les options de compilations suivant la présence des composants optionnels et préparer des fichiers « makefile » qui serviront ultèrieurement à l’invocation du compilateur. Cette étape, qui peut sembler complexe, se fait en une seule commande.
cmake ..
Les .. après la commande indiquent à cmake que le code source et les informations relatives aux dépendances se trouvent dans le répertoire parent.
La commande en image:
Tout est prêt, nous pouvons donc lancer la compilation proprement dite via la commande make
make -j4
make va construire Direwolf ainsi que tous les utilitaires liés à celui-ci à partir des fichiers générés précédemment par cmake. L’argument -j4 pour « jobs 4 » demande à make d’utiliser les 4 noyaux du CPU pour compiler. Cela accélère un peu l’opération. La compilation à proprement dite va commencer.
Dernière étape, installer les executables de Direwolf dans les dossiers systèmes qui vont bien. Ici nous appelons, encore une fois la commande make mais en lui disant d’utiliser la « recette » install qui nous a été concoctée par cmake.
sudo make install
La commande make install est invoquée via sudo, car elle modifiera notre système par l’ajout d’un exécutable.
En images:
Pour fignoler, même si nous ne les utiliserons pas, nous pouvons demander d’installer quelques fichiers de configuration exemples dans notre répertoire home via la commande
make install-conf
Test de l’installation
Après la compilation et l’installation, il est bon de tester que tout c’est bien passé et que l’exécutable Direwolf est présent dans le système. Certes, Direwolf va râler car nous n’avons pas encore de configuration valide mais celà nous permet d’or et déjà de voir si il se lance.
On se replace dans notre répertoire home et on lance direwolf!
cd ~
direwolf
Conclusion et TL;DR; (Too long, did not read)
Nous avons donc vu comment installer les outils de compilations ainsi que les prérequis de direwolf, avons récupéré le code source, l’avons compilé et installé les exécutables générés par la compilation. Ce processus a pu vous sembler long, du fait de toutes les explications entre, mais en fait il tient en quelques lignes de commandes! Les voici en condensés:
sudo apt install git build-essential gcc g++ make cmake libasound2-dev libudev-dev libavahi-client-dev libgps-dev
cd ~
git clone https://www.github.com/wb2osz/direwolf
cd direwolf
git checkout dev
mkdir build
cd build
cmake ..
make -j4
sudo make install
make install-conf
Langage du code : PHP (php)
Au prochain article, nous allons configurer Direwolf et régler les niveaux audios.
Addendum: Mise à jour de Direwolf
Nous utilisons la branche dev de Direwolf, qui est mise à jour assez régulièrement. Il peu donc être intéressant de faire une mise à jour de temps à autre. Voici en condensé la marche à suivre, les commandes sont assez similaires. A vous de trouver les différences avec les commandes ci dessus.
cd ~
cd direwolf
git checkout dev
git pull -p
rm -rf build
mkdir build
cd build
cmake ..
make -j4
sudo make install
make install-conf