Il y a une mise à jour de cet article disponible ici.
Il existe une ribambelle d’articles expliquants comment configurer ax25 sous Linux. Quasiment aucun de ceux que j’ai pu lire expliquent comment passer votre TNC en mode KISS ou bien comment lancer des programmes lorsque l’interface ax25 devient active.
La lecture de cette article présuppose des connaissances de base dans Linux, un système Linux fonctionnel et connecté au web pour télécharger les paquets ad-hoc ainsi que la maitrise de l’éditeur VI. La distribution que j’ai utilisé ici est Voyage Linux. C’est une distribution basée sur la dernière Debian stable et sans aucune interface graphique. Elle a l’avantage de tourner sur des machines très économes en énergie comme ces client légers Fujitsu Siemens.
Ces manips sont suceptibles de fonctionner sous toutes les distributions basées sur Debian, comme Ubuntu, XUbuntu etc…
Toutes ces manipulations sont effectuées en tant qu’utilisateur root. J’utilise un TNC2 multi avec une ROM Nord><Link TF2.7, il se peut que vous ayez à adapter ceci suivant votre TNC. Cet article n’avait pas pour vocation première à être un tutoriel complet et détaillé, je le destinais en premier lieur à archiver et documenter mon travail.
Nous allons commencer par installer les paquets ax25 avec la commande :
apt-get install libax25 ax25-apps ax25-tools |
Ensuite il nous faut éditer le fichier /etc/ax25/axports Pour l’ouvrir dans l’éditeur VI on tape la commande :
vi /etc/ax25/axports |
On y défini son indicatif avec éventuellement un SSID. Lorsqu’on utilisera une appli APRS on pourra y spécifier un autre indicatif. Il est important de noter que le champ speed ne correspond pas à la vitesse de transmission sur l’air mais à celle utilisées pour communiquer avec le TNC via le port série ! Dans mon cas 9600bps.
Voici pour exemple le contenu de mon fichier :
# /etc/ax25/axports # # The format of this file is: # # name callsign speed paclen window description # APRS F4FXL-1 9600 255 2 144.800 MHz (APRS 1200 bps) |
C’est tout pour la config ax25 proprement dite, il va maintenant falloir créer une interface réseau utilisable par tout le système. Nous allons donc éditer le fichier « interfaces » et y créer notre interface. Mais, avant de faire cela nous allons créer un script qui va nous passer le TNC en mode kiss.
Créons un fichier que nous nommons ax25services et plaçons le dans /usr/sbin/, rendons le exécutable et éditons le
touch /usr/sbin/ax25services chmod +x /usr/sbin/ax25services vi /usr/sbin/ax25services |
Voici le code du script, j’ai commenté le code de façon à en décrire le plus possible le fonctionnement.
#! /bin/sh # /usr/sbin/ax25services # # Ce script présuppose que le TNC est sur le port série ttyS0. # Ceci est à adapter suivant vos besoins ################################################################### # Ceci sera éxecuté lorsque le script sera appelé avec le paramètre start case "$1" in start) echo "Configuring TNC and starting AX25 iface" #stty nous permet de configurer le port série de sorte #que tout soit envoyé en 9600bps, sans aucun échappement ou autre stty 9600 cs8 -raw /dev/ttyS0 sleep 1 #On règle le TX Delay à 250ms printf "\r\033T 25\r">/dev/ttyS0 sleep 1 #Une fois tout les paramètres du TNC on peut passer le TNC en mode Kiss printf "\r\033@k\r">/dev/ttyS0 # Le passage du TNC en kiss peut prendre du temps, attendons 5sec sleep 5 #On appel kissattach en lui spécifiant le nom de l'interface que #nous avons préalablement spécifié dans /etc/ax25/axports #dans mon cas, APRS #L'adresse IP est celle utilisée par TCPIP over ax25 #On est obligé d'en spécifier une, si on utilise pas TCPIP over ax25 #mettre une adresse bidon en 192.168.x.x ! kissattach /dev/ttyS0 APRS 192.168.223.159 sleep 1 #J'utilise ldsped, qui est un équivalent linux à AGW Packet Engine (AGWPE) #http://www.on7lds.net/ldsped/ #La ligne ci-dessous peut être mise en commentaire si on utilise pas ldsped ldsped -d ;; #Ceci sera éxecuté lorsque le script sera appelé avec stop en paramètre stop) #On affiche ce que nous faisons echo "Stopping ax25 iface" #On tue à la barbare tout les process, moche mais efficace ! pkill kissattach || pkill -9 kissattach ; rm -f /var/lock/LCK..ttyS0 #On tue ldsped, cette ligne peut être supprimée si on utilise pas ldsped pkill ldsped ;; # ceci sera exécuté si aucun paramètre n'est spécifié *) echo "Usage: ax25services {start|stop}" exit 1 ;; esac exit 0 |
Une fois ce script en place, nous allons éditer le fichier de configuration des interfaces réseau.
vi /etc/network/interfaces |
On y rajoute la section qui va configurer notre interface ax25.
Important : l’ip doit être la même que dans le script ax25services !
#ax25 iface auto ax0 iface ax0 inet static address 192.168.223.159 netmask 255.255.255.0 network 192.168.223.0 broadcast 192.168.223.255 # Ceci va nous lier au port hwaddress ax25 F4FXL-1 # Créons le port avant de démarrer l'interface # C'est ici que notre script ax25services sera appelé # Notez l'argument start pre-up ax25services start # C'est ici que notre script ax25service est appelé lorsque # L'interface est fermée post-down ax25services stop |
Nous y sommes ! Il suffit de brancher son TNC sur le PC sur le bon port série, de s’assurer que le dit TNC est bien configuré pour 9600bps sur le port série et on peut tester le tout en activant l’interface via :
ifup ax0 |
Configuring TNC and starting AX25 iface AX.25 port APRS bound to device ax0 |
On vérifie que l’interface est bien là via la commande:
ifconfig |
On doit voir l’interface ax0 dans la liste :
ax0 Link encap:AMPR AX.25 HWaddr F4FXL-1 inet addr:192.168.223.123 Bcast:192.168.223.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:255 Metric:1 RX packets:1283 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:111173 (108.5 KiB) TX bytes:2305 (2.2 KiB) eth0 Link encap:Ethernet HWaddr 00:90:dc:a1:16:f6 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:11 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:177 errors:0 dropped:0 overruns:0 frame:0 TX packets:177 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:15523 (15.1 KiB) TX bytes:15523 (15.1 KiB) wlan0 Link encap:Ethernet HWaddr 00:22:2d:49:44:c7 inet addr:172.16.0.4 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::222:2dff:fe49:44c7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2035 errors:0 dropped:0 overruns:0 frame:0 TX packets:1366 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:304538 (297.4 KiB) TX bytes:251705 (245.8 KiB) |
Si tout est vraiment 100% OK l’interface sera montée lors du démarrage du système. Il ne reste plus qu’à tester avec des logiciels comme Xastir, Digined ou tout autre logiciel ax25 !
Pingback: Un digipeater APRS sous Debian
Pingback: Editer des fichiers sous Linux depuis un système Windows
Pingback: AX25 sous Linux Debian et dérivés (MAJ) | F4FXL