4. Installazione del software per AX.25, NET/ROM e Rose

Per installare correttamente il supporto per AX.25 sulla vostra macchina Linux, occorre configurare ed installare un kernel appropriato e poi installare le utilità AX.25

Suggerimento

Invece che compilare ed installare il software direttamente dai sorgenti, può essere preferibile installarsi i pacchetti binari già pronti. Sono infatti presenti pacchetti in formato deb e RPM in diversi siti tra cui http://www.debian.org e http://rpmfind.net nei quali una ricerca con la stringa 'ax25' può restituire il pacchetto richiesto. Incidentalmente la distribuzione Debian è considerata da molti la più "Amateur Radio friendly", e fornisce molte applicazioni già preparate sotto forma di pacchetto Debian (.deb) (uno dei fondatori del progetto, è un radioamatore)

4.1. La compilazione del kernel

Se avete già familiarità col processo di compilazione del Kernel potete saltare questa sezione; state ben attenti comunque, a selezionare le opzioni appropriate, al momento della compilazione. Se non siete ancora pratici continuate a leggere. Può essere consigliabile anche una lettura del Linux Kernel HOWTO.

La posizione dove comunemente si decomprimono i sorgenti del kernel è la directory /usr/src, nella quale viene creata una sottodirectory chiamata linux. Per eseguire questa operazione, occorre essere loggati come root ed eseguire una sequenza di comandi simile alla seguente:

# cd /usr/src
# mv linux linux.old
# tar xzvf linux-2.4.9.tar.gz
# cd linux

Dopo aver decompresso il sorgente del kernel ed applicato l'aggiornamento, occorre eseguire lo script di configurazione e scegliere le opzioni che permettono al kernel di adattarsi al vostro hardware, e le funzionalità che volete che siano implementate nel kernel stesso. Per fare ciò usate il comando:

# make menuconfig

Se siete sotto X, è possibile avere un'interfaccia grafica usando:

# make xconfig

È possibile anche usare:

# make config

Verrà descritto il metodo di configurazione a menu (menuconfig) perché è più comodo e semplice nella scelta delle opzioni, ma potete usare anche l'altro, se vi trovate più a vostro agio.

In entrambi i casi vi verranno proposte una serie di opzioni alle quali dovete rispondere 'Y' (sì) o 'N' (no) (potreste anche voler rispondere 'M' se siete intenzionati ad usare i moduli del kernel, ma per semplicità supponiamo che non lo siate, modificate le scelte in modo appropriato nel caso sceglieste di usare un kernel di tipo modulare).

Le opzioni più importanti per la parte di configurazione relativa all'AX.25 sono:

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers
    ...
General setup  --->
    ...
    [*] Networking support
    ...
Networking options  --->
    <*> UNIX domain sockets
    ...
    [*] TCP/IP networking
    ...
    [?] IP: tunneling
    ...
Amateur Radio Support --->
    --- Packet Radio protocols
    [*]   Amateur Radio AX.25 Level 2 protocol
    [?]     AX.25 DAMA Slave support
    [?]     Amateur Radio NET/ROM protocol
    [?]     Amateur Radio X.25 PLP (Rose)
    AX.25 network device drivers  --->
    [?] Serial port KISS driver
    [?] Serial port 6PACK driver
    [?] BPQ Ethernet driver
    [?] High-speed (DMA) SCC driver for AX.25
    [?] Z8530 SCC driver
    [?] BAYCOM ser12 fullduplex driver for AX.25
    [?] BAYCOM ser12 halfduplex driver for AX.25
    [?] BAYCOM picpar and par96 driver for AX.25
    [?] BAYCOM epp driver for AX.25
    [?] Soundcard modem driver
    [?]   soundmodem support for Soundblaster and compatible cards
    [?]   soundmodem support for WSS and Crystal cards
    [?]   soundmodem support for 1200 baud AFSK modulation
    [?]   soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
    [?]   soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
    [?]   soundmodem support for 2666 baud AFSK modulation
    [?]   soundmodem support for 4800 baud HAPN-1 modulation
    [?]   soundmodem support for 4800 baud PSK modulation
    [?]   soundmodem support for 9600 baud FSK G3RUH modulation
    <?> YAM driver for AX.25

Le opzioni che ho indicato con '* sono quelle alle quali si deve rispondere 'Y'. Il resto dipende da che hardware avete e quali altre opzioni volete includere. Alcune di queste saranno descritte più avanti in dettaglio, per cui se non sapete ancora che funzionalità implementare, andate avanti nella lettura e ritornate su questo argomento più tardi.

Dopo aver completato la configurazione del kernel dovreste essere in grado di compilarlo senza problemi con i seguenti comandi:

# make dep
# make clean
# make zImage

Assicuratevi di spostare il file del kernel arch/i386/boot/zImage nel posto in cui lo ritenete più opportuno, di editare il vostro file /etc/lilo.conf e rieseguire lilo per essere sicuri che il nuovo boot di Linux avvenga con nuovo kernel appena compilato

4.1.1. A proposito dei moduli del Kernel

Compilare i driver come moduli del kernel può essere una soluzione utile se si ha intenzione di utilizzare l'AX.25 soltanto occasionalmente e si vuole essere in grado di caricarlo o scaricarlo a richiesta in modo da risparmiare risorse di sistema. Qualcuno, però, ha riscontrato problemi a far funzionare i driver modularizzati in quanto più complicati da configurare. In caso si voglia compilare uno o più driver come modulo, occorre anche dare i seguenti comandi:

# make modules
# make modules_install

per installare i moduli nella posizione appropriata.

Occorrerà anche aggiungere alcune voci nel file /etc/modules.conf in modo da assicurarsi che il programma kerneld sappia dove localizzare i moduli del kernel. Occorrerebbe aggiungere/modificare:

alias net-pf-3     ax25
alias net-pf-6     NET/ROM
alias net-pf-11    rose
alias tty-ldisc-1  slip
alias tty-ldisc-3  ppp
alias tty-ldisc-5  mkiss
alias bc0          baycom
alias nr0          NET/ROM
alias pi0a         pi2
alias pt0a         pt
alias scc0         optoscc    (o uno degli altri driver scc)
alias sm0          soundmodem
alias tunl0        newtunnel
alias char-major-4 serial
alias char-major-5 serial
alias char-major-6 lp

Suggerimento

Nei sistemi Linux basati su Debian queste voci dovrebbero andare nel file /etc/modutils/aliases e poi andrebbe lanciato il comando /sbin/update-modules.

4.2. Le librerie, i programmi e gli strumenti AX.25

Una volta compilato il nuovo kernel e fatto il reboot con questo, occorre compilare ed installare i programmi, le librerie e gli strumenti per gestire il protocollo AX.25.

Per compilare ed installare libax25 occorre dare una serie di comandi simili a questi:

# cd /usr/src
# tar xzvf libax25-0.0.7.tar.gz
# cd libax25-0.0.7
# ./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var
# make
# make install

Suggerimento

Gli argomenti del comando configure fanno sì che i file vengano installati nelle posizioni "standard" sotto la directory /usr nelle sottodirectory bin, sbin, etc e man. Infatti, dando il comando configure senza opzioni, tutti i file verranno messi sotto /usr/local. Questo può portare al fatto di avere i file di configurazione sia sotto /usr che /usr/local. Se si vuole essere sicuri che ciò non succeda si può creare il link simbolico /usr/local/etc/ax25 che punta a /etc/ax25 nella primissima fase dell processo d'installazione, in modo da non doversene preoccupare.

Se questa è la prima installazione sulla vostra macchina, si può dare anche il comando:

# make installconf

per installare anche alcuni file di esempio dentro la directory /etc/ax25/ dai quali partire per creare la propria configurazione.

A questo punto si può effettuare l'installazione degli strumenti AX.25 in questo modo:

# cd /usr/src
# tar xzvf ax25-tools-0.0.6.tar.gz
# cd ax25-tools-0.0.6
# ./configure --prefix=/usr  --sysconfdir=/etc --localstatedir=/var
# make
# make install
# make installconf (se si vogliono installare i file di configurazione)

E finalmente installare le applicazioni AX.25:

# cd /usr/src
# tar xzvf ax25-apps-0.0.4.tar.gz
# cd ax25-apps-0.0.4
# ./configure --prefix=/usr  --sysconfdir=/etc --localstatedir=/var
# make
# make install
# make installconf (se si vogliono installare i file di configurazione)

Se si ricevono messaggi d'errore del tipo:

gcc -Wall -Wstrict-prototypes -O2 -I../lib -c call.c
call.c: In function `statline':
call.c:268: warning: implicit declaration of function `attron'
call.c:268: `A_REVERSE' undeclared (first use this function)
call.c:268: (Each undeclared identifier is reported only once
call.c:268: for each function it appears in.)

allora bisogna assicurarsi di avere il pacchetto ncurses correttamente installato nel proprio sistema. Lo script di configurazione tenta di localizzare il pacchetto nelle posizioni più comuni, ma alcune distribuzioni la installano in modo errato, e per questa ragione lo script non riesce a trovarlo.