×

Fondamenta: il kernel Linux e lo stack AX.25

Linux è l’unico sistema operativo al mondo con supporto nativo per AX.25 direttamente nel kernel. AX.25, NET/ROM e ROSE sono tutti supportati direttamente nel kernel Linux, il che significa che un sistema Linux può agire come nodo packet completo senza dipendere da software di terze parti per il livello di rete.

Sopra il kernel si appoggiano tre pacchetti (che operano in spazio utente) fondamentali, mantenuti dalla comunità (fork attivo di VE7FET su GitHub):

  • libax25 — librerie condivise per le applicazioni AX.25
  • ax25tools — strumenti di configurazione (kissattach, kissparms, axparms, mheardd…)
  • ax25apps — applicazioni utente (call, listen, beacon, PMS…)

TNC Software (Modem/Soundcard)

Al di là del classico TNC collegato via seriale, è oggi molto più conveniente usare le controparti software, che usano direttamente le porte audio del PC.

Dire Wolf (wb2osz)
Il riferimento attuale per chi vuole un TNC software. È un modem/TNC “soundcard” AX.25 e codificatore/decodificatore APRS. Può essere usato in modo autonomo per osservare il traffico APRS, come digipeater, gateway APRStt o Internet Gateway (IGate). Supporta 300, 1200 e 9600 bps, può interfacciarsi con SDR, e funge da TNC virtuale per decine di applicazioni esterne via KISS o AGWPE. Gira su Linux, Windows e macOS, ed è la scelta più comune su Raspberry Pi.
Da notare che l’uso a 9600 baud è possibile se l’apparato radio supporta questa modalità.

Soundmodem (Thomas Sailer, HB9JNX)
Un TNC software che si aggancia direttamente allo stack AX.25 del kernel. Più datato di Dire Wolf, ma ancora usato in certi contesti, specialmente per configurazioni con supporto HF a 300 bps (dove richiede attenzione alle frequenze tonali per un bug noto).

Aggancio TNC ↔ Kernel

Per operare con lo stack di rete di Linux è necessario connettere logicamente il TNC al kernel. Per questo sono disponibili:

kissattach
Il tool classico (parte di ax25tools) per collegare un TNC in KISS mode a un’interfaccia di rete AX.25 del kernel (es. ax0). Crea un’interfaccia di rete che il sistema vede come qualsiasi altra scheda di rete. Funziona bene ma richiede i moduli kernel AX.25 caricati.

tncattach
Rimuove la necessità dei pacchetti specifici del kernel Linux e toglie l’overhead introdotto da kissattach non necessario per i frame Ethernet. Introduce anche la capacità di inviare frame Ethernet su qualsiasi TNC (incluso Direwolf), rendendo più semplice che mai avere TCP/IP completo su radio amatoriale. È l’alternativa moderna a kissattach, particolarmente utile su distribuzioni dove il supporto kernel AX.25 è ridotto.

mkiss
Utility per gestire TNC multiporta (es. KPC-9612 a doppio canale): divide la connessione seriale in più PTY, uno per porta, ognuno poi agganciato con kissattach.

Client Terminale / Chat Packet

Per che volesse provare ad operare il packet in modo tradizionale:

LinPac
Programma console-oriented per chat AX.25 keyboard-to-keyboard e PBBS, modulare, che usa lo stack AX.25 di Linux. Include supporto per sessioni connesse multiple concorrenti, una schermata per messaggi UI non connessi, e un client automatico per messaggi packet. Storico client Linux per il packet classico, ora in sviluppo nella versione 2.0.

AX25_POPT (DerHirschi)
Un programma terminale packet moderno e multipiattaforma per AX.25. Supporta connessioni versatili come KISS su TCP/Seriale, AXIP su UDP e dispositivi Linux AX.25. Più recente di LinPac, include supporto per BBS, YAPP file transfer e APRS.

call
Il client a riga di comando incluso in ax25apps. Permette di connettersi a una stazione AX.25 direttamente da terminale, utile per test e operatività minimalista.

listen
Sempre parte di ax25apps: cattura e visualizza tutti i frame AX.25 ricevuti sull’interfaccia, l’equivalente da riga di comando del MON ON del TNC hardware.

Client APRS

L’uso più comune della tecnologia packet oggi rimane APRS (Automatic Packet Reporting System)

Xastir
Programma per ricevere e tracciare i pacchetti di posizione APRS. Supporta 125 formati mappa, diversi tipi di TNC e stazioni meteo, sintetizzatore vocale Festival, rete AX.25 (Soundmodem/Baycom/SCC) e sette lingue. È il client APRS grafico di riferimento su Linux, maturo e molto configurabile.

YAAC (Yet Another APRS Client)
Client APRS Java, multipiattaforma. Interfaccia moderna, supporta connessione a Dire Wolf via KISS TCP, visualizzazione su mappa OpenStreetMap, messaggistica APRS. Buona alternativa a Xastir per chi preferisce un’interfaccia più moderna.

Info

Una mappa globale delle stazioni attive in APRS è su aprs.fi

BBS e Nodi

I BBS radio sono oramai meno utili di quanto non lo fossero in passato, ma ci sono alcuni colleghi (ed io sono fra questi) che continuano a tenerli attivi.

F6FBB (FBB)
Il BBS packet più diffuso nel mondo Linux. Debian include il software BBS F6FBB completo. FBB è un po’ particolare nella configurazione, dato che il suo script di avvio crea i file di configurazione al primo avvio. Supporta forwarding automatico tra BBS, messaggi personali e bollettini, ed è compatibile con lo stack AX.25 del kernel.

LinBPQ / BPQ32
Porta Linux del popolare BPQ32 di John Wiseman (G8BPQ). È un nodo/switch AX.25 completo che può gestire contemporaneamente più porte (KISS, AXIP, Winlink, VARA, ARDOP, Telnet) e integrare BBS, digipeater, RMS gateway e cluster DX. Molto usato per nodi pubblici e gateway Winlink su Raspberry Pi.

Uronode
Front-end per nodi AX.25/NET/ROM/ROSE, pensato come sostituto moderno del classico node. Si integra con lo stack Linux e con BPQ32, e presenta all’utente collegato un prompt interattivo con comandi per navigare la rete packet (connect, nodes, links, routes…).

Routing e Tunneling

Siamo in un ambito un po’ borderline rispetto alla pura attività radio, ma la tecnologia rende possibile anche usare come trasporto la rete internet.

ax25ipd
Implementa AXIP, un protocollo per instradare frame AX.25 su Internet. Non è lo stesso di Telnet: è usato principalmente come collegamento backbone a lunga distanza tra due nodi AX.25. Permette di creare link virtuali tra nodi packet geograficamente distanti, tunnelando il traffico AX.25 su IP.

axudp / ax25ip
Varianti di tunneling AX.25 su UDP/IP, usate per backbone tra nodi quando la latenza di TCP è indesiderata.

In sintesi

Linux offre quindi un ecosistema completo e modulare: ogni pezzo è intercambiabile e si può costruire tutto, dal semplice client packet a un nodo pubblico multifunzione con gateway Winlink, digipeater APRS e BBS, su hardware economico come un Raspberry Pi.