Installazione del supporto AX.25 in Linux
Paolo Subiaco IW3GRX
11 dicembre 2000
Abstract
Mentre l'informatica consumer si sta sempre piu` orientando verso il sistema operativo Windows, nell'ambito
radioamatoriale il sistema operativo maggiormente sviluppato risulta certamente essere Linux.
Saranno valutate le peculiarita` di questo sistema operativo, e verra' descritta la procedura di
installazione del supporto AX.25 per l'utilizzo delle applicazioni Linux in packet radio.
1. Introduzione
Il packet radio in ambito radioamatoriale ha sicuramente visto il suo periodo di maggior sviluppo 6÷8
anni fa, quando risultava il miglior modo per sperimentare le tecniche di trasmissione digitali.
Ultimamente sembra che la facilita` e disponibilita` dei collegamenti internet stia scemando il
fervore degli anni scorsi: se da un lato si sono compiuti passi rilevanti per la velocizzazione della
rete dei nodi, dall'altro i servizi bbs e dx-cluster sono rimasti pressocche` immutati, cosicche'
l'utente ha sempre piu' preferito orientarsi verso servizi piu' completi, che mettano a disposizione
piu' informazioni, ma soprattutto piu' facili da collegare: ha quindi optato per la rete internet!
Ma e' anche vero che internet non mette a disposizione tutti i servizi radioamatoriali: questo e' quindi
un buon motivo per creare una rete IP via radio che renda accessibili i servizi radioamatoriali
mediante le comode applicazioni che vengono solitamente utilizzate in internet.
E' quindi necessario avere un driver che consenta di gestire il protocollo IP su rete AX.25,
attraverso l'hardware che si intende utilizzare (TNC, BAYCOM, SCC, eccetera), che sia
facilmente utilizzabile alla stessa stregua del modem telefonico.
Mentre in Windows e` necessario installare un driver esterno per la gestione del protocollo AX.25,
come ad esempio FlexNet che pero` non consente il trasferimento di frame piu' lunghi di 256, ed AGWPE che
invece richiede la registrazione di 29 dollari per l'utilizzo continuato del modulo IP, in Linux il protocollo
AX.25 e` gestito direttamente dal kernel, ovvero dal cuore del sistema operativo,
consentendo l'uso di MTU arbitrariamente elevati e l'ottimizzazione dei tempi
di risposta e quindi della velocita` di trasferimento.
A conti fatti, Linux risulta attualmente l'unico sistema operativo veramente valido per l'utilizzo
del protocollo IP via radio, e l'ideale non
solo come server ma anche come client, data la grande disponibilita` di software applicativo.
2. Requisiti
Prima di entrare nell'argomento principe di questo articolo, ovvero l'installazione del protocollo e delle
utitilities AX.25, dovremo fare delle premesse.
Partiamo dal presupposto di aver installato correttamente una distribuzione recente di Linux, che utilizzi
il kernel versione 2.2.x o superiore: se invece dovete ancora fare questa operazione, dovrete procurare
una distribuzione Linux ed installarla.
Mandrake, RedHat, Suse, sono sicuramente le piu` complete e user-friendly, ma
vanno comunque bene anche Slackware, Debian, OpenLinux, eccetera.
Solo poche distribuzioni installano per default anche i moduli AX.25, pertanto
supporremo di dover compiere tutte le operazioni quindi modificare il kernel,
installare le utilities AX.25 ed il software radioamatoriale.
3. Modifica del kernel
E' necessario configurare, compilare e installare un nuovo kernel, inserendo il supporto per il protocollo
AX.25 e per l'hardware utilizzato (TNC in KISS, BAYCOM, schede SCC, SoundModem, eccetera).
Bisognera` aprire una shell, digitare al prompt su e relativa password di
root per diventare superuser, se non lo siete gia`,
digitare cd /usr/src e verificare che esista la directory (o il link simbolico) linux:
se non esiste procedere all'installazione del kernel come indicato nell' appendice A2.
A questo punto digitate cd linux per entrarvi, e successivamente ls -l per listare il
contenuto di tale directory: se apparira` solo la directory include dovrete installare anche
i sorgenti del kernel
e digitare make xconfig se si e' nell'ambiene grafico, oppure
make menuconfig.
A questo punto bisognera` configurare il kernel,
ed in particolare bisognera` entrare nel menu Amateur Radio Support e selezionare con y
Amateur radio Support
Amateur Radio AX.25 Level 2 protocol
Amateur Radio NET/ROM protocol
ed uno dei seguenti driver corrispondenti all'hardware da voi utilizzato.
A questo punto sara` necessario uscire salvando la configurazione del kernel, e digitare al prompt della
shell make dep && make bzImage && make modules && make modules_install
A questo punto bisognera` aspettare che venga completata la compilazione, dopo bisognera` fare in modo
che il nuovo kernel appena compilato venga utilizzato al prossimo boot.
Generalmente bisognera` digitare cp arch/i386/boot/bzImage /boot (al posto di i386 dovrete
specificare l'architettura del vostro computer) per copiare il nuovo kernel nella directory /boot
e poi seguire la procedura del vostro bootloader per utilizzare questo file come kernel,
come indicato in appendice.
A questo punto proseguire al passo successivo, senza riavviare il computer.
4. Compilazione e installazione utilities AX.25
Ora il nuovo kernel supportera` il protocollo AX.25, ma e` necessario installare anche una
serie di applicazioni, tools e librerie per tale protocollo.
Vi sono due modi di operare: installare i pacchetti RPM e DEB precompilati, soluzione velocissima
ma meno flessibile, oppure installare i sorgenti, compilarli e poi installarli; noi faremo
riferimento a quest'ultimo metodo.
I pacchetti da installare sono:
ax25-apps-0.0.4.tar.gz
ax25-tools-0.0.5.tar.gz
libax25-0.0.7.tar.gz
o versioni successive, che troverete su
ftp://ftp.funet.fi/pub/ham/unix/Linux/packet/ax25/.
Prelevati i 3 archivi, dovrete scomprimerli digitando
tar xvzf ax25-apps-0.0.4.tar.gz -C /usr/local
tar xvzf ax25-tools-0.0.5.tar.gz -C /usr/local
tar xvzf libax25-0.0.7.tar.gz -C /usr/local
cd /usr/local
dopodiche` dovrete entrare in ciascuna delle 3 directory create, e digitare
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install
make installconf
La prima linea serve a ``creare il Makefile'', ovvero capire qual'e' l'attuale configurazione
del vostro sistema; la seconda linea effettua la compilazione, la terza installa gli applicativi,
e la quarta installa i file di configurazione.
E' chiaro che se avevate gia` installato i 3 pacchetti, potrete saltare la quarta procedura
mantenendo quindi validi i file di configurazione che gia' avevate ed installando soltanto i
nuovi binari e librerie AX.25.
5. Configurazione delle porte AX.25
Nella directory /etc/ax25 troverete tutti i file di configurazione: l'unico file che
dovrete modificare e' /etc/ax25/axports che dovra' contenere la lista delle porte radio
che installerete.
Supponendo di voler installare una sola porta in KISS, bisognera` inserire in tale file la
linea
tnc IW3GRX 38400 255 7 Link to IR3CSM node (38400bps)
in cui il primo parametro definisce il nome della porta radio, e di seguito il nominativo,
la velocita' seriale, il paclen, maxframe, e una descrizione breve della porta radio.
Gli altri files presenti consentono di configurare altri servizi non indispensabili:
- ax25d
- consente di rendere il proprio linuxbox collegabile in AX.25 anche dagli altri, ed a
seconda del nominativo chiamato e chiamante, di attivare un particolare servizio, come il
linuxnode (una specie di nodo thenet), un ttylink (una specie di talk), axspawn (entrare in
console), e cosi via.
- ax25rtd
- consente di riconoscere automaticamente l'indirizzo fisico di un datagram IP ricevuto,
impostando anche la route IP, arp, e route ax25.
- ax25ipd
- demone che consente di effettuare il trasporto dei frame AX.25 su rete IP (AX/IP): puo'
quindi essere utilizzato in una rete locale quando si vuole effettuare connessioni AX.25
anche da altri hosts collegati a linux attraverso un collegamento IP, tipicamente schede
ethernet.
- rxecho
- effettua il forward dei frame AX.25 da una interfaccia all'altra a seconda del nominativo
del destinatario.
- node
- Si tratta di un nodo, simile ad un thenet evoluto, a cui gli utenti si possono collegare
e da qui effettuare downlink verso altri nodi e servizi, oppure accedere al linuxbox.
Altri servizi sono attivabili, e potrete leggervi la documentazione digitando
man nomeservizio ad esempio man ttylinkd.
6. Attivazione dei servizi AX.25 al bootstrap
Ad ogni boot si dovranno attivare le porte e i servizi AX.25 che si intendono utilizzare:
anche in questo caso illustreremo la configurazione minimale per l'utente, facendo riferimento
ai seguenti dati:
- porta kiss con nome tnc, come riportato in /etc/ax25/axports, collegato su COM2
(a cui e' associato in Linux il device /dev/ttyS1) e con MTU configurato a 256 byte
- numero IP utilizzato: 44.134.177.25
- indirizzo IP del default gateway e del dns: 44.134.177.204
- indirizzo fisico del default gateway e dns: IR3IP
- nodo SuperVozelj attraverso cui indirizzare i datagram IP: IR3CSM
L'ultimo script ad essere eseguito, ad ogni boot, e` /etc/rc.d/rc.local: dovremo pertanto
editarlo inserendo come ultime righe
# Attiva le interfacce radio
/etc/rc.d/rc.ax25
# Configura le routes
/etc/rc.d/rc.route
E' chiaro che bisognera' a questo punto creare i due files rc.ax25 e rc.route: il primo file
conterra` le linee
#! /bin/sh
echo "Attiva interfaccia radio..."
# collega la porta kiss tnc, su com2, con numero IP 44.134.177.25 e MTU=256
kissattach -m 256 /dev/ttyS1 tnc 44.134.177.25
# configura la nuova interfaccia (che si chiamera` ax0)
ifconfig ax0 netmask 255.255.255.255
# ora setta i parametri kiss: txdelay 200ms, txtail 30ms, persist 128, slottime 100ms
kissparms -p tnc -t 20 -l 3 -r 128 -s 10
7. Utilizzo di Linux in rete radioamatoriale
La cosa piu` bella e' sicuramente la possibilita` di instaurare rapporti sociali con gli altri per
scambiarsi esperienze e chiacchierare; a tal scopo si puo` usare un client chat per
collegarsi alla rete IRC radioamatoriale e quindi chiacchierare con gli altri radioamatori connessi,
avendo inoltre la possibilita` di scambiarsi files, suoni, e voce (campionata e compressa attraverso la
scheda audio).
In figura e' mostrata una connessione con il programma xchat alla rete HamNet a cui fanno attualmente
parte 7 server italiani, uno croato ed uno serbo, ovviamente raggiungibili via radio!
Chiaramente le possibilita` non si fermano qui: molti credono che il protocollo IP serva solo per navigare,
e sebbene questo non sia vero e` comunque scontata l'utilita` di poter utilizzare un browser per collegarsi
comodamente al web per la lettura di documentazione, progetti, o per accedere a certi servizi, come
riportato nelle successive due figure.
Nella prima viene visualizzata una pagina presente nel server
http://ir3ip.ampr.org in cui gli utenti locali hanno pensato di mettere a disposizione le proprie
informazioni creandosi ciascuno la propria homepage.
Nella seconda viene mostrata l'interfaccia web attraverso cui gli utenti possono listare, leggere e scrivere
messaggi della rete packet, sfruttando il bbs dpbox collegabile all'url
http://ir3ip.ampr.org/cgi-bin/dp.tcl: il vantaggio in questo
caso e` la possibilita' di aprire piu` finestre contemporaneamente per la lettura dei messaggi e scrittura dei
messaggi, sfruttando inoltre le possibilita` di codifica gzip dei browser piu` recenti e riducendo pertanto
il tempo di scaricamento dei messaggi.
Altra possibilita`: volete prelevare i nuovi file arrivati dalla rete packet? Non c'e' nulla di meglio del buon
protocollo ftp o http, che introducono un checksum per cui non vi saranno piu` checksum error, e soprattutto
sfruttando un browser come netscape,mozilla,konqueror,... potrete visualizzare "al volo" eventuali immagini,
documenti pdf, e potrete prelevare piu` file contemporaneamente, il tutto con solo qualche click.
E per coloro a cui non piace la grafica? Ci sono validi programmi terminali packet anche per Linux, sia
in modo grafico (come LinKT) che in modo testo (come TNT di cui e' riportata una schermata); ai nostalgici del
TstHost posso consigliare TNT che risulta molto simile come funzionamento, oppure la soluzione di far funzionare
TstHost attraverso l'emulatore dosemu.
A1. Configurazione del boot loader
Il boot loader consente di selezionare ed avviare il sistema operativo all'accensione del computer.
I boot loader piu` versatili sono sicuramente GRUB e LILO, i quali possono avviare diversi
tipi di sistemi operativi, quali DOS, Windows, OS/2, Linux ed altri tipi di unix.
Oltre alla selezione del sistema operativo, e' possibile selezionare anche quale kernel eseguire, cosicche`
lo stesso sistema potra` partire con kernel diversi a seconda delle esigenze; spiegheremo la procedura per
l'installazione di un nuovo kernel Linux a seconda del boot loader utilizzato, supponendo che l'architettura
utilizzata si basi sul microprocessore i386 e abbracciando la buona abitudine di inserire i kernel di Linux
nella directory /boot.
- LILO
- Il file di configurazione di lilo e' disponibile in /etc/lilo.conf, ed editandolo si notera` la
presenza di una prima parte generale, seguita da un certo numero di sezioni ognuna delle quali riferita a
sistemi operativi/kernel diversi.
Se si vuole inserire un nuovo kernel, bastera` aggiungere in /etc/lilo.conf una nuova sezione, del tipo
image=/boot/bzImage # nuova immagine kernel
label=new # label associata a tale kernel
root=/dev/hdc2 # partizione del root filesystem
read-only # partizione in sola lettura, all'avvio
e quindi bisognera` spostare il kernel dalla directory in cui e` stato compilato a /boot, con il
comando cp /usr/src/linux/arch/i386/boot/bzImage /boot
Si dovra' infine digitare, con i privilegi di root, il comando lilo affinche` venga riaggiornato il
settore di boot con il giusto indirizzo a cui si trova il nuovo kernel.
- GRUB
- Al contrario di LILO, che deve essere rieseguito ogni qualvolta venga compilato un nuovo kernel, GRUB
deve essere eseguito solo nel caso in cui abbiate modificato il file di configurazione /boot/grub/menu.lst,
che nel nostro caso dovra' contenere una sezione del tipo
title new
kernel (hd2,2)/boot/bzImage root=/dev/hdc2
Per installare GRUB, oppure per aggiornarne la configurazione, bisognera` eseguire con i privilegi di root
il comando grub cosicche` apparira` il prompt al quale digiterete:
grub> setup (hd0)
Anche in questo caso il kernel va copiato in /boot con il comando cp /usr/src/linux/arch/i386/boot/bzImage /boot
cosicche` al prossimo reboot del computer, potrete far funzionare il nuovo kernel.
La documentazione completa di questi due bootloader e` solitamente presente nelle directories /usr/doc/lilo*
oppure /usr/doc/grub* di Linux, sia in formato testo che in formato PostScript o DVI; in mancanza, si potra` digitare da una shell
i comando info lilo oppure info grub per leggere il manuale in linea (man pages).
A2. Installazione dei sorgenti del kernel
Spesso i programmi di installazione di Linux, nel caso in cui non vi sia molto spazio su disco,
preferiscono evitare l'installazione dei sorgenti del kernel e si limitano ad installarne gli headers, ovvero
i file di inclusione necessari alla compilazione dei programmi.
Potrete verificare questo entrando nella directory /usr/src/linux e controllare che esista solo la
sottodirectory include/, in caso contrario avrete gia i sorgenti installati.
Per l'installazione, molte distribuzioni fanno uso dei pacchetti rpm, altre dei pacchetti deb,
altre ancora dei pacchetti tar.gz o tar.bz2
A seconda dei casi, bisognera` individuare, nella distribuzione posseduta, il pacchetto contenente i sorgenti
del kernel, che assumera` nomi del tipo kernel-source* o lx* oppure linux-*.
La modalita` di installazione e' la seguente:
Pacchetto | comando |
.rpm | rpm -i nomefile |
.deb | dpkg -i nomefile |
.tar.gz | tar xvzf nomefile -C /usr/src |
.tar.bz2 | tar xvyf nomefile -C /usr/src oppure tar xvIf nomefile -C /usr/src |
A questo punto i sorgenti saranno installati, e pronti per la compilazione seguendo la procedura sopra indicata.
printfooter('../','linux_ax25','20021102'); ?>