BBS, APRS, et/ou client PACKET avec une Raspberry Pi

Ludo | 23 avril 2023
Je publie quelques infos qui me semblent être utiles pour installer un BBS ou un client PACKET sur une Raspberry Pi. Il reste des choses à faire pour que ce système soit 100% fonctionnel, mais à la date à laquelle j’écris ces lignes, il y a déjà de quoi obtenir quelque chose capable d’émettre et de recevoir des données en AX.25. Comme pour le reste des essais non finalisés publiés sur ce blog, le reste viendra petit à petit en fonction du temps et des priorités données à chaque projet. Si vous n’êtes pas assez patient, ou si vous avez plus de temps libre que moi, vous pouvez aller plus loin dans le paramétrage ou les essais, et partager votre expérience dans les commentaires en bas de page.
Le contenu de ce billet nécessite certainement quelques relectures et une finalisation de la mise en page. Merci d’être indulgent, tout ça prend plus de temps qu’il n’y paraît.

07/05/2023: Certaines actions sont maintenant un peu plus détaillés, ajout d’une image SD presque prête à l’emploi.
11/11/2023: Faisant face, comme bon nombre d’entre vous, à la pénurie de cartes Raspberry Pi, j’ai tenté d’utiliser direwolf sur une carte Raspberry Pi Zero qui traînait dans un carton. La carte SD préparée sur un autre modèle de carte Raspbery Pi n’a pas pu être utilisée telle qu’elle, car il y a quelques différences au niveau du processeur, qui nécessitent une recompilation de direwolf sur la Raspberry Pi Zero. J’ai donc ajouté une note dans le tuto ci-dessous (voir le texte en rouge).
Pour information, la carte SD prête à l’emploi mise à disposition un peu plus bas dans cette page a été compilée sur une Raspberry Pi 4.

Interface matérielle

J’utilise un poste destiné aux réseaux professionnels, et non aux radioamateurs, car cela simplifie énormément l’accès à certains signaux. Les postes professionnels sont principalement utilisés pour les échanges radio en phonie, mais dans certains cas, ils sont connectés à des équipements embarqués qui s’en servent pour échanger des données. Dans ce cas précis, il faut disposer de l’intégralité de la bande passante audio, et de signaux de commutation (PTT, détection de porteuse, détection de tonalité subaudible, etc.). Tous ces signaux sont mis à disposition sur une connectique externe, évitant ainsi de souder des fils à des endroits précis du circuit imprimé du poste. Cela nécessite cependant un paramétrage spécifique qui sera décrit dans le paragraphe suivant. On s’appuie dans un premier temps sur la documentation du constructeur, ou des sites décrivant des montages radioamateurs du même type, pour identifier les signaux dont nous avons besoin.
Dans le cas d’un poste MOTOROLA de la gamme CM340 (ou GM340, GM360, GM380, CM140, GM950, DM2600, etc.), on utilisera le câblage décrit dans le schéma ci-dessous:

Cliquer sur l’image pour l’agrandir

Ici rien de bien compliqué. Il faut surtout avoir une carte son fiable qui délivre un signal audio suffisant pour l’entrée audio du poste. Celle que j’utilise a coûté moins de 2€ (montant à la date d’achat et de publication de ce billet): https://fr.aliexpress.com/item/32490078407.html.
L’interface que j’utilise pour mes essais est câblée sur une plaque à trous:

Paramétrage du poste émetteur/récepteur

Le paramétarge est effectué par l’intermédiaire d’un logiciel spécifique au poste utilisé. À titre d’information, voici ce qu’il faut définir sur un CM340:

Ici, j’ai défini le format du signal audio mis à disposition sur le connecteur accessoires du poste:

  • Flat: La courbe de réponse est plate, donc le signal n’est pas modifié par un filtrage passe haut supprimant les fréquences réservées habituellement aux tonalités subaudibles.
  • Unsquelched: Non soumis au réglage du silencieux. Le signal reçu, ou le bruit de fond, sont toujours « audibles ». Cela permet d’éviter un temps d’ouverture du squelch qui pourrait faire louper les données de synchronisation de la transmission de données.

La broche N°3 assurant le pilotage en émission du poste se voit affecter la fonction Data PTT, qui indique au poste que le signal à émettre est celui appliqué sur l’entrée FLAT_TX_AUDIO. Tout comme pour la réception, la désignation « FLAT TX AUDIO » indique que le signal ne sera pas filtré avant d’être émis, afin de ne pas l’altérer.

À toutes fins utiles, vous trouverez ailleurs sur mon blog le schéma d’une interface RIBless, RIB et FlashRIB.
Selon le modèle de poste MOTOROLA dont vous disposez, vous trouverez sur le site Internet batlabs.com différents cordons adaptateurs utilisables sur le connecteur SUB-D 25 de l’interface RIB/FlashRIB.
Pour la programmation du CM340, j’utilise le même cordon de programmation que celui destiné aux GM950.
 

Partie logicielle

Pour les interactions avec la carte Raspberry Pi, j’utilise le client terminal Putty.
Afin d’avoir un affichage correct des couleurs et des caractères spéciaux, ainsi qu’une gestion complète de touches du clavier (F1 à F12 par exemple), il faut envoyer la commande suivante après avoir saisi les identifiants de session:
export TERM=xterm
Si vous avez un doute, avant d’utiliser la commande précédente, vous pouvez vérifier le paramétrage de la Raspberry Pi avec cette commande:
echo $TERM
Si la réponse est vt220, vous n’aurez pas les couleurs, les bons caractères ASCII spéciaux pour les interfaces graphiques, et une gestion correcte des touches de fonctions.

Méthode n°1: Carte SD prête à l’emploi

J’ai procédé à l’installation du système d’exploitation Raspberry Pi OS Lite et des logiciels tel qu’indiqué dans les étapes détaillées par la suitre sur cette page. La copie de ma carte SD est disponible à cet emplacement: RaspberryOs_PACKET.img.
La somme de contrôle MD5 pouvant être utilisée pour vérifier l’intégrité du fichier est la suivante: 03db5b67ef2dc446a8fa680d5bbf68ea
Une fois cette image copiée sur votre carte SD, à l’aide de Win32 Disk Imager sous Windows par exemple, il ne vous restera plus qu’à procéder à la configuration des logiciels.

Méthode n°2: Installation complète des logiciels par vos soins

Je pars du principe que votre carte Raspberry Pi est déjà en service, avec son système d’exploitation installé et le système de fichier étendu pour utiliser tout l’espace disponible sur la carte SD (4Go ou plus).
J’ai choisi d’utiliser une version du système d’exploitation Raspberry Pi OS dépourvue d’interface graphique, afin de ne pas gaspiller inutilement les ressources CPU et mémoire de ma carte Raspberry Pi. Libre à vous d’utiliser une version avec interface graphique. cela n’a pas d’impact sur les commandes à exécuter, décrites ci-dessous.

La version du système d’exploitation utilisé est obtenue avec la commande suivante:
cat /etc/os-release
Les infos retournées sont:

PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Pour rappel, la carte son USB utilisé est celle-ci: https://fr.aliexpress.com/item/32490078407.html.
Elle présente l’avantage de fournir sur sa sortie casque un signal audio suffisamment fort et sans bruit audible pouvant être appliqué directement sur l’entrée audio « ligne » du poste MOTOROLA CM340 utilisé lors de mes essais.
L’entrée microphone de cette carte son nécessite l’ajout d’une résistance variable afin d’abaisser le niveau du signal fourni par le poste, sur sa sortie non « squelchée » non filtrée, et l’ajout d’un condensateur d’une dizaine de µF monté en série pour supprimer la tension de polarisation de microphone électret fournie par la carte son USB, sans impacter les fréquences basses du signal audio.

Si vous optez pour un système d’exploitation sans interface graphique, assurez-vous d’avoir activé l’accès ssh, ou d’avoir un accès à la console par l’intermédiaire du port série.

Mise à jour du système d’exploitation

sudo apt-get update
sudo apt-get upgrade

Installation du modem logiciel: direwolf

Le modem logiciel évite d’utiliser une interface matérielle TNC. Le codage et le décodage des signaux transitant par la carte son est donc assuré par le processeur de la carte Raspberry Pi.
sudo apt-get remove --purge pulseaudio
sudo apt-get install libasound2-dev
sudo apt install git
cd ~
sudo apt install -y cmake
git clone https://www.github.com/wb2osz/direwolf
cd ~/direwolf
mkdir build && cd build
cmake ..
make -j4
sudo make install
make install-conf

Valider l’installation des nouveaux fichiers en appuyant sur la touche Y du clavier lorsque vous y êtes invité:
Do you want to continue? [Y/n]

11/11/2023: NOTE POUR LES UTILISATEURS DE RASPBERRY PI ZERO

Si vous avez compilé direwolf à partir d’autre chose qu’une Raspberry Pi Zero (Raspberry Pi 3 par exemple), mais que vous utilisez ensuite la carte SD sur une Raspberry Pi Zero, vous devrez obligatoirement recompiler direwolf. Cela vient des différences au niveau du processeur.
Ce problème est reconnaissable facilement lorsque vous tentez d’exécuter direwolf:
pi@raspberrypi:~$ direwolf
Dire Wolf version 1.6
Illegal instruction

Pour recompiler direwolf, il suffit de supprimer le répertoire build :
sudo rm -r ~/direwolf/build
Et ensuite relancer la compilation:
cd ~/direwolf
mkdir build && cd build
cmake ..
make -j4
sudo make install
make install-conf

Dans le cas qui nous concerne ici, seul direwolf est impacté par les différences au niveau du processeur. Le reste du paramétrage éventuellement déjà réalisé ne nécessitera pas de modification pour fonctionner sur la Raspberry Pi Zero.

Fin de la note concernant la Raspberry Pi Zero



 

Paramétrage de direwolf

Détection des cartes son et identification de celle qui sera utilisée par direwolf:
aplay -L
Parmi les résultats, on doit obtenir celui-ci lorsqu’on utilise une carte son USB : plughw:CARD=Device,DEV=0

Déplacer puis éditer le fichier de config de direwolf pour y définir les paramètres de fonctionnement:
sudo cp /home/pi/direwolf/build/direwolf.conf /home/pi/direwolf/direwolf.conf
sudo nano /home/pi/direwolf/direwolf.conf

Définir la carte son à utiliser (ON NE TOUCHE PAS À LA PARTIE QUI PARLE DE stdin !!!):
ADEVICE plughw:CARD=Device,DEV=0
Le nombre de canaux audio:
ACHANNELS 1

L’indicatif du point d’accès PACKET (remplacer F1Z** par l’indicatif qui sera utilisé par le BBS):
MYCALL F1Z**
Le débit éventuellement suivant l’excursion autorisée sur la fréquence qui sera utilisée (dans mon cas, en VHF 2m, ça sera une excursion 11F3 donc du 1200 bauds):
MODEM 1200
La GPIO qui servira à piloter le PTT du poste (utiliser ce signal pour piloter un transistor type NMOS par exemple, qui mettra à la masse le signal PTT du poste à chaque passage en émission):
PTT GPIO 25

Étape facultative: Si vous souhaitez créer une passerelle APRS, il faudra demander un accès au serveur de votre choix puis renseigner votre identifiant et mot de passe:

  • Aller sur ce site pour demander un accès sur les serveurs aprs2.net: https://apps.magicbug.co.uk/passcode/index.php
  • Définir ensuite dans le fichier direwolf.conf le nom du serveur (exemple pour la zone européenne):
    IGSERVER euro.aprs2.net
  • Saisir les données de connexion utilisateur / mot de passe (remplacer F1Z** par l’indicatif communiqué pour obtenir le mot de passe, et remplacer 12345 par le mot de passe reçu):
    IGLOGIN F1Z** 12345

On n’aura pas besoin d’installer d’autres logiciels si on ne veut créer qu’une passerelle APRS.

Pour annoncer la présence de votre passerelle APRS sur les cartes type aprs.fi, il faut éditer la ligne commençant par PBEACON sendto=IG delay=0:30 every=60:00 symbol= »igate » overlay=S et modifier les coordonnées GPS, l’info de puissance de l’émetteur, l’altitude, le gain de l’antenne (pensez à tenir compte des pertes de la ligne coaxiale pour que l’information soit réaliste) et ajoutez si vous le souhaitez un commentaire qui sera visible dans l’infobulle sur la carte. Exemple:
PBEACON sendto=IG delay=0:30 every=60:00 symbol="igate" overlay=S lat=43^16.37N long=000^15.30W power=25 height=170 gain=0 comment="Mairie de Ouistreham"
Dans l’exemple ci-dessus, j’ai pris la position GPS de la mairie de Ouistreham. Si vous ne connaissez pas votre position GPS, aidez vous de Google Maps par exemple:

Une fois votre position retrouvée sur le plan, faites un clic avec le bouton de droite de la souris pour placer le marqueur « goutte d’eau », puis cliquez dessus avec le bouton de gauche pour afficher le menu déroulant et cliquez enfin sur Plus d’infos sur cet endroit. Les coordonnées s’affichent dans le bandeau de gauche. Il faudra arrondir les valeurs pour ne pas avoir de virgule dans ce que vous allez saisir dans le fichier direwolf.conf, et bien faire attention aux repères N, S, E et W.
Le message qu’on souhaite faire apparaître dans l’infobulle sur la carte APRS doit être inséré entre les guillemets dans le paramètre comment=.
Ce paramétrage s’appliquera au prochain démarrage de direwolf.
Comme ce message n’est envoyé qu’au serveur IGATE, on voudra peut-être indiquer aussi la présence de la passerelle par voie radio, afin que le commentaire s’affiche sur l’écran des postes à l’écoute de la fréquence.
On éditera alors de la même façon la ligne commençant par PBEACON delay=0 every=10 overlay=S symbol= »digi »:
PBEACON delay=0 every=10 overlay=S symbol="digi" lat=43^16.37N long=000^15.30W power=25 height=170 gain=0 comment="Mairie de Ouistreham"

Quitter l’édition du fichier direwolf.conf en sauvant les modifications:
Ctrl+X suivi de Y pour sauver les données saisies.

 

Paramétrage de la carte son

Premier test, avec une session ssh supplémentaire donnant accès à alsamixer avec cette commande:
sudo alsamixer
On sélectionne la carte son avec F6. Ici c’est la carte son USB qui nous intéresse, nommée USB Audio Device:

On va ajuster le volume en sortie Speaker avec les tonalités de test qui seront générées par direwolf:

Donc, on garde alsamixer visible sur une fenêtre de terminal, et on en utilise une autre pour exécuter la commande suivante:
direwolf -x
À cet instant, direwolf pilote la GPIO de la carte Raspberry Pi définie précédemment pour piloter le passage en émission du poste, et lui fait émettre des tonalités qui vont permettre d’ajuster l’excursion de l’émission (la variation de fréquence de la porteuse lorsqu’elle est modulée).
Il y a de nombreuses méthodes pour mesurer l’excursion du signal émis par le poste:

  • Au banc radio: la plus simple et rapide, il suffit de lire la valeur sur l’écran de l’appareil de mesure ;
  • À l’analyseur de spectre: plus long, en comparant l’occupation spectrale de la porteuse non modulée à celle de la porteuse modulée ;
  • Avec un récepteur réglé sur la même fréquence et paramétré sur le même mode d’excursion: on augmente le niveau audio jusqu’à ce que le récepteur ne soit plus en mesure de recevoir le signal émis, puis on abaisse le niveau du signal audio jusqu’à ce que le récepteur soit à nouveau en mesure de démoduler correctement le signal.

Sur la fenêtre affichant alsamixer, on ajuste le niveau audio en sortie de la carte son avec les flèches « haut » et « bas » du clavier.

Une fois le réglage effectué, on peut quitter l’exécution du test de direwolf en appuyant sur Ctrl+C.

Pour la réception, c’est moins simple, car on va devoir faire des enregistrements et les rejouer sur un PC.
Sur la fenêtre de terminal où est exécuté alsamixer, on va afficher l’intégralité des périphériques en appuyant sur F5:

On sélectionne le périphérique d’enregistrement nommé CAPTURE en utilisant les flèches « gauche » et « droite » du clavier.
Avant de faire le premier enregistrement audio, on va s’assurer qu’il n’y a pas d’amplification du signal réalisée par la carte son, en ajustant le niveau de l’entrée CAPTURE jusqu’à obtenir l’indication Mic [dB gain: 0.00] en jaune en haut à gauche de la fenêtre alsamixer.
Ici, il n’est pas nécessaire d’exécuter direwolf, donc on va réutiliser la fenêtre de terminal pour exécuter les commandes d’enregistrement audio. En considérant que ma carte son est identifiée sous l’appellation plughw:CARD=Device,DEV=0:
arecord -f S16_LE -r 44100 -D plughw:CARD=Device,DEV=0 --duration=1 test.wav

On utilisera ensuite par exemple WinSCP pour récupérer le fichier test.wav sur le PC, et vérifier l’amplitude du signal capté par la carte son à l’aide d’Audacity.
WinSCP: https://winscp.net/eng/download.php
Audacity: https://www.audacityteam.org/download/windows/

Si le signal enregistré dans le fichier wav est trop faible, on règlera la résistance variable insérée entre la sortie audio du poste et l’entrée microphone de la carte son, afin d’avoir une dynamique de signal audio plus confortable pour le décodage logiciel. Inversement, si le signal remplit toute la zone de visualisation sur Audacity, il conviendra de régler la résistance variable afin d’atténuer l’amplitude du signal appliqué sur l’entrée microphone de la carte son. Il n’est normalement pas nécessaire de retoucher les réglages sur alsamixer.

Une fois que ça fonctionne, on va paramétrer le démarrage de direwolf en tant que service pour une exécution automatique en cas de redémarrage de la Raspberry Pi, suite à une perte d’alimentation secteur par exemple:
sudo apt-get install screen
Valider l’installation des nouveaux fichiers en appuyant sur la touche Y du clavier lorsque vous y êtes invité:
Do you want to continue? [Y/n]

 

Création du service

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

Coller le texte suivant dans le fichier:
[Unit]
Description=direwolf Service
After=syslog.target network.target
[Service]
User=root
WorkingDirectory=/home/pi
ExecStart=/usr/bin/screen -S direwolf -D -m /usr/local/bin/direwolf -p
ExecStop=/usr/bin/screen -S direwolf -X quit
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

Quitter l’édition du fichier en sauvant les modifications: Ctrl+X suivi de Y pour sauver les données saisies.

Création du timer de ce service:
sudo nano /lib/systemd/system/direwolf.timer

Coller le texte suivant dans le fichier:
[Timer]
OnStartupSec=60
[Install]
WantedBy=multi-user.target

Quitter l’édition du fichier en sauvant les modifications: Ctrl+X suivi de Y pour sauver les données saisies.

Attribuer l’exécution des fichiers et créer les liens symboliques:
sudo chmod 755 /lib/systemd/system/direwolf.service
sudo chmod 755 /lib/systemd/system/direwolf.timer
sudo ln -s /lib/systemd/system/direwolf.service /etc/systemd/system/direwolf.service
sudo ln -s /lib/systemd/system/direwolf.timer /etc/systemd/system/direwolf.timer

Activer le timer d’exécution automatique:
sudo systemctl enable direwolf.timer

Redémarrer le démon pour prendre en compte les nouveaux paramètres :
sudo systemctl daemon-reload

Fonctions de gestion du service, pour le démarrer, le redémarrer ou le stopper (à mémoriser, il n’est pas utile de les exécuter maintenant) :
sudo systemctl start direwolf.service
sudo systemctl restart direwolf.service
sudo systemctl stop direwolf.service

Information sur le statut du service (à mémoriser, il n’est pas utile de l’exécuter maintenant) :
sudo systemctl status direwolf.service

 

 

Mise en service d’un BBS ou d’un client PACKET

Dans les deux cas, il faut installer les outils de prise en charge du protocole AX.25 avec la commande suivante:
sudo apt-get install libax25 ax25-apps ax25-tools

 

Installation du BBS: BPQ

Cette partie du tutoriel s’appuie sur les indications fournies sur ce site Internet: https://www.prinmath.com/ham/howto/quickstart/

Installer l’assistant d’installation et de configuration de BPQ créé par AC0KQ:
cd ~
mkdir BPQ
cd BPQ
wget http://www.prinmath.com/ham/bpq-config
chmod a+x bpq-config
sudo ./bpq-config

Répondre favorablement aux actions demandées par le logiciel de configuration. Il suffit d’appuyer sur Entrée pour valider le choix préselectionné en rouge sur chaque écran.
À la fin de cette première phase de paramétrage, valider le redémarrage du système.
Une fois que la Raspberry Pi a fini de redémarrer, exécuter à nouveau l’assistant de configuration:
cd BPQ
sudo ./bpq-config

Finaliser la configuration en renseignant chaque paramètre.

 

Installation du client PACKET: Linpac

cd /etc/ax25/
sudo nano axports

Ajouter cette ligne à la fin du fichier en remplaçant MYCALL par votre indicatif:
vhfdrop MYCALL-1 19200 255 4 PACKET 1200 bps
Quitter l’édition du fichier en sauvant les modifications: Ctrl+X suivi de Y pour sauver les données saisies.

Installer les outils nécessaires pour pouvoir compiler ensuite linpac:
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install libncurses-dev
sudo apt-get install checkinstall

Valider l’installation des nouveaux fichiers en appuyant sur la touche Y du clavier lorsque vous y êtes invité:
Do you want to continue? [Y/n]

Ensuite on utilise les lignes de commande suivantes trouvées sur https://www.m0pqa.com/2020/06/packet-radio-on-raspberry-pi-cheap-way.html?showComment=1592996094627:
cd /tmp
mkdir Linpac
cd Linpac
git clone https://git.code.sf.net/p/linpac/linpac linpac-linpac
cd linpac-linpac
git checkout develop
autoreconf --install
./configure --prefix=/usr
make -j8
sudo /bin/mkdir -p "/usr/share/linpac/contrib"
sudo /bin/mkdir -p "/usr/share/doc/linpac/czech"
sudo /bin/mkdir -p "/usr/share/linpac/macro/cz"
sudo /bin/mkdir -p "/usr/libexec/linpac"
# Note that the following 4 lines are a single command:
sudo checkinstall --pkgname linpac --pkgversion 0.28 --pkgrelease 1 \
--pkggroup hamradio --pkgsource https://sourceforge.net/projects/linpac/files/LinPac/ \
--maintainer ki6zhdattrinityos.com --provides linpac \
--requires libax25,ax25-apps,ax25-tools,libncurses6 make install

Ne vous inquiétez pas si l’affichage sur la console semble se figer assez rapidement après avoir validé les commandes ci-dessus. Tout dépend de la version de carte Raspberry Pi que vous utilisez. L’installation complète a pris une trentaine de minutes sur ma Raspberry Pi Zero (la toute première version), avec des moments où l’affichage semble figé.

Appuyer sur la touche Entrée du clavier lorsque le message suivant apparaît:
Should I create a default set of package docs? [y]:

Appuyer à nouveau sur la touche Entrée du clavier lorsque le message suivant apparaît:
Please write a description for the package.
End your description with an empty line or EOF.
>>

Appuyer une dernière fois sur la touche Entrée du clavier lorsque le message suivant apparaît:
Enter a number to change any of them or press ENTER to continue:

L’opération se termine avec un message qui confirme l’installation réalisée avec succès:
Copying files to the temporary directory...OK
Stripping ELF binaries and libraries...OK
Compressing man pages...OK
Building file list...OK
Building Debian package...OK
Installing Debian package...OK
Erasing temporary files...OK
Writing backup package...OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been installed and saved to
/tmp/Linpac/linpac-linpac/linpac_0.28-1_armhf.deb
You can remove it from your system anytime using:
dpkg -r linpac
**********************************************************************

Configuration de Linpac (la doc d’origine mentionne listen, mais ça a été remplacé par axlisten):
sudo chmod 4755 /usr/bin/axlisten
sudo mkdir -p /var/ax25/mail
sudo chown $USER /var/ax25/mail

Pour tester le bon fonctionnement, on ouvre une nouvelle fenêtre de terminal et on exécute direwolf (le -t 0 ne fait qu’enlever les couleurs):
sudo direwolf -t 0 -p

direwolf -p va générer automatiquement un lien vers le point de montage de l’interface TNC qu’il a créé (exemple avec /dev/pts/2) :
Created symlink /tmp/kisstnc -> /dev/pts/2

Le numéro de point de montage peut varier (exemple /dev/pts/2 ci-dessus), alors le lien créé par direwolf -p va nous éviter d’avoir à adapter la ligne de commande qui permettra de lier le TNC au port AX.25. On utilisera à chaque fois /tmp/kisstnc.

Pour utiliser linpac, je conseille de créer un script qui va monter l’interface TNC et exécuter linpac automatiquement:
cd ~
sudo nano linpac.sh

Copier coller les lignes de commandes suivantes dans le fichier:
#!/bin/bash
sudo kissattach /tmp/kisstnc vhfdrop
sudo kissparms -c 1 -p vhfdrop
sudo mheardd
linpac

Quitter l’édition avec Ctrl+X suivi de y pour valider la sauvegarde des modifications dans le fichier.

Rendre ce script exécutable avec la commande suivante:
sudo chmod u+x linpac.sh

Il suffira alors de taper la commande suivante pour effectuer toutes les opérations permettant d’exécuter linpac:
./linpac.sh

À la première exécution de linpac, vous serez invité à saisir les informations suivantes:

  • Callsign without SSID: votre indicatif ;
  • Home BBS callsign: L’indicatif du BBS auquel vous allez vous connecter habituellement, suivi du port (-1 par exemple), ex.: F1XYZ-1 ;
  • Name of the port to connect to: saisir vhfdrop (soit le nom qui a été défini lorsque vous avez édité ax25ports précédemment) ;
  • Digipeaters used to connect: Passer sans rien définir ici ;
  • Full hierarchical address will depend on your region: Saisir quelque chose de ce type #FMLR.FRA.EU (#FMLR pour la zone Midi-Pyrénées / Languedoc-Roussillon) ou voir http://menut.patrick.free.fr/radioamateurisme/radiolepacketlesbbs.htm.

Une fois le terminal Linpac affiché à l’écran, on peut commencer à dialoguer avec un BBS. Pour se connecter à F1XYZ-1, par exemple:
:C F1XYZ-1

Pour quitter proprement linpac, utiliser la combinaison de touches Alt+X.

 

 

Décodage des trames AX.25

Il peut être utile de décoder les trames AX.25 recues, pour identifier une émission APRS qui perturbe un relais par exemple.
Dans ce cas, en partant du principe que direwolf est déjà en cours d’exécution, il faut exécuter les commandes suivantes:
sudo kissattach /tmp/kisstnc vhfdrop
sudo kissparms -c 1 -p vhfdrop
sudo mheardd
sudo axlisten -archt

Les données décodées s’afficheront directement sur l’écran du terminal.

Leave a Reply


The reCAPTCHA verification period has expired. Please reload the page.