aprile 07, 2009

Installazione del supporto AX.25 in Linux

| No comment
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.

schermata di make xconfig

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 i386seguire la procedura del vostro bootloader per utilizzare questo file come kernel,
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
dovrete specificare l'architettura del vostro computer) per copiare il nuovo kernel nella directory /boot e poi come indicato in appendice.


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 nomeservizioman 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:
ad esempio
  • 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).

Programma per connessioni a IRC

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.


Pagine web degli utenti di ir3ip

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.

Pagine per l'accesso al bbs ik3get

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.

Programma terminale


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.

A2. Installazione dei sorgenti del kernelLa 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).

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:

Pacchettocomando
.rpmrpm -i nomefile
.debdpkg -i nomefile
.tar.gztar xvzf nomefile -C /usr/src
.tar.bz2tar 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.

Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
, , , , , ,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari