<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<Article lang="it">

<ArtHeader>

<Title>Linux Amateur Radio AX.25 HOWTO</Title>
<Author>
<FirstName>Jeff</FirstName>
<Surname>Tranter, VE3ICH</Surname>
<Affiliation>
<Address>
<Email>tranter@pobox.com</Email>
</Address>
</Affiliation>
</Author>
<PubDate>v2.0, 19 Settembre 2001</PubDate>

<Abstract>

<Para>
Linux &egrave; forse l'unico sistema operativo che offre un supporto
nativo standard per il protocollo AX.25, utilizzato in tutto il mondo
dai radioamatori per il packet radio. Questo documento ha lo scopo di
spiegare come installare e configurare questo supporto. Traduzione a cura di
Nico Alberti (nico@TOGLIMI.langhirano.it) e revisione a cura di Michele
Ferritto (m.ferritto@TOGLIMI.virgilio.it).
</Para>

</Abstract>

</ArtHeader>

<Sect1><Title>Introduzione</Title>

<!-- TODO:
     Consider reorganizing structure of document to make it more logical
     and add more introductory information on packer radio and each of
     the protocols.
-->

<Para>
Quella radioamatoriale &egrave; un'attivit&agrave; non commerciale e senza
scopo di lucro che viene praticata da hobbisti in tutto il mondo. I radioamatori sono
titolari di
una licenza, rilasciata dalle autorit&agrave; governative, che d&agrave; loro diritto di
utilizzare porzioni dello spettro radio per attivit&agrave; non commerciali e senza
scopo di lucro, come radiocomunicazioni personali, sperimentazione tecnica
e fornitura di servizi di pubblica utilit&agrave;. Il Packet Radio &egrave; un particolare
modo di trasmissione digitale che utilizza i protocolli di rete per fornire
comunicazioni tra computer.
</Para>

<Para>
  Questo documento era originariamente un'appendice dell'HAM-HOWTO, ma &egrave; 
  diventato troppo grande per essere gestito in quel modo. Questo documento
  descrive come installare e configurare il supporto nativo di AX.25,
  NET/ROM e Rose per Linux. Vengono descritte alcune tipiche
  configurazioni che possono essere usate come modelli di partenza.
</Para>

<Para>
  L'implementazione in Linux dei protocolli di rete per radioamatori &egrave;
  molto flessibile, ma per coloro che non hanno particolare familiarit&agrave;
  con questo sistema operativo il processo di configurazione pu&ograve;
  apparire complesso e laborioso; infatti occorre un po' di tempo per
  capire tutto l'insieme. Configurare il proprio sistema pu&ograve; apparire
  un'operazione molto difficile se non ci si &egrave; prima documentati sul
  funzionamento di Linux in generale, del resto non si pu&ograve; pretendere di
  passare a Linux da un altro sistema operativo senza prima documentarsi
  su Linux stesso.
</Para>

<Sect2><Title>Modifiche rispetto alla versione precedente</Title>

<ItemizedList>

<ListItem>
<Para>
Questo documento ha un nuovo curatore.
</Para>
</ListItem>

<ListItem>
<Para>
Il documento &egrave; stato convertito nel formato DocBook SGML. La maggior parte
delle informazioni tabellari sono state convertite in tabelle.
</Para>
</ListItem>

<ListItem>
<Para>
Il documento &egrave; stato rilasciato sotto licenza GNU FDL.
</Para>
</ListItem>

<ListItem>
<Para>
Sono state aggiunte nuove informazioni sui driver per Baycom, YAM, 6PACK e
soundmodem, in user mode.
</Para>
</ListItem>

<ListItem>
<Para>
&Egrave; stata aggiunta una sezione sull'APRS
</Para>
</ListItem>

<ListItem>
<Para>
Sono stati effettuati diversi altri aggiornamenti poich&eacute; l'ultima versione di
questo documento risaliva al 1997. Probabilmente ci sono ancora molti errori e
diverse informazioni non pi&ugrave; valide.
</Para>
</ListItem>

</ItemizedList>

</Sect2>

<Sect2><Title>Dove reperire nuove versioni di questo documento</Title>

<Para>
  La fonte migliore &egrave; da un archivio del Linux Documentation Project.
  In particolare il Linux Documentation Project gestisce un server Web
  nel quale questo documento vi appare come
<ULink URL="http://www.linuxdoc.org/HOWTO/AX25-HOWTO.html">the AX25-HOWTO</ULink>.
Questo documento &egrave; inoltre disponibile in vari formati presso il
<ULink URL="http://www.linuxdoc.org">Linux Documentation Project</ULink>.
</Para>

<para>
[NdT: la traduzione italiana è disponibile presso il sito dell'Italian Linux
Documentation Project, reperibile all'indirizzo <ulink
url="http://it.tldp.org">http://it.tldp.org</ulink> (oppure <ulink
url="http://ildp.pluto.it">http://ildp.pluto.it</ulink>)]
</para>

<Para>
 &Egrave; sempre possibile contattarmi, ma dato che passo le nuove versioni
  del documento direttamente al coordinatore del LDP, &egrave; probabile che io
  non sia in grado di darvi versioni complete pi&ugrave; aggiornate di quella presente
  nell'archivio
</Para>

</Sect2>

<Sect2><Title>Documenti correlati</Title>

<Para>
  C'&egrave; parecchia documentazione che tratta del networking in Linux in
  generale e che raccomando calorosamente di leggere poich&eacute; sar&agrave; di
  grande aiuto nello sforzo di capire pi&ugrave; a fondo
  l'argomento.
</Para>

<ItemizedList>

<ListItem>
<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/Net-HOWTO/index.html">Linux Networking HOWTO</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html">Linux Ethernet HOWTO</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html">Linux Firewall and Proxy Server HOWTO</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/Adv-Routing-HOWTO.html">Linux 2.4 Advanced Routing HOWTO</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/mini/NET/ROM-Node.html">NET/ROM-Node mini-Howto</ULink>
</Para>
</ListItem>

</ItemizedList>

<Para>
&Egrave; possibile che incontriate riferimenti a un documento chiamato HAM HOWTO.
Questo documento &egrave; obsoleto ed &egrave; stato sostituito dall'<ULink
URL="http://radio.linux.org.au/">Hamsoft Linux Ham Radio Applications
and Utilities Database</ULink>. Ulteriori informazioni di carattere generale
si possono trovare all'interno di altri
<ULink
URL="http://www.linuxdoc.org/HOWTO/HOWTO-INDEX/index.html">Linux
HOWTO</ULink>.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Linux e i protocolli per Packet Radio</Title>

<Para>
Il protocollo <Emphasis>AX.25</Emphasis>
offre la possibilit&agrave; di lavorare o meno
in modo connesso, ed &egrave; usato sia da solo in collegamenti punto-punto,
che come trasporto per altri protocolli come il TCP/IP e NET/ROM
</Para>

<Para>
La sua struttura &egrave; simile all'AX.25 livello 2, con alcune estensioni
che lo rendono pi&ugrave; adatto all'ambito radioamatoriale.
</Para>

<Para>
Il protocollo NET/ROM rappresenta un tentativo di realizzare un
protocollo di rete completo e usa AX.25 al livello pi&ugrave; basso come
protocollo dati. Presenta uno strato di rete che &egrave; una forma adattata
di AX.25 e offre il routing dinamico e l'alias dei nodi.
</Para>

<Para>
Il protocollo Rose fu concepito ed implementato da Tom Moulton W2VY
come un'implementazione del livello di pacchetto X.25 ed &egrave; stato progettato
per operare col protocollo AX.25 come protocollo a livello dati. Esso fornisce
anche un layer di rete. L'indirizzamento in Rose &egrave; costituito da un numero a 10 cifre.
Le prime quattro rappresentano il Codice Identificativo dei Dati di
rete (Data Network Identification Code) (DNIC) come indicato dalla
Raccomandazione CCIT X.121 Appendice B. Maggiori informazioni sul
protocollo Rose si possono trovare sul
<ULink URL="http://www.rats.org/">Web server RATS</ULink>.
</Para>

<Para>
Alan Cox &egrave; stato lo sviluppatore del primo supporto AX.25 nel
kernel di Linux, successivamente preso in carico da
<ULink URL="mailto:g4klx@g4klx.demon.co.uk">Jonathon
Naylor</ULink> che ha aggiunto
anche il supporto per NET/ROM e Rose. Il supporto per il protocollo
DAMA &egrave; stato sviluppato da
<ULink URL="mailto:jreuter@poboxes.com">Joerg</ULink>, DL1BKE,
 mentre il supporto per il
Baycom e il SoundModem &egrave; stato aggiunto da
<ULink URL="mailto:sailer@ife.ee.ethz.ch">Thomas Sailer</ULink>.
Il software specifico per AX.25 &egrave; ora sviluppato e mantenuto da un piccolo
gruppo di sviluppatori su
<ULink URL="http://www.sourceforge.net">SourceForge</ULink>.
</Para>

<Para>
Il codice sviluppato per Linux supporta i TNC (Terminal Node Controllers) in
modo KISS o basati su 6PACK, l'Ottawa PI card, la Gracilis PacketTwin card e
le altre schede SCC basate su Z8530 attraverso il driver generico SCC,
diversi modem Baycom seriali e paralleli e i modem YAM con interfaccia
seriale. Il driver soundmodem di Thomas Sailer permette l'utilizzo delle
SoundBlaster e delle schede sonore basate sul chipset Crystal; inoltre il
suo pi&ugrave; recente soundmodem, che funziona in user-mode, utilizza i
driver standard del kernel, per cui dovrebbe funzionare con ogni scheda
audio supportata da Linux.
</Para>

<Para>
I programmi utente sono costituiti da un semplice PMS (Personal Message System),
un beacon, un programma a linea di comando per effettuare
connessioni, <Literal>listen</Literal> (un esempio su come catturare tutti i
frame AX.25 a livello di interfaccia) e programmi per configurare il
protocollo NET/ROM. &Egrave; incluso anche un programma tipo server AX.25
per gestire ed instradare connessioni AX.25 e un demone NET/ROM che
svolge la maggior parte del lavoro di supporto per questo protocollo.
</Para>

<Para>
Ci sono anche programmi di utilit&agrave; che supportano l'APRS, fornendo funzionalit&agrave;
quali il digipeating e il gateway verso Internet.
</Para>

<Sect2><Title>Come tutto si combina assieme</Title>

<Para>
Quella in Linux &egrave; un'implementazione dell AX.25 del tutto nuova.
Sebbene assomigli in molti modi a quella di NOS, BPQ o altre implementazioni
AX.25, non &egrave; uguale a nessuna di queste. L'AX.25 di Linux &egrave; in grado
di essere configurato in modo tale da poter comportarsi praticamente
come le altre implementazioni, ma il processo di configurazione &egrave; del
tutto diverso.
</Para>

<Para>
Per aiutarvi a capire a cosa occorra pensare mentre si effettua la
configurazione, questa sezione descrive alcune delle caratteristiche
strutturali dell'implementazione AX.25 e come questa si inserisce
nel contesto dell'intera struttura di Linux.
</Para>

<Para>
<Emphasis>Diagramma semplificato dei livelli dei protocolli di rete</Emphasis>
<Screen>
 _____________________________________________
|         |           |             |         |
| AF_AX25 |AF_NET/ROM |  AF_INET    | AF_ROSE |
|=========|===========|=============|=========|
|         |           |             |         |
|         |           |    TCP/IP   |         |
|         |           |________     |         |
|         |   NET/ROM          |    | ROSE    |
|         |____________________|____|_________|
|            AX.25                            |
|_____________________________________________|
</Screen>
</Para>

<Para>
Questo schema illustra con chiarezza come NET/ROM, Rose e TCP/IP
lavorino sopra l'AX.25, ma anche che, ognuno di questi, sia considerato come
un diverso protocollo a livello applicazione.

I nomi che iniziano con '<Literal>_</Literal>' sono quelli dati alla
'<Emphasis>Address Family</Emphasis>' di ognuno dei seguenti protocolli nei
programmi che ne fanno uso. La cosa importante che va messa in luce in questo
caso, &egrave; l'implicita dipendenza dalla configurazione dei dispositivi AX.25, che
si riflette in quella dei dispositivi NET/ROM, ROSE o TCP/IP.
</Para>

<Para>
<Emphasis>Diagramma dei moduli software dell'implementazione di rete in Linux</Emphasis>
</Para>
<Screen>
 ___________________________________________________________________________
|         |           |                       ||          |                 |
| User    | Programmi |   call        node    ||  Daemons | ax25d  mheardd  |
|         |           |   pms         mheard  ||          | inetd  NET/ROMd  |
|_________|___________|_______________________||__________|_________________|
|         | Sockets   |open(), close(), listen(), read(), write(), connect()|
|         |           |_____________________________________________________|
|         |           |   AF_AX25   |  AF_NET/ROM |   AF_ROSE   |  AF_INET  |
|         |___________|_____________|_____________|_____________|___________|
|Kernel   | Protocolli|   AX.25     |   NET/ROM   |     ROSE    | IP/TCP/UDP|
|         |___________|_____________|_____________|_____________|___________|
|         | Devices   |   ax0,ax1   |  nr0,nr1    | rose0,rose1 | eth0,ppp0 |
|         |___________|_____________|_____________|_____________|___________|
|         | Drivers   | Kiss   PI2   PacketTwin   SCC   BPQ     | slip ppp  |
|         |           |     Soundmodem      Baycom              | ethernet  |
|_________|___________|_________________________________________|___________|
|Hardware | PI2 Card, PacketTwin Card, SCC card, Serial port, Ethernet Card |
|_________|_________________________________________________________________|
</Screen>

<Para>
Questo diagramma &egrave; un po' pi&ugrave; generale di quello precedente e vuole
  mostrare la relazione che intercorre tra le applicazioni utente, il
  kernel e l'hardware. In particolare si nota il rapporto esistente tra
  le interfacce di programmazione delle applicazioni (API) a livello di
  Socket, i moduli effettivamente relativi ai vari protocolli, i dispositivi 
  di rete del kernel e i driver. Ogni cosa in questo diagramma
  dipende da ci&ograve; che &egrave; presente sotto di
  lui, quindi in generale le configurazioni devono essere fatte
  dal basso verso l'alto. Se, per esempio, si vuole far funzionare il
  programma <Emphasis>call</Emphasis>, occorre anche configurare l'hardware,
  poi assicurarsi che il
  kernel abbia l'opportuno driver, che sia stato creato
  l'opportuno dispositivo di rete, che il kernel includa il protocollo
  desiderato e che a sua volta, esponga un interfaccia di programmazione che
  possa essere utilizzata dal programma <Emphasis>call</Emphasis>.
  La stesura di questo documento ricalca a grandi linee quest'ordine.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>I componenti software per AX.25/NET/ROM/Rose</Title>

<Para>
Il software per AX.25 &egrave; costituito da tre componenti: il kernel, gli
strumenti di configurazione di rete e i programmi di utilit&agrave;.
</Para>

<Para>
Il supporto del protocollo AX.25 &egrave; divenuto piuttosto stabile a partire dai
kernel della serie 2.2. In questo documento si suppone che si stia usando il
kernel pi&ugrave; recente che, alla data di stesura, &egrave; il 2.4.9
</Para>

<Note>
<Para>
Le versioni dei software indicate in questo documento sono le pi&ugrave; recenti alla
data di stesura, ma sono soggette ad aggiornamenti, per cui si
prega di controllare la presenza di nuove versioni al momento di scaricarseli.
</Para>
</Note>

<Sect2><Title>Dove reperire il kernel, gli strumenti e i programmi di utilit&agrave;</Title>

<Sect3><Title>I sorgenti del kernel</Title>

<Para>
I sorgenti del kernel si possono trovare su
<Literal>www.kernel.org</Literal> e
<Literal>ftp.kernel.org</Literal>.
Il kernel 2.4.9 pu&ograve; essere scaricato da
<ULink URL="ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.gz">
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.gz</ULink>.
</Para>

</Sect3>

<Sect3><Title>Gli strumenti di rete</Title>

<Para>
L'ultima versione standard degli strumenti di rete di Linux supporta l'AX.25 e NET/ROM
e si pu&ograve; trovare su
<ULink URL="http://www.tazenda.demon.co.uk/phil/net-tools">
http://www.tazenda.demon.co.uk/phil/net-tools</ULink>.
</Para>

<Para>
La versione pi&ugrave; recente del pacchetto ipchains si trova su
<ULink URL="http://netfilter.filewatcher.org/ipchains/">
http://netfilter.filewatcher.org/ipchains</ULink>.
</Para>

<Note>
<Para>
Di solito, comunque, non &egrave; necessario scaricarsi ed installare questi programmi
poich&eacute; ogni distribuzione recente dovrebbe includerli.
</Para>
</Note>

</Sect3>

<Sect3><Title>Le utilit&agrave; AX.25</Title>

<Para>
Le vecchie ax25-utils, che funzionavano con i kernel della serie 2.0 e 2.1 sono
ormai obsolete e sono state sostituite da un nuovo pacchetto che si trova su
<ULink URL="http://sourceforge.net">SourceForge</ULink> all'indirizzo
<ULink URL="http://sourceforge.net/projects/hams">http://sourceforge.net/projects/hams</ULink>.
</Para>

<Para>
Il software &egrave; diviso in tre pacchetti: le librerie, gli trumenti e le applicazioni.
Alla data di stesura di questo documento le versioni pi&ugrave; recenti sono le
seguanti:
</Para>

<ItemizedList>

<ListItem>
<Para>
<ULink URL="ftp://hams.sourceforge.net/pub/hams/ax25/libax25-0.0.7.tar.gz">ftp://hams.sourceforge.net/pub/hams/ax25/libax25-0.0.7.tar.gz</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="ftp://hams.sourceforge.net/pub/hams/ax25/ax25-tools-0.0.6.tar.gz">ftp://hams.sourceforge.net/pub/hams/ax25/ax25-tools-0.0.6.tar.gz</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="ftp://hams.sourceforge.net/pub/hams/ax25/ax25-apps-0.0.4.tar.gz">ftp://hams.sourceforge.net/pub/hams/ax25/ax25-apps-0.0.4.tar.gz</ULink>
</Para>
</ListItem>

</ItemizedList>

</Sect3>

<Sect3><Title>I programmi di utilit&agrave; per l'APRS</Title>

<Para>
Se si vuole utilizzare l'APRS, si pu&ograve; scaricare
<ULink
URL="http://sourceforge.net/projects/aprsd/">aprsd</ULink> e <ULink
URL="http://www.users.cloud9.net/~alan/ham/aprs/">aprsdigi</ULink>:

<ItemizedList>

<ListItem>
<Para>
<ULink URL="http://prdownloads.sourceforge.net/aprsd/aprsd-2.1.4.tar.gz">http://prdownloads.sourceforge.net/aprsd/aprsd-2.1.4.tar.gz</ULink>
</Para>
</ListItem>

<ListItem>
<Para>
<ULink URL="http://www.users.cloud9.net/~alan/ham/aprs/aprsdigi-2.0-pre3.tar.gz">http://www.users.cloud9.net/~alan/ham/aprs/aprsdigi-2.0-pre3.tar.gz</ULink>
</Para>
</ListItem>

</ItemizedList>

</Para>

</Sect3>

</Sect2>

</Sect1>

<Sect1><Title>Installazione del software per AX.25, NET/ROM e Rose</Title>

<Para>
 Per installare correttamente il supporto per AX.25 sulla vostra
  macchina Linux, occorre configurare ed installare un kernel
  appropriato e poi installare le utilit&agrave; AX.25
</Para>

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

<Sect2><Title>La compilazione del kernel</Title>

<Para>
Se avete gi&agrave; familiarit&agrave; 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&ograve; essere consigliabile anche
  una lettura del
<ULink URL="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">Linux Kernel HOWTO</ULink>.

</Para>

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

<Para>
<Screen>
# cd /usr/src
# mv linux linux.old
# tar xzvf linux-2.4.9.tar.gz
# cd linux
</Screen>
</Para>

<Para>
 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&agrave; che volete che siano implementate nel
  kernel stesso. Per fare ci&ograve; usate il comando:
</Para>

<Para>
<Screen>
# make menuconfig
</Screen>
</Para>

<Para>
Se siete sotto X, &egrave; possibile avere un'interfaccia grafica usando:
</Para>

<Para>
<Screen>
# make xconfig
</Screen>
</Para>

<Para>
&Egrave; possibile anche usare:
</Para>

<Para>
<Screen>
# make config
</Screen>
</Para>

<Para>
 Verr&agrave; descritto il metodo di configurazione a menu (menuconfig)
 perch&eacute; &egrave; pi&ugrave; comodo e semplice nella scelta delle
 opzioni, ma potete usare anche l'altro, se vi trovate pi&ugrave; a vostro
 agio.
</Para>

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

<Para>
 Le opzioni pi&ugrave; importanti per la parte di configurazione relativa
  all'AX.25 sono:
</Para>

<Para>
<Screen>
Code maturity level options  ---&gt;
    [*] Prompt for development and/or incomplete code/drivers
    ...
General setup  ---&gt;
    ...
    [*] Networking support
    ...
Networking options  ---&gt;
    &lt;*&gt; UNIX domain sockets
    ...
    [*] TCP/IP networking
    ...
    [?] IP: tunneling
    ...
Amateur Radio Support ---&gt;
    --- 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
    &lt;?&gt; YAM driver for AX.25
</Screen>
</Para>

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

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

<Para>

<Screen>
# make dep
# make clean
# make zImage
</Screen>
</Para>

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

<Sect3><Title>A proposito dei moduli del Kernel</Title>

<Para>
Compilare i driver come moduli del kernel pu&ograve; 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&ograve;, ha riscontrato problemi a far funzionare
i driver modularizzati in quanto pi&ugrave; complicati da configurare. In caso si
voglia compilare uno o pi&ugrave; driver come modulo, occorre anche dare i seguenti
comandi:
</Para>

<Para>
<Screen>
# make modules
# make modules_install
</Screen>
</Para>

<Para>
per installare i moduli nella posizione appropriata.
</Para>

<Para>
Occorrer&agrave; anche aggiungere alcune voci nel file <Literal>/etc/modules.conf</Literal> in modo da assicurarsi che il programma <Emphasis>kerneld</Emphasis>
sappia dove localizzare i moduli del kernel. Occorrerebbe aggiungere/modificare:
</Para>

<Para>
<Screen>
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
</Screen>
</Para>

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

</Sect3>

</Sect2>

<Sect2><Title>Le librerie, i programmi e gli strumenti AX.25</Title>

<Para>
 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.
</Para>

<Para>
Per compilare ed installare libax25 occorre dare una serie di comandi simili a questi:
</Para>
<Para>
<Screen>
# 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
</Screen>
</Para>

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

<Para>
Se questa &egrave; la prima installazione sulla vostra macchina, si pu&ograve; dare anche il
comando:
</Para>

<Para>
<Screen>
# make installconf
</Screen>
</Para>

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

<Para>
A questo punto si pu&ograve; effettuare l'installazione degli strumenti AX.25 in questo modo:
</Para>

<Para>
<Screen>
# 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)
</Screen>
</Para>

<Para>
E finalmente installare le applicazioni AX.25:
</Para>

<Para>
<Screen>
# 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)
</Screen>
</Para>

<Para>
Se si ricevono messaggi d'errore del tipo:
</Para>

<Para>
<Screen>
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.)
</Screen>
</Para>

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

</Sect2>

</Sect1>

<Sect1><Title>Due parole, prima di cominciare, su nominativi, indirizzi e simili</Title>

<Para>
 Ogni porta AX.25 e NET/ROM sul vostro sistema deve avere un
  nominativo/ssid associato ad essa. Questi sono inseriti nei file di
  configurazione che saranno descritti in dettaglio tra poco.
</Para>

<Para>
 Alcune implementazioni AX.25 come NOS e BPQ permettono di
  configurare lo stesso nominativo/ssid sulla stessa porta AX.25 e
  NET/ROM. Per ragioni tecniche un po' complesse, Linux non lo
  consente; questo, alla fine, non &egrave; un grosso problema, come potrebbe
  sembrare a prima vista.
</Para>

<Para>
Occorre dunque tenere a mente le seguenti cose, mentre si configura il
proprio sistema:
</Para>

<Para>

<OrderedList>
<ListItem>

<Para>
Ogni porta AX.25 e NET/ROM deve essere configurata con un singolo nominativo/ssid.
</Para>
</ListItem>
<ListItem>

<Para>
Il TCP/IP usa il nominativo/ssid della porta usata per ricevere o
trasmettere dati, cio&egrave; quella configurata per l'interfaccia AX.25
al punto 1.
</Para>
</ListItem>
<ListItem>

<Para>
Il NET/ROM usa il nominativo/ssid specificato nel proprio file di
configurazione, ma esso viene usato solo quando si parla con un altra
stazione NET/ROM; questo <Emphasis>non</Emphasis> &egrave; il
nominativo/ssid che useranno gli utenti AX.25 che intendono usare il vostro
'nodo' NET/ROM. Ne parleremo pi&ugrave; diffusamente tra un po'.
</Para>
</ListItem>
<ListItem>

<Para>
Il Rose usa di default il nominativo/ssid delle porte AX.25,
eccetto quando il nominativo per Rose sia stato espressamente
settato col comando <Emphasis>rsparms</Emphasis>.
In questo caso il Rose utilizzer&agrave; il nominativo/ssid scelto per tutte le porte
</Para>
</ListItem>
<ListItem>

<Para>
Altri programmi, come '<Emphasis>ax25d</Emphasis>' possono usare ogni nominativo/ssid per ascoltare, e ci&ograve; pu&ograve; essere duplicato su diverse porte
</Para>
</ListItem>
<ListItem>

<Para>
Se si effettua un attenta operazione di routing, si pu&ograve; usare, se
si vuole, lo stesso indirizzo IP su tutte le porte
</Para>
</ListItem>

</OrderedList>

</Para>

<Sect2><Title>Cosa sono tutte queste T1, T2, N2 eccetera?</Title>

<Para>
  Non tutte le implementazioni AX.25 sono quelle di un TNC2. Linux usa
  una nomenclatura che si differenzia in alcune parti da quella usata da chi ha
  fatto packet solamente con un TNC. La tabella che segue dovrebbe
  essere d'aiuto per interpretare ognuna delle variabili di configurazione, in
  modo da poterne capire il significato quando se ne parler&agrave; di nuovo
  pi&ugrave; avanti.
</Para>

<Para>
<informaltable frame=all>
<tgroup cols=3>
<thead>
<row><entry>Linux</entry><entry>TAPR TNC</entry><entry>Descrizione</entry></row>
</thead>
<tbody>

<row>
<entry>T1</entry>
<entry>FRACK</entry>
<entry>Tempo di attesa prima di ritrasmettere un frame non confermato (senza acknowledge).</entry>
</row>

<row>
<entry>T2</entry>
<entry>RESPTIME</entry>
<entry>Tempo minimo di attesa di ricezione di un altro frame prima dell'invio della conferma.
</entry>
</row>

<row>
<entry>T3</entry>
<entry>CHECK</entry>
<entry>Periodo di attesa prima di inviare un segnale che controlli se il collegamento &egrave; ancora attivo.</entry>
</row>

<row>
<entry>N2</entry>
<entry>RETRY</entry>
<entry>Quante volte ritrasmettere un frame prima di considerare interrotta la connessione.
</entry>
</row>

<row>
<entry>Idle</entry>
<entry>Periodo in cui la connessione pu&ograve; essere inattiva prima di interromperla</entry>
</row>

<row>
<entry>Window</entry>
<entry>MAXFRAME</entry>
<entry>Numero massimo di frame trasmessi senza attendere la conferma di ricezione.</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

</Sect2>

<Sect2><Title>Parametri configurabili durante l'attivit&agrave;</Title>

<!-- TODO:
     Check if this section is accurate and complete, and fill in
     Meaning and Values columns in all the tables.
-->

<Para>
Il kernel consente di modificare diversi parametri &quot;al volo&quot;.
Se si controlla con attenzione la directory
<Literal>/proc/sys/net/</Literal> si possono notare diversi file con
nomi che descrivono diversi parametri della configurazione della rete.
Ognuno dei file nella directory <Literal>/proc/sys/net/ax25/</Literal>
rappresenta una porta AX.25 configurata. Il nome del file si riferisce
al nome della porta.
</Para>

<Para>
La struttura dei file in
<Literal>/proc/sys/net/ax25/<Replaceable>portname</Replaceable>/</Literal>
&egrave; la seguente:
</Para>

<Para>
<informaltable frame=all>
<tgroup cols=4>
<thead>
<row><entry>Nome file</entry><entry>Significato</entry><entry>Valore</entry><entry>Default</entry></row>
</thead>
<tbody>

<row>
<entry>ip_default_mode</entry>
<entry>Modalit&agrave; IP di default</entry>
<entry>0=DG 1=VC</entry>
<entry>0</entry>
</row>

<row>
<entry>ax25_default_mode</entry>
<entry>Modalit&agrave; AX.25 di default</entry>
<entry>0=Normale 1=Esteso</entry>
<entry>0</entry>
</row>

<row>
<entry>backoff_type</entry>
<entry>Backoff</entry>
<entry>0=Lineare 1=Esponenziale</entry>
<entry>1</entry>
</row>

<row>
<entry>connect_mode</entry>
<entry>Modalit&agrave; connessa</entry>
<entry>0=No 1=Yes</entry>
<entry>1</entry>
</row>

<row>
<entry>standard_window_size</entry>
<entry>Dimensione della finestra standard</entry>
<entry>1 .. 7</entry>
<entry>2</entry>
</row>

<row>
<entry>extended_window_size</entry>
<entry>Dimensione della finestra estesa</entry>
<entry>1 .. 63</entry>
<entry>32</entry>
</row>

<row>
<entry>t1_timeout</entry>
<entry>T1 Timeout</entry>
<entry>1s .. 30s</entry>
<entry>10s</entry>
</row>

<row>
<entry>t2_timeout</entry>
<entry>T2 Timeout</entry>
<entry>1s .. 20s</entry>
<entry>3s</entry>
</row>

<row>
<entry>t3_timeout</entry>
<entry>T3 Timeout</entry>
<entry>0s .. 3600s</entry>
<entry>300s</entry>
</row>

<row>
<entry>idle_timeout</entry>
<entry>Idle Timeout</entry>
<entry>0m or greater</entry>
<entry>20m</entry>
</row>

<row>
<entry>maximum_retry_count</entry>
<entry>N2</entry>
<entry>1 .. 31</entry>
<entry>10</entry>
</row>

<row>
<entry>maximum_packet_length</entry>
<entry>Lunghezza del frame AX.25</entry>
<entry>1 .. 512</entry>
<entry>256</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

<Para>
 Nella tabella T1, T2 e T3 sono dati in secondi, mentre quello di Idle
  &egrave; in minuti. Si noti, per&ograve;, che i valori usati nell'interfaccia sysctl
  sono dati in unit&agrave; interne, dove il tempo in secondi &egrave; moltiplicato
  per 10 in modo da avere una risoluzione di 1/10 di secondo. Ponendo
  pari a zero i valori che lo permettono (come T3 e Idle) li si
  disabilita.
</Para>

<Para>
La struttura dei file in <Literal>/proc/sys/net/NET/ROM/</Literal>
&egrave; la seguente:
</Para>

<Para>
<informaltable frame=all>
<tgroup cols=2>
<thead>
<row><entry>Nome File</entry><entry>Significato</entry><entry>Values</entry><entry>Default</entry></row>
</thead>
<tbody>

<row>
<entry>default_path_quality</entry>
<entry></entry>
<entry></entry>
<entry>10</entry>
</row>

<row>
<entry>link_fails_count</entry>
<entry></entry>
<entry></entry>
<entry>2</entry>
</row>

<row>
<entry>network_ttl_initialiser</entry>
<entry></entry>
<entry></entry>
<entry>16</entry>
</row>

<row>
<entry>obsolescence_count_initialiser</entry>
<entry></entry>
<entry></entry>
<entry>6</entry>
</row>

<row>
<entry>routing_control</entry>
<entry></entry>
<entry></entry>
<entry>1</entry>
</row>

<row>
<entry>transport_acknowledge_delay</entry>
<entry></entry>
<entry></entry>
<entry>50</entry>
</row>

<row>
<entry>transport_busy_delay</entry>
<entry></entry>
<entry></entry>
<entry>1800</entry>
</row>

<row>
<entry>transport_maximum_tries</entry>
<entry></entry>
<entry></entry>
<entry>3</entry>
</row>

<row>
<entry>transport_requested_window_size</entry>
<entry></entry>
<entry></entry>
<entry>4</entry>
</row>

<row>
<entry>transport_timeout</entry>
<entry></entry>
<entry></entry>
<entry>1200</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

<Para>
La struttura dei file in <Literal>/proc/sys/net/rose/</Literal>
&egrave; la seguente:
</Para>

<Para>
<informaltable frame=all>
<tgroup cols=2>
<thead>
<row><entry>Nome file</entry><entry>Significato</entry><entry>Valori</entry><entry>Default</entry></row>
</thead>
<tbody>

<row>
<entry>acknowledge_hold_back_timeout</entry>
<entry></entry>
<entry></entry>
<entry>50</entry>
</row>

<row>
<entry>call_request_timeout</entry>
<entry></entry>
<entry></entry>
<entry>2000</entry>
</row>

<row>
<entry>clear_request_timeout</entry>
<entry></entry>
<entry></entry>
<entry>1800</entry>
</row>

<row>
<entry>link_fail_timeout</entry>
<entry></entry>
<entry></entry>
<entry>1200</entry>
</row>

<row>
<entry>maximum_virtual_circuits</entry>
<entry></entry>
<entry></entry>
<entry>50</entry>
</row>

<row>
<entry>reset_request_timeout</entry>
<entry></entry>
<entry></entry>
<entry>1800</entry>
</row>

<row>
<entry>restart_request_timeout</entry>
<entry></entry>
<entry></entry>
<entry>1800</entry>
</row>

<row>
<entry>routing_control</entry>
<entry></entry>
<entry></entry>
<entry>1</entry>
</row>

<row>
<entry>window_size</entry>
<entry></entry>
<entry></entry>
<entry>3</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

<Para>
  Per modificare un parametro, tutto ci&ograve; che occorre &egrave; scrivere il
  valore desiderato nel file stesso; ad esempio per controllare e
  modificare la grandezza della finestra ROSE, si pu&ograve; usare ad esempio:
</Para>

<Para>
<Screen>
# cat /proc/sys/net/rose/window_size
3
# echo 4 &gt;/proc/sys/net/rose/window_size
# cat /proc/sys/net/rose/window_size
4
</Screen>
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione di una porta AX.25</Title>

<!-- TODO:
     Take more of the information from http://www.febo.com/linux-ax25/index.html
     and incorporate it into this HOWTO (with credit).
-->

<Para>
 Ogni applicazione che fa uso del protocollo AX.25 legge un file di
  configurazione per sapere i parametri delle varie porte AX.25 attivate
  sulla macchina Linux. Il file in questione &egrave; <Literal>/etc/ax25/axports</Literal> e occorre che vi sia una voce per ognuna delle porte attive.
</Para>

<Sect2><Title>Creazione del dispositivo di rete AX.25</Title>

<Para>
Il dispositivo di rete &egrave; ci&ograve; che viene manipolato quando si usa il
comando '<Emphasis>ifconfig</Emphasis>'.
&Egrave; l'oggetto attraverso il quale il kernel
di Linux spedisce e riceve i dati. Quasi sempre un dispositivo di rete ha
una porta fisica ad esso associata, ma vi sono casi in cui ci&ograve; non &egrave;
necessario. Il dispositivo di rete fa riferimento direttamente a un driver di dispositivo.
</Para>

<Para>
Nel codice AX.25 di Linux ci sono diversi driver. Il pi&ugrave;
comune &egrave; probabilmente il driver KISS, ma ci sono anche i driver SCC,
Baycom e SoundModem.
</Para>

<Para>
Ogni driver, quando viene lanciato, crea un dispositivo di rete
</Para>

<Sect3><Title>Creazione di un dispositivo KISS</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
Amateur Radio support  ---&gt;
    [*] Amateur Radio support
    --- Packet Radio protocols
    &lt;*&gt;   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  ---&gt;
    --- AX.25 network device drivers
    &lt;*&gt; Serial port KISS driver
    ...
</Screen>

</Para>

<Para>
Probabilmente la configurazione pi&ugrave; comune &egrave; quella con un TNC KISS
collegato al pc tramite una porta seriale. Visto che occorre partire
col TNC in modo KISS,
dopo averlo connesso alla porta seriale, lo si pu&ograve; configurare con
programmi di comunicazione come <Emphasis>minicom</Emphasis> o
<Emphasis>seyon</Emphasis>.
</Para>

<Para>
Per creare un dispositivo KISS si usa il programma <Emphasis>kissattach</Emphasis>.
Nella sua forma pi&ugrave; semplice si pu&ograve; usare questo programma come segue:
</Para>

<Para>
<Screen>
# /usr/sbin/kissattach /dev/ttyS0 radio 44.135.96.242
# kissparms -p radio -t 100 -s 100 -r 25
</Screen>
</Para>

<Para>
Il comando <Emphasis>kissattach</Emphasis> crea un dispositivo di rete
di tipo KISS. I
dispositivi di questo sono indicati dal nome '<Literal>ax[0-9]</Literal>'.
La prima volta che
si usa <Emphasis>kissattach</Emphasis> viene creato '<Literal>ax0</Literal>',
la seconda '<Literal>ax1</Literal>' e cos&igrave; via. Ogni dispositivo KISS ha associata
una porta seriale.
</Para>

<Para>
Il comando <Emphasis>kissparms</Emphasis> permette di modificare i parametri
di un dispositivo KISS.
</Para>

<Para>
In particolare nell'esempio presentato, viene creato un dispositivo di rete KISS
usando
il dispositivo della porta seriale '<Literal>/dev/ttyS0</Literal>' e la voce nel
file <Literal>/etc/ax25/axports</Literal> con una porta chiamata
'<Literal>radio</Literal>'
che viene configurata inoltre con un <Emphasis>txdelay</Emphasis> e uno
<Emphasis>slottime</Emphasis>
di 100 millisecondi, nonch&eacute; con un valore di <Emphasis>ppersist</Emphasis>
pari a 25.
</Para>

<Para>
Per maggiori informazioni potete far riferimento alle pagine <Emphasis>man</Emphasis>
</Para>

<Sect4><Title>Configurazione dei TNC Dual Port</Title>

<Para>
L'utilit&agrave; <Emphasis>mkiss</Emphasis> inclusa nel pacchetto ax25-utils
permette di usare entrambi
i modem di un TNC dual port. La configurazione &egrave; piuttosto semplice e
consiste nel prendere un singolo dispositivo seriale connesso ad un
singolo TNC multiporta e facendolo apparire come diversi dispositivi
connessi ognuno ad un TNC single port. Questa operazione va fatta
<Emphasis>prima</Emphasis> di ogni configurazione della parte AX.25.
I dispositivi sui
quali si effettua la configurazione AX.25 sono interfacce pseudo-TTY,
(<Literal>/dev/ttyq*</Literal>), e non gli effettivi dispositivi seriali.
Questi pseudo-dispositivi TTY creano una specie di tunnel detto pipe
attraverso il quale
possono parlarsi i programmi che devono colloquiare con i dispositivi TTY.
Ogni pipe &egrave; composta da una parte master e da una parte slave. La
parte master &egrave; in genere chiamata '<Literal>/dev/ptyq*</Literal>',
mentre
quella slave &egrave; chiamata '<Literal>/dev/ttyq*</Literal>'.
C'&egrave; una relazione uno
a uno tra master e slave, quindi, ad esempio, <Literal>/dev/ptyq0</Literal> &egrave;
la parte master di una pipe che ha <Literal>/dev/ttyq0</Literal> come slave.
Occorre aprire per prima la parte master di una pipe. <Emphasis>mkiss</Emphasis>
sfrutta questo meccanismo per dividere una singola porta seriale in
diversi dispositivi.
</Para>

<Para>
Esempio: nel caso di un TNC dual port connesso alla porta seriale
<Literal>/dev/ttyS0</Literal> a 9600 bps, i comandi:
</Para>

<Para>
<Screen>
# /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
# /usr/sbin/kissattach /dev/ttyq0 port1 44.135.96.242
# /usr/sbin/kissattach /dev/ttyq1 port2 44.135.96.242
</Screen>
</Para>

<Para>
creeranno due pseudo-dispositivi tty ognuno delle quali si comporta come un
TNC single port. A questo punto si pu&ograve; usare <Literal>/dev/ttyq0</Literal> e
<Literal>/dev/ttyq1</Literal> come se fossero dei normali dispositivi seriali con un
TNC connesso. Questo significa che si dovr&agrave; usare <Emphasis>kissattach</Emphasis> per
ognuna di essi, come descritto nell'esempio sopra per le porte AX.25
chiamate <Literal>port1</Literal> e <Literal>port2</Literal>. Non si deve usare <Emphasis>kissattach</Emphasis>
sulla effettiva porta
seriale vera poich&eacute; viene usata dal programma <Emphasis>mkiss</Emphasis>.
</Para>

<Para>
Il programma <Emphasis>mkiss</Emphasis> ha diversi argomenti opzionali
che possono essere usati e che sono:
<VariableList>
<VarListEntry>
<Term>-c</Term>
<ListItem>
<Para>
permette l'aggiunta di un byte di checksum per ogni frame KISS; la
maggior parte delle implementazioni non supporta questa opzione, che &egrave; 
invece presente in quella di G8BPG.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>-s &lt;velocit&agrave;&gt;</Term>
<ListItem>
<Para>
modifica la velocit&agrave; della porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>-h</Term>
<ListItem>
<Para>
abilita l'handshaking hardware sulla porta seriale; &egrave; 
disabilitata di default poich&eacute; quest'opzione non &egrave;; supportata dalla
maggior parte delle implementazioni KISS.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>-l</Term>
<ListItem>
<Para>
abilita il logging delle informazioni nel file log di <Emphasis>syslog</Emphasis>.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

</Sect4>

</Sect3>

<Sect3><Title>Creazione di un dispositivo 6PACK</Title>

<Para>
<Emphasis>Opzioni di compilazione del kernel</Emphasis>:

<Screen>
Amateur Radio support  ---&gt;
    [*] Amateur Radio support
    --- Packet Radio protocols
    &lt;*&gt;   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  ---&gt;
    --- AX.25 network device drivers
    ...
    &lt;*&gt; Serial port 6PACK driver
    ...
</Screen>
</Para>

<Para>
6PACK &egrave; un protocollo supportato da alcuni TNC come alternativa al KISS.
Viene utilizzato in modo simile al driver KISS, usando il comando
<Literal>slattach</Literal> al posto di <Literal>kissattach</Literal>.
</Para>

<!-- TODO:
     Move info from the 6PACK mini-HOWTO (in the kernel source) into here.
-->

<Para>
Un mini HOWTO sul driver 6PACK &egrave; incluso nei sorgenti del kernel nel file
<Literal>/usr/src/linux/Documentation/networking/6pack.txt</Literal>.
</Para>

</Sect3>

<Sect3><Title>Creazione di un dispositivo Baycom</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
Amateur Radio support  ---&gt;
    [*] Amateur Radio support
    --- Packet Radio protocols
    &lt;*&gt;   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  ---&gt;
    --- AX.25 network device drivers
    ...
    &lt;?&gt; BAYCOM ser12 fullduplex driver for AX.25
    &lt;?&gt; BAYCOM ser12 halfduplex driver for AX.25
    &lt;?&gt; BAYCOM picpar and par96 driver for AX.25
    &lt;?&gt; BAYCOM epp driver for AX.25
    ...
</Screen>
</Para>

<Para>
<ULink URL="mailto:sailer@ife.ee.ethz.ch">Thomas Sailer</ULink>,
nonostante si ritenesse che non avrebbe funzionato bene,
 ha sviluppato il supporto
Linux per i modem Baycom. Il suo driver supporta il modem seriale
<Literal>Ser12</Literal> e i modem paralleli <Literal>Par96</Literal>
e <Literal>PicPar</Literal>.
Maggiori informazioni sui modem possono essere reperite presso il
<Ulink URL="http://www.baycom.de/">Sito web dedicato al Baycom</Ulink>.
</Para>

<Para>
Il primo passo da compiere &egrave; quello di determinare gli indirizzi di
I/O della porta seriale o parallela alla quale &egrave; connesso il Baycom.
Una volta fatto, si possono usare queste informazioni per configurare
il driver.
</Para>

<Para>
Il driver Baycom crea, quando viene configurato, dei dispositivi di rete chiamati:
<Literal>bc0</Literal>, <Literal>bc1</Literal>, <Literal>bc2</Literal> ecc.
</Para>

<Para>
L'utilit&agrave; <Emphasis>sethdlc</Emphasis> permette di configurare il
driver con questi parametri; nel caso si abbia un solo modem Baycom
installato, si possono specificare anche nella linea di comando di
<Emphasis>insmod</Emphasis> al caricamento del modulo di controllo del Baycom
</Para>

<Para>
Seguono delle semplici dimostrazioni di esempio.
Viene disabilitato il driver seriale per COM1 (per evitare conflitti, visto
che accede alla stessa porta fisica del Baycom) e configura il driver
Ser12 per un Baycom connesso a COM1 con il rilevamento software di
portante (DCD) attivato:
</Para>

<Para>
<Screen>
# setserial /dev/ttyS0 uart none
# insmod hdlcdrv
# insmod baycom mode="ser12*" iobase=0x3f8 irq=4
</Screen>
</Para>

<Para>
Installa un Baycom Parallelo Par96 su LPT1 usando il rilevamento DCD
hardware:
</Para>

<Para>
<Screen>
# insmod hdlcdrv
# insmod baycom mode="par96" iobase=0x378 irq=7 options=0
</Screen>
</Para>

<Para>
Questo modo di configurare il driver per Baycom in realt&agrave;  non &egrave; il preferibile,
visto che l'utilit&agrave; <Emphasis>sethdlc</Emphasis> funziona con la stessa facilit&agrave; 
 con uno o con pi&ugrave;  dispositivi connessi.
</Para>

<Para>
Le pagine <Emphasis>man</Emphasis> di <Emphasis>sethdlc</Emphasis> contengono
tutti i dettagli relativi a questo comando, tuttavia si forniscono un paio di esempi
per illustrare gli aspetti pi&ugrave;  importanti di questo tipo di
configurazione. Gli esempi presuppongono che sia gi&agrave; stato caricato
il modulo per il supporto del Baycom coi comandi:
</Para>

<Para>
<Screen>
# insmod hdlcdrv
# insmod baycom
</Screen>
</Para>

<Para>
o che il kernel sia stato compilato col supporto Baycom al suo interno.
</Para>

<Para>
Configurazione del driver <Literal>bc0</Literal> come modem Baycom
parallelo su LPT1 con DCD software:
</Para>

<Para>
<Screen>
# sethdlc -p -i bc0 mode par96 io 0x378 irq 7
</Screen>
</Para>

<Para>
Configurazione del driver <Literal>bc1</Literal> come modem Baycom
seriale su COM1 :
</Para>

<Para>
<Screen>
# sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4
</Screen>
</Para>

</Sect3>

<Sect3><Title>Configurazione dei parametri di accesso al canale AX.25</Title>

<Para>
I parametri di accesso al canale AX.25 sono equivalenti ai parametri
KISS ppersist, txdelay e slottime. La loro modifica si effettua ancora
una volta col comando <Emphasis>sethdlc</Emphasis>.
</Para>

<Para>
Ancora una volta, le pagine man di <Emphasis>sethdlc</Emphasis> sono la
fonte pi&ugrave; completa di informazioni, ma un altro paio di esempi non fanno
certo male:
</Para>

<Para>
Configurazione del dispositivo <Literal>bc0</Literal> con TxDelay di 200 mS, SlotTime di 100 mS,
PPersist di 40 in half duplex:
</Para>

<Para>
<Screen>
# sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half
</Screen>
</Para>

<Para>
Si noti che i valori di temporizzazione sono in millisecondi.
</Para>

<Sect4><Title>Configurazione del Kernel AX.25 per l'uso con un modem Baycom</Title>

<Para>
Il driver Baycom crea dei dispositivi di rete standard che il codice del
Kernel AX.25 &egrave; in grado di sfruttare. La configurazione &egrave; 
sostanzialmente la stessa di quella per una scheda PI o PacketTwin.
</Para>

<Para>
Il primo passo &egrave; quello di configurare il dispositivo con un nominativo
AX.25. L'utilit&agrave; <Emphasis>ifconfig</Emphasis> pu&ograve; essere utile allo scopo.
</Para>

<Para>
<Screen>
# /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up
</Screen>
</Para>

<Para>
assegna al dispositivo Baycom <Literal>bc0</Literal> il nominativo
<Literal>VK2KTJ-15</Literal>. In alternativa &egrave; possibile usare il comando
<Emphasis>axparms</Emphasis>, ma occorre pure <Emphasis>ifconfig</Emphasis> per attivarlo.
</Para>

<Para>
<Screen>
# ifconfig bc0 up
# axparms -setcall bc0 vk2ktj-15
</Screen>

</Para>

<Para>
Il passo successivo &egrave; quello di creare una voce nel file <Literal>/etc/ax25/axports</Literal>
come si farebbe per ogni altro dispositivo.
La voce nel file <Literal>axports</Literal>
&egrave; associata col dispositivo di rete configurato
per il nominativo ad esso legato. La voce nel file axports che ha il
nominativo con il quale si &egrave; configurato il dispositivo BayCom &egrave; quella che
verr&agrave; usata per riferircisi.
</Para>

<Para>
A questo punto si user&agrave; il nuovo dispositivo AX.25 come ogni altro; lo si
potr&agrave; configurare per l'uso col TCP/IP, aggiungerlo ad ax25d e veicolarci
sopra NET/ROM e Rose a proprio piacimento.
</Para>

</Sect4>

</Sect3>

<Sect3><Title>Creazione di un dispositivo SoundModem</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
Amateur Radio support  ---&gt;
    [*] Amateur Radio support
    --- Packet Radio protocols
    &lt;*&gt;   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  ---&gt;
    --- AX.25 network device drivers
    ...
    &lt;*&gt; 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
    ...
</Screen>
</Para>

<Para>
Thomas Sailer ha sviluppato un driver per il kernel che
permette l'uso come modem della scheda audio la quale, una volta connessa
direttamente alla radio, pu&ograve; essere usata per fare packet. L'autore
raccomanda di usare per lo meno un 486DX2/66 con questo sistema,
poich&eacute; tutta la parte di elaborazione del segnale digitale egrave; compiuta
dalla CPU del calcolatore.
</Para>

<Para>
Attualmente il driver emula i modem 1200 bps AFSK, 4800 HAPN e 9600
FSK (compatibile G3RUH). Le uniche schede audio attualmente
supportate sono quelle compatibili SoundBlaster e WindowsSoundSystem.
Se si possiede una scheda audio di tipo diverso, si pu&ograve; provare ad
 usare il soundmodem in modalit&agrave; utente (user-mode) descritta pi&ugrave; 
 avanti in questo documento.
</Para>

<Para>
L'uso delle schede audio richiede della circuiteria
addizionale in grado di pilotare il Push-To-Talk; le informazioni
per realizzare tale dispositivo sono disponibili nell'
<ULink URL="http://www.baycom.org/~tom/pcf/ptt_circ/ptt.html">apposita pagina
</ULink> sul sito web di Thomas Salier. Ci sono alcune opzioni possibili:
rilevare l'uscita dalla scheda audio, o usare l'uscita da una porta parallela, seriale, o MIDI. Sul sito di Thomas sono presenti esempi di realizzazione
di circuiti per ognuno di questi metodi.
</Para>

<Para>
Quando viene configurato, il driver SoundModem crea dei dispositivi di rete chiamati:
<Literal>sm0</Literal>, <Literal>sm1</Literal>, <Literal>sm2</Literal> eccetera.
</Para>

<Note>
<Para>
Il driver SoundModem usa le stesse risorse del driver
sonoro di Linux, per cui se si vuole usare il modem, occorre
accertarsi che il driver sonoro non sia installato.  Si possono
naturalmente compilare entrambi i driver come moduli, in modo da
inserirli e rimuoverli a piacimento.
</Para>
</Note>

<Sect4><Title>Configurazione della scheda audio</Title>

<Para>
Il driver SoundModem non inizializza la scheda audio. A questo scopo, il
pacchetto ax25-utils include un'utilit&agrave; chiamata '<Emphasis>setcrystal</Emphasis>' che pu&ograve; essere usata per le schede audio basate sul chipset Crystal.
Se si possiede una scheda basata su un'altro chipset occorre usare qualche
altro programma per inizializzarla. La sintassi dell'utilit&agrave; &egrave; piuttosto
semplice:
</Para>

<Para>
<Screen>
setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]
</Screen>
</Para>

<Para>
Quindi, per esempio, volendo configurare una SoundBlaster all'indirizzo
base di i/o 0x388, irq 10 e dma 1 si user&agrave; :
</Para>

<Para>
<Screen>
# setcrystal -s 0x388 -i 10 -d 1
</Screen>
</Para>

<Para>
Per configurare una scheda Window Sound System all'indirizzo base di i/o
0x534, irq 5 e dma 3 si user&agrave;:
</Para>

<Para>
<Screen>
# setcrystal -w 0x534 -i 5 -d 3
</Screen>
</Para>

<Para>
Il parametro <Literal>[-f synthio]</Literal> serve per impostare l'indirizzo
del sintetizzatore, mentre il parametro <Literal>[-c dma2]</Literal>
serve per impostare il secondo canale DMA in modo da avere la possibilit&agrave; di
operare il full duplex.
</Para>

</Sect4>

<Sect4><Title>Configurazione del driver Soundmodem</Title>

<Para>
Una volta configurata la scheda audio, occorre configurare il driver,
fornendogli informazioni sulla posizione della scheda audio e su che tipo
di modem si intende emulare.
</Para>

<Para>
L'utilit&agrave; <Emphasis>sethdlc</Emphasis> permette di configurare il driver
con questi parametri. Se si ha solo una scheda audio installata, i
parametri si possono specificare anche dal comando <Emphasis>insmod</Emphasis>
al momento del caricamento del modulo soundmodem.
</Para>

<Para>
Ad esempio, una semplice configurazione con una scheda SoundBlaster
configurata come negli esempi precedenti che emula un modem a 1200 bps:
</Para>

<Para>
<Screen>
# insmod hdlcdrv
# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
</Screen>
</Para>

<Para>
Questo non &egrave; in realt&agrave; il modo pi&ugrave; indicato per fare questa operazione.
L'utilit&agrave; <Emphasis>sethdlc</Emphasis> si usa con la stessa facilit&agrave; con un
dispositivo cos&igrave; come con diversi.
</Para>

<Para>
Le pagine man di <Emphasis>sethdlc</Emphasis> contengono tutte le
informazioni richieste, per&ograve; un paio di esempi possono illustrare gli
aspetti pi&ugrave; importanti della configurazione di questa utilit&agrave;. Negli
esempi seguenti si suppone che i moduli Soundmodem siano gi&agrave; stati caricati
usando:
</Para>

<Para>
<Screen>
# insmod hdlcdrv
# insmod soundmodem
</Screen>
</Para>

<Para>
o che il kernel sia gi&agrave; stato compilato con questo tipo di supporto.
</Para>

<Para>
Configurazione del driver per il supporto della scheda Windows SoundSystem
configurata come negli esempi precedenti e impostata in modo da emulare un
modem G3RUH 9600
compatibile come dispositivo <Literal>sm0</Literal> usando una porta parallela
all'indirizzo 0x378 per pilotare il Push-To-Talk:
</Para>

<Para>
<Screen>
# sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378
</Screen>
</Para>

<Para>
Configurazione del driver per supportare la scheda Soundblaster configurata
come negli esempi precedenti per emulare un modem HAPN a 4800 bps come dispositivo
 <Literal>sm1</Literal> usando la porta seriale all'indirizzo 0x2f8 per
 pilotare il Push-To-Talk:
</Para>

<Para>
<Screen>
# sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8
</Screen>
</Para>

<Para>
Configurazione del driver per supportare la scheda SoundBlaster configurata
come negli esempi precedenti e impostata in modo da emulare un modem
1200 bps AFSK come dispositivo <Literal>sm1</Literal>usando la porta seriale
all'indirizzo 0x2f8 per pilotare il Push-To-Talk della radio:
</Para>

<Para>
<Screen>
# sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8
</Screen>
</Para>

</Sect4>

<Sect4><Title>Configurazione dei parametri di accesso al canale AX.25</Title>

<Para>
I parametri di accesso al canale AX.25 sono equivalenti ai parametri
KISS ppersist, txdelay e slottime. La loro modifica si effettua ancora
una volta col comando <Emphasis>sethdlc</Emphasis>.
</Para>

<Para>
Ancora una volta le pagine man di <Emphasis>sethdlc</Emphasis> sono la fonte
di informazioni pi&ugrave; completa, tuttavia un paio di esempi in pi&ugrave; non fanno
male:
</Para>

<Para>
Configurazione del dispositivo <Literal>sm0</Literal> con TxDelay di 100 mS, SlotTime di 50mS, PPersist di 128 e full duplex:
</Para>

<Para>
<Screen>
# sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full
</Screen>
</Para>

<Para>
Si noti che le temporizzazioni sono espresse in millisecondi.
</Para>

</Sect4>

<Sect4><Title>Messa a punto del driver e del livello audio</Title>

<Para>
Per ogni modem radio &egrave; molto importante che i livelli audio siano
impostati correttamente e il SoundModem non fa eccezione. Thomas Sailer
ha per questo scritto alcune utilit&agrave; che facilitano questo compito,
chiamate <Emphasis>smdiag</Emphasis> e <Emphasis>smmixer</Emphasis>.
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term><Emphasis>smdiag</Emphasis></Term>
<ListItem>
<Para>
fornisce due tipi di visualizzazione del
segnale in ingresso: come oscilloscopio e con un diagramma ad occhio.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term><Emphasis>smmixer</Emphasis></Term>
<ListItem>
<Para>
permette di effettuare la modifica del livello
audio in ricezione ed in trasmissione.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
Per lanciare l'utilit&agrave; <Emphasis>smdiag</Emphasis> per il dispositivo SoundModem
<Literal>sm0</Literal> in modalit&agrave; 'diagramma ad occhio' si usa il comando:
</Para>

<Para>
<Screen>
# smdiag -i sm0 -e
</Screen>
</Para>

<Para>
Per lanciare l'utilit&agrave; <Emphasis>smmixer</Emphasis> per il dispositivo SoundModem
<Literal>sm0</Literal> si usa il comando:
</Para>

<Para>
<Screen>
# smmixer -i sm0
</Screen>
</Para>

</Sect4>

<Sect4><Title>Configurazione del Kernel AX.25 per l'uso con SoundModem</Title>

<Para>
Il driver Soundmodem crea dei dispositivi di rete standard che il codice del
Kernel AX.25 &egrave; in grado di sfruttare. La configurazione &egrave; 
sostanzialmente la stessa di quella per una scheda PI o PacketTwin.
</Para>

<Para>
Il primo passo &egrave; quello di configurare il dispositivo con un nominativo
AX.25. l'utilit&agrave; <Emphasis>ifconfig</Emphasis> pu&ograve; essere utile allo scopo.
</Para>

<Para>
<Screen>
# /sbin/ifconfig sm0 hw ax25 VK2KTJ-15 up
</Screen>
</Para>

<Para>
assegna al dispositivo SoundModem <Literal>sm0</Literal> il nominativo AX.25
<Literal>VK2KTJ-15</Literal>. In alternativa sarebbe possibile usare il comando
<Emphasis>axparms</Emphasis>, ma occorre pure 
<Emphasis>ifconfig</Emphasis> per attivarlo.
</Para>

<Para>
<Screen>
# ifconfig sm0 up
# axparms -setcall sm0 vk2ktj-15
</Screen>
</Para>

<Para>
Il passo successivo &egrave; quello di creare una voce nel file
<Literal>/etc/ax25/axports</Literal> come si farebbe per ogni altro dispositivo. La
voce nel file <Literal>axports</Literal> &egrave; associata col dispositivo di
rete configurato per il nominativo ad esso legato; verr&egrave; usata quella col
nominativo assegnato al dispositivo SoundModem.
</Para>

<Para>
A questo punto si user&egrave; il nuovo dispositivo AX.25 come ogni altro; lo si
potr&agrave;; configurare per l'uso col TCP/IP, aggiungerlo a ax25d e usarci
sopra NET/ROM o ROSE a proprio piacimento.
</Para>

</Sect4>

</Sect3>

<Sect3><Title>Creazione di un dispositivo Soundmodem in modo utente</Title>

<Para>
<Emphasis>Opzioni di compilazione del kernel</Emphasis>: non applicabile

</Para>

<!-- TODO:
     Write more detailed documentation on this.
-->

<Para>
Thomas Sailer ha scritto un driver Soundmodem che funziona in modo utente
usando i driver audio del kernel, per cui dovrebbe funzionare con ogni scheda
audio che Linux supporta.
</Para>

<Para>
Il driver &egrave; composto dal programma <Literal>soundmodem</Literal>.
Il programma grafico <Literal>soundmodemconfig</Literal> consente di
configurare e testare il driver soundmodem. Cos&igrave; come per il supporto del suono
, occorre il driver AX.25 mkiss del kernel.
</Para>

<Para>
Il software e la relativa documentazione possono essere scaricati da
<ULink URL="http://www.baycom.org/~tom/ham/soundmodem/">http://www.baycom.org/~tom/ham/soundmodem</ULink>.
</Para>

</Sect3>

<Sect3><Title>Creazione di un dispositivo YAM</Title>

<!-- TODO:
     Write more detailed documentation on this
-->

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
Amateur Radio support  ---&gt;
    [*] Amateur Radio support
    --- Packet Radio protocols
    &lt;*&gt;   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  ---&gt;
    --- AX.25 network device drivers
    ...
    &lt;?&gt; YAM driver for AX.25
    ...
</Screen>
</Para>

<Para>
YAM (Yet Another Modem) &egrave; un modem a 9600 baud progettato da Nico Palermo.
Le informazioni per il suo driver Linux si possono trovare su
<ULink URL="http://www.teaser.fr/~frible/yam.html">http://www.teaser.fr/~frible/yam.html</ULink> mentre informazioni generali sul modem si possono trovare su
<ULink URL="http://www.microlet.com/yam/">http://www.microlet.com/yam/</ULink>
</Para>

</Sect3>

<Sect3><Title>Creazione di un dispositivo per la scheda PI</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Ottawa PI and PI/2 support for AX.25
</Screen>

</Para>

<Para>
Il driver per schede PI crea dei dispositivi chiamati
'<Literal>pi[0-9][ab]</Literal>'. La prima scheda PI sar&agrave; indicata come
'<Literal>pi0</Literal>',
la seconda '<Literal>pi1</Literal>', eccetera. Le lettere
'<Literal>a</Literal>' e '<Literal>b</Literal>' si
riferiscono rispettivamente alla prima e alla seconda interfaccia
fisica delle schede PI. Se si &egrave; compilato il Kernel in modo da
includere il driver per la scheda e questa &egrave; stata riconosciuta dal
sistema in modo esatto, si pu&ograve;; usare il seguente comando per
configurare il dispositivo di rete:
</Para>

<Para>
<Screen>
# /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up
</Screen>
</Para>

<Para>
Questo comando configura ed attiva la prima porta della prima scheda
PI assegnandole il nominativo <Literal>VK2KTJ-15</Literal>. Per usare il
dispositivo, tutto ci&ograve; che serve a questo punto &egrave; inserire una
voce nel file <Literal>/etc/ax25/axports</Literal> col medesimo
nominativo/ssid.
</Para>

<Para>
Il driver per la scheda PI &egrave; stato scritto da
<ULink URL="mailto:dp@hydra.carleton.edu">David Perry</ULink>.
</Para>

</Sect3>

<Sect3><Title>Creazione di un dispositivo PacketTwin</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Gracilis PackeTwin support for AX.25
</Screen>

</Para>

<Para>
Il driver per la scheda PacketTwin crea i dispositivi
'<Literal>pt[0-9][ab]</Literal>'; la prima scheda PacketTwin localizzata nel
calcolatore sar&agrave; indicata come '<Literal>pt0</Literal>', la seconda
'<Literal>pt1</Literal>' e
cos&igrave; via, mentre '<Literal>a</Literal>' e '<Literal>b</Literal>' fanno
riferimento alla prima e
alla seconda interfaccia fisica della scheda PacketTwin. Una volta
compilato il kernel con incluso il driver per la scheda PacketTwin,
se quest'ultima &egrave; stata correttamente riconosciuta, si pu&ograve; usare
il seguente comando per configurare il dispositivo di rete:
</Para>

<Para>
<Screen>
# /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up
</Screen>
</Para>

<Para>

Questo comando configura e attiva la prima porta della prima scheda
PacketTwin col nominativo <Literal>VK2KTJ-15</Literal>. Per usare il dispositivo, tutto
ci&ograve; che occorre fare &egrave; configurare una voce nel proprio file
<Literal>/etc/ax25/axports</Literal> con il medesimo nominativo/ssid.
</Para>

<Para>
Il driver per schede PacketTwin &egrave; stato scritto da
<ULink URL="mailto:csmall@triode.apana.org.au">Craig Small</ULink>, VK2XLZ.
</Para>

</Sect3>

<Sect3><Title>Creazione di un dispositivo generico SCC</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Z8530 SCC KISS emulation driver for AX.25
</Screen>

</Para>

<Para>
<ULink URL="mailto:jreuter@poboxes.com">Joerg Reuter</ULink>, DL1BKE,
ha sviluppato il
supporto generico per le schede basate sullo SCC Z8530 . Il suo driver
permette il supporto di diversi tipi di queste schede e offre una
modalit&agrave; di utilizzo simile a quella di un TNC KISS.
</Para>

<Sect4><Title>Reperire e compilare i programmi di configurazione</Title>

<Para>
Sebbene il driver sia incluso nella distribuzione standard del
Kernel, Joerg Reuter distribuisce versioni pi&ugrave; recenti del suo driver
assieme ad una collezione di programmi che ne aiutano la
configurazione.
</Para>

<Para>
I programmi di configurazione possono essere scaricati da
<ULink URL="http://www.qsl.net/dl1bke">pagina web di Joerg</ULink>,
<ULink URL="ftp://db0bm.automation.fh-aachen.de/incoming/dl1bke">ftp://db0bm.automation.fh-aachen.de/incoming/dl1bke</ULink>,
<ULink URL="ftp://insl1.etec.uni-karlsruhe.de/pub/hamradio/linux/z8530">ftp://insl1.etec.uni-karlsruhe.de/pub/hamradio/linux/z8530</ULink>,
<ULink URL="ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux">ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux</ULink>, o
<ULink URL="ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming">ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming</ULink>.
</Para>

<Para>
Troverete diverse versioni; va scelta quella che maggiormente si
adatta alla versione di Kernel che si intende usare.
<Literal>z8530drv-2.4a.dl1bke.tar.gz</Literal> per i kernel 2.0.* e
<Literal>z8530drv-utils-3.0.tar.gz</Literal> per i kernel 2.1.6 o successivi.
</Para>

<Para>
I seguenti comandi sono quelli che ho usato per compilare ed installare il
pacchetto per la versione 2.0.30 del kernel:
</Para>

<Para>
<Screen>
# cd /usr/src
# gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
# cd z8530drv
# make clean
# make dep
# make module         # Se volete avere il driver compilato come modulo
# make for_kernel     # Se volete avere il driver incluso staticamente nel kernel
# make install
</Screen>
</Para>

<Para>
Dopo aver completato quest'operazione dovreste avere tre nuovi
programmi installati nella vostra directory <Literal>/sbin</Literal>:
<Emphasis>gencfg</Emphasis>, <Emphasis>sccinit</Emphasis> e <Emphasis>sccstat</Emphasis>.
Saranno questi a
permettervi di configurare il driver per la scheda.
</Para>

<Para>
Ci si trover&agrave; anche ad avere un un gruppo di
dispositivi speciali nella directory <Literal>/dev</Literal>  chiamati <Literal>scc0</Literal>-<Literal>scc7</Literal>;
questi saranno usati pi&ugrave; avanti e saranno i dispositivi 'KISS' da
utilizzare.
</Para>

<Para>
Se scegliete l'opzione 'make for_kernel' occorre ricompilare
il kernel. Per far s&igrave; che venga incluso il supporto per il driver
z8530 bisogna rispondere '<Literal>Y</Literal>' alla domanda '<Literal>Z8530 SCC kiss emulation driver for AX.25</Literal>'
che viene fatta dalla procedura
di configurazione del kernel, durante il '<Literal>make config</Literal>'.
</Para>

<Para>
Se invece avete fatto 'make module', occorre che il nuovo file
<Literal>scc.o</Literal> sia messo nella directory <Literal>/lib/modules</Literal>, ma non
occorre ricompilare il kernel. Si ricordi di usare il comando
<Emphasis>insmod</Emphasis> per caricare il modulo prima di provare a configurarlo.
</Para>

</Sect4>

<Sect4><Title>Configurazione del driver per la propria scheda</Title>

<Para>
Il driver per scheda SCC z8530 &egrave; stato concepito per garantire la
massima flessibilit&agrave; e per supportare il maggior numero di schede.
Questa flessibilit&agrave; porta per&ograve; come conseguenza una configurazione
piuttosto impegnativa.
</Para>

<Para>
Nel pacchetto c'&egrave; una esauriente documentazione che va letta in
caso di difficolt&agrave;. In particolare, maggiori informazioni si possono
trovare in <Literal>doc/scc_eng.doc</Literal> o
<Literal>doc/scc_ger.doc</Literal>. In questo documento vengono ripresi
i concetti fondamentali, ma si invita a consultare i file indicati
nel caso si richieda un livello di dettaglio maggiore.
</Para>

<Para>
Il file di configurazione principale &egrave; chiamato <Literal>/etc/z8530drv.conf</Literal> e
viene letto dal programma <Emphasis>sccinit</Emphasis>, Questo file  &egrave; diviso in
due parti: configurazione dei parametri hardware e configurazione del
canale. Una volta adattato opportunamente questo file alle vostre
esigenze, basta aggiungere:
</Para>

<Para>
<Screen>
# sccinit
</Screen>
</Para>

<Para>
nel file <Literal>rc</Literal> che configura la rete, e il driver sar&egrave; 
inizializzato nel modo indicato dal file di configurazione. Questa
operazione va fatta prima di provare ad usare il driver.
</Para>

<Sect5><Title>Configurazione dei parametri hardware</Title>

<Para>
La prima sezione &egrave; divisa in due sottoparti, ognuna delle quali
rappresenta la configurazione per un chip 8530 ed &egrave; costituita da una
lista di parole chiave e valori associati. In questo file si
possono specificare fino a quattro chip SCC di default. Il valore
<Literal>&num;define MAXSCC 4</Literal>  nel file <Literal>scc.c</Literal> pu&ograve; essere
aumentato se si desidera il supporto per un numero maggiore di chip.
</Para>

<Para>
Le parole chiave possibili e i relativi argomenti sono:
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>chip</Term>
<ListItem>
<Para>
la parola chiave <Literal>chip</Literal> serve per separare le sottosezioni. Non usa
argomenti.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>data_a</Term>
<ListItem>
<Para>
questa keyword specifica l'indirizzo della porta dati per il
canale 'A' dello z8530. L'argomento &egrave; un numero esadecimale, ad
esempio 0x300
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>ctrl_a</Term>
<ListItem>
<Para>
specifica l'indirizzo della porta di
controllo per il canale 'A' dello z8530. L'argomento &egrave; un numero
esadecimale, ad esempio 0x304
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>data_b</Term>
<ListItem>
<Para>
specifica l'indirizzo della porta dati per il
canale 'B' dello z8530. L'argomento &egrave; un numero esadecimale, ad
esempio 0x301
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>ctrl_b</Term>
<ListItem>
<Para>
specifica l'indirizzo della porta di
controllo per il canale 'B' dello z8530. L'argomento &egrave; un numero
esadecimale, ad esempio 0x305
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>irq</Term>
<ListItem>
<Para>
specifica l'IRQ (l'interrupt) usato dalla scheda SCC
8530 descritta in questa sottosezione. L'argomento &egrave; un intero, ad
esempio 5
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>pclock</Term>
<ListItem>
<Para>
specifica la frequenza del clock al pin PCLK
dell'8530. L'argomento &egrave; un intero che indica la frequenza in Hz, ed
&egrave; fissato di default a 4915200 se si omette questa parola chiave.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>board</Term>
<ListItem>
<Para>
specifica il tipo particolare di scheda SCC 8530.
L'argomento &egrave; una stringa alfanumerica che pu&ograve; assumere i seguenti
valori:
<VariableList>

<VarListEntry>
<Term>PA0HZP</Term>
<ListItem>
<Para>
scheda SCC PA0HZP
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>EAGLE</Term>
<ListItem>
<Para>
Scheda Eagle
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>PC100</Term>
<ListItem>
<Para>
scheda DRSI PC100 SCC
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>PRIMUS</Term>
<ListItem>
<Para>
scheda PRIMUS-PC (DG9BL)
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>BAYCOM</Term>
<ListItem>
<Para>
scheda BayCom (U)SCC
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>escc</Term>
<ListItem>
<Para>
questa parola chiave &egrave; opzionale; viene usata per
abilitare il supporto per i chip Extended SCC (ESCC) come l'8580,
85180 o 85280. L'argomento &egrave; una stringa di caratteri i cui
valori ammessi sono 'yes' oppure 'no', che &egrave; il valore didefault.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>vector</Term>
<ListItem>
<Para>
questa parola chiave &egrave; opzionale; specifica
l'indirizzo del 'vector latch' (conosciuto pure come "intack port")
per le schede PA0HZP. Ci pu&ograve; essere solo un vector latch per tutti i
chip e il valore di default &egrave; 0
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>special</Term>
<ListItem>
<Para>
questa parola chiave &egrave; opzionale; specifica
l'indirizzo del registro per funzioni speciali presente su diverse
schede SCC. Il valore di default &egrave; 0
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>option</Term>
<ListItem>
<Para>
questa parola chiave &egrave; opzionale e il suo valore di
default &egrave; 0
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Seguono alcuni configurazioni d'esempio per le schede pi&ugrave; comuni:
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>BayCom USCC</Term>
<ListItem>
<Para>

<Screen>
chip    1
data_a  0x300
ctrl_a  0x304
data_b  0x301
ctrl_b  0x305
irq     5
board   BAYCOM
#
# SCC chip 2
#
chip    2
data_a  0x302
ctrl_a  0x306
data_b  0x303
ctrl_b  0x307
board   BAYCOM
</Screen>

</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>scheda SCC PA0HZP</Term>
<ListItem>
<Para>

<Screen>
chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
</Screen>

</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Scheda SCC DRSI</Term>
<ListItem>
<Para>

<Screen>
chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no
</Screen>

</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Se con NOS si ha gi&agrave; una configurazione funzionante per la vostra
scheda, si pu&ograve; usare il comando <Emphasis>gencfg</Emphasis> per convertire i
comandi del driver NOS di PE1CHL in una formato adatto al
file di configurazione del driver z8530.
</Para>

<Para>
Per usare <Emphasis>gencfg</Emphasis> basta invocare il comando con gli stessi
parametri usati per il driver di PE1CHL in NET/NOS. Per esempio il
comando:
</Para>

<Para>
<Screen>
# gencfg 2 0x150 4 2 0 1 0x168 9 4915200
</Screen>
</Para>

<Para>
generer&agrave; un abbozzo di configurazione per la scheda OptoSCC.
</Para>

</Sect5>

</Sect4>

<Sect4><Title>Configurazione del canale</Title>

<Para>
La sezione di configurazione del canale &egrave; quella nella quale si
specificano tutti gli altri parametri associati con la porta che si
sta configurando. Anche questa &egrave; divisa in due sottosezioni che
rappresentano ciascuna una porta logica, quindi, visto che ogni
scheda SCC 8530 ne supporta due, saranno presenti due sottosezioni
per ogni sottosezione nella parte dei parametri hardware.
</Para>

<Para>
Queste parole chiave sono scritte anche nel file <Literal>/etc/z8530drv.conf</Literal>
e devono apparire  <Emphasis>dopo</Emphasis> la sezione dei parametri hardware.
</Para>

<Para>
L'ordine in cui queste appaiono &egrave; molto importante, ma quello in cui
sono presentate qui dovrebbe andare bene. Le parole chiave e i relativi argomenti sono:
<VariableList>

<VarListEntry>
<Term>device</Term>
<ListItem>
<Para>
questa parola chiave deve apparire all'inizio della
definizione della porta e specifica il nome del dispositivo file speciale
al quale si applica il resto dei parametri di configurazione; ad
esempio <Literal>/dev/scc0</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>speed</Term>
<ListItem>
<Para>
questa parola chiave specifica la velocit&agrave; 
dell'interfaccia in bit al secondo: ad esempio <Literal>1200</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>clock</Term>
<ListItem>
<Para>
questa parola chiave specifica da dove recuperare il
clock per i dati. I valori consentiti sono:
<VariableList>
<VarListEntry>
<Term>dpll</Term>
<ListItem>
<Para>
normali operazioni in half duplex
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>external</Term>
<ListItem>
<Para>
il modem fornisce il proprio clock per le operazioni di RX/TX
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>divider</Term>
<ListItem>
<Para>
usa il divider full duplex se installato.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>mode</Term>
<ListItem>
<Para>
>questa parola chiave specifica il tipo di codifica da
adottare per la rappresentazione dei dati. I valori consentiti sono:
<Literal>nrzi</Literal> oppure <Literal>nrz</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>rxbuffers</Term>
<ListItem>
<Para>
specifica il numero di buffer di ricezione per
cui allocare memoria. L'argomento &egrave; un intero, ad esempio 8.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>txbuffers</Term>
<ListItem>
<Para>
specifica il numero di buffer di trasmissione per
cui allocare memoria. L'argomento &egrave; un intero, ad esempio 8.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>bufsize</Term>
<ListItem>
<Para>
specifica la dimensione dei buffer di ricezione e
trasmissione. L'argomento &egrave; in byte e rappresenta la lunghezza totale
del frame, compreso l'header AX.25 (non solo la parte dati). Questa
parola chiave &egrave; opzionale e il suo valore di default &egrave; <Literal>384</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>txdelay</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di ritardo nella
trasmissione; l'argomento &egrave; un intero ed esprime una grandezza in millisecondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>persist</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di persist e il suo
argomento &egrave; un intero.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>slot</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di tempo di slot (slot time);
l'argomento &egrave; un intero ed esprime una grandezza in millisecondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>tail</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di tail; il suo
argomento &egrave; un intero ed esprime una grandezza in millisecondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>fulldup</Term>
<ListItem>
<Para>
rappresenta il flag KISS che indica se la
trasmissione &egrave; in full duplex; l'argomento &egrave; un intero e i valori
ammessi sono:
<Literal>1</Literal>==Full Duplex, <Literal>0</Literal>==Half Duplex.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>wait</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di tempo di wait;
l'argomento &egrave; un intero ed esprime una grandezza in millisecondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>min</Term>
<ListItem>
<Para>
rappresenta il parametro KISS 'min'; l'argomento &egrave; un
intero ed esprime una grandezza in secondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>maxkey</Term>
<ListItem>
<Para>
rappresenta il parametro KISS indicante il tempo
massimo di keyup; l'argomento &egrave; un intero ed esprime una grandezza in
secondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>idle</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di tempo di idle;
l'argomento &egrave; un intero ed esprime una grandezza in secondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>maxdef</Term>
<ListItem>
<Para>
rappresenta il parametro KISS 'maxdef'; l'argomento
&egrave; un intero.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>group</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di valore di gruppo;
l'argomento &egrave; un intero.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>txoff</Term>
<ListItem>
<Para>
rappresenta il parametro KISS di tempo di 'txoff';
l'argomento &egrave; un intero ed esprime una grandezza in millisecondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>softdcd</Term>
<ListItem>
<Para>
rappresenta il parametro KISS 'softdcd';
l'argomento &egrave; un intero.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>slip</Term>
<ListItem>
<Para>
rappresenta il flag KISS 'slip'; l'argomento &egrave; un
intero.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

</Sect4>

<Sect4><Title>Uso del driver</Title>

<Para>
Per usare il driver basta semplicemente utilizzare i dispositivi <Literal>/dev/scc*</Literal>
come se si avesse un dispositivo seriale tty con un TNC
KISS connesso ad esso. Per esempio, per configurare la parte di
networking del kernel di Linux per l'uso di una scheda SCC, si pu&ograve; 
fare in questo modo:
</Para>

<Para>
<Screen>
# kissattach -s 4800 /dev/scc0 VK2KTJ
</Screen>
</Para>

<Para>
Si pu&ograve; anche usare NOS per effettuare la configurazione nello stesso
modo. Da JNOS, per esempio, si pu&ograve; fare:
</Para>

<Para>
<Screen>
attach asy scc0 0 ax25 scc0 256 256 4800
</Screen>
</Para>

</Sect4>

<Sect4><Title>I programmi <Emphasis>sccstat</Emphasis> e <Emphasis>sccparam</Emphasis></Title>

<Para>
Per la diagnosi di eventuali problemi, si pu&ograve; usare il programma <Emphasis>sccstat</Emphasis>
per mostrare la configurazione corrente di un dispositivo
SCC. Per usarlo si pu&ograve; dare il comando:
</Para>

<Para>
<Screen>
# sccstat /dev/scc0
</Screen>
</Para>

<Para>
in questo modo verranno mostrati un sacco di informazioni sulla
configurazione e sul comportamento della porta SCC <Literal>/dev/scc0</Literal>.
</Para>

<Para>
Il comando <Emphasis>sccparam</Emphasis> permette di cambiare o modificare la configurazione
dopo il boot del sistema. La sua sintassi &egrave; molto simile al comando
NOS <Literal>param</Literal>, quindi, ad esempio, per settare a 100 ms il
valore di <Literal>txtail</Literal> si puo fare:
</Para>

<Para>
<Screen>
# sccparam /dev/scc0 txtail 0x8
</Screen>
</Para>

</Sect4>

</Sect3>

<Sect3><Title>Creazione di un dispositivo ethernet BPQ</Title>

<Para>
<Emphasis>Opzioni di compilazione del Kernel</Emphasis>:

<Screen>
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] BPQ Ethernet driver for AX.25
</Screen>
</Para>

<Para>
Linux supporta la compatibilit&agrave; Ethernet BPQ. Questo permette di
trasportare il protocollo AX.25 su una LAN Ethernet e di connettere
sulla rete locale la macchina Linux con altre macchine BPQ.
</Para>

<Para>
I dispositivi di rete BPQ hanno nome '<Literal>bpq[0-9]</Literal>'. Il dispositivo
'<Literal>bpq0</Literal>' &egrave; associato con  '<Literal>eth0</Literal>',
'<Literal>bpq1</Literal>' con '<Literal>eth1</Literal>' e cos&igrave; via.
</Para>

<Para>
La configurazione &egrave; abbastanza immediata. Prima di tutto occorre che
il kernel sia stato compilato per supportare una scheda
Ethernet standard e che si sia gi&agrave; verificato il corretto
funzionamento di quest'ultima con Linux. Per maggiori informazioni su queste operazioni si
pu&ograve; fare riferimento all'<ULink URL="Ethernet-HOWTO.html">Ethernet-HOWTO</ULink>
</Para>

<Para>
Per configurare il supporto BPQ occorre dotare di un nominativo AX.25
il dispositivo Ethernet col seguente comando:
</Para>

<Para>
<Screen>
# /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up
</Screen>
</Para>

<Para>
Ancora una volta si ricordi che il nominativo specificato deve essere
uguale a quello presente nel file <Literal>/etc/ax25/axports</Literal> che si intende
usare per questa porta.
</Para>

</Sect3>

<Sect3><Title>Configurazione del nodo BPQ per il colloquio con il supporto AX.25 di Linux</Title>

<Para>
A differenza dell'implementazione standard di BPQ Ethernet che usa
normalmente un indirizzamento multicast, in Linux si adotta il
normale indirizzamento broadcast; il file NET.CFG per il driver BPQ
ODI dovrebbe perci&ograve; essere modificato per assomigliare a questo:
</Para>

<Para>
<Screen>
LINK SUPPORT

        MAX STACKS 1
        MAX BOARDS 1

LINK DRIVER E2000                    ; o altre MLID che si adattino
				     ; alla vostra scheda

        INT 10                       ;
        PORT 300                     ; per adattarsi alla vostra scheda

        FRAME ETHERNET_II

        PROTOCOL BPQ 8FF ETHERNET_II ; richiesto per BPQ - può cambiare PID

BPQPARAMS                            ; opzionale - richiesto solo se
                                     ; non si vuole usare l'indirizzo
                                     ; di default

        ETH_ADDR  FF:FF:FF:FF:FF:FF  ; indirizzo di default della scheda
</Screen>
</Para>

</Sect3>

</Sect2>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/axports</Literal></Title>

<Para>
<Literal>/etc/ax25/axports</Literal> &egrave; un semplice file di testo, da creare con
un editor. Il suo formato &egrave; il seguente:
</Para>

<Para>
<Screen>
portname  callsign  baudrate  paclen  window  description
</Screen>
</Para>

<Para>
dove:
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>portname</Term>
<ListItem>
<Para>
&egrave; il nome che viene dato alla porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>callsign</Term>
<ListItem>
<Para>
&egrave; il nominativo AX.25 che si vuole assegnare alla porta.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>baudrate</Term>
<ListItem>
<Para>
&egrave; la velocit&agrave; con la quale si vuol far comunicare la porta col proprio TNC.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>paclen</Term>
<ListItem>
<Para>
&egrave; la grandezza massima del pacchetto che si vuole che la porta usi per le trasmissioni AX.25.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>window</Term>
<ListItem>
<Para>
&egrave; il parametro di finestra AX.25 (K), cio&egrave; il valore
di <Literal>MAXFRAME</Literal> di molti TNC.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>description</Term>
<ListItem>
<Para>
&egrave; la descrizione testuale della porta.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
La mia &egrave; la seguente:
</Para>

<Para>
<Screen>
radio    VK2KTJ-15       4800        256     2       4800bps 144.800 MHz
ether    VK2KTJ-14       10000000    256     2       BPQ/ethernet device
</Screen>
</Para>

<Para>
Si ricordi di usare un nominativo/ssid univoco per ogni porta AX.25
che si crea.
Occorre creare, dunque, una voce per ogni dispositivo AX.25 che si vuole
utilizzare (KISS, SCC, PI, PT, Baycom o SoundModem che sia). Ogni voce descrive un singolo
dispositivo di rete AX.25 che sono associati alle porte attraverso il nominativo/ssid, per
questo esso deve essere univoco.
</Para>

</Sect2>

<Sect2><Title>Configurazione del routing AX.25</Title>

<Para>
&Egrave; possibile configurare l'elenco dei digipeater da utilizzare per raggiungere
un host specifico, operazione che risulta utile sia per le operazioni
AX.25 che basate su IP. Il comando <Emphasis>axparms</Emphasis> permette di effettuare questa
operazione; le pagine <Emphasis>man</Emphasis> sono sempre la fonte migliore di informazioni
su questo comando, ma un semplice esempio pu&ograve; essere:
</Para>

<Para>
<Screen>
# /usr/sbin/axparms -route add radio VK2XLZ VK2SUT
</Screen>
</Para>

<Para>
Questo comando indica che il percorso per <Literal>VK2XLZ</Literal> deve avvenire
tramite il digipeater <Literal>VK2SUT</Literal> sulla porta AX.25 chiamata
<Literal>radio</Literal>.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione di un'interfaccia AX.25 per TCP/IP</Title>

<Para>
&Egrave; molto semplice configurare una porta AX.25 per il trasporto del
TCP/IP. Se si ha un'interfaccia KISS ci sono due metodi per
configurare un indirizzo IP. Il comando <Emphasis>kissattach</Emphasis> possiede
un opzione che permette di configurare l'indirizzo IP; ma il metodo pi&ugrave; 
convenzionale che usa il comando <Emphasis>ifconfig</Emphasis> funzioner&agrave; per tutti i
tipi d'interfaccia.
</Para>

<Para>
Quindi, modificando l'esempio fatto per il KISS:
</Para>

<Para>
<Screen>
# /usr/sbin/kissattach -i 44.136.8.5 -m 512 /dev/ttyS0 radio
# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 ax0
# /sbin/route add default ax0
</Screen>
</Para>

<Para>
si crea un'interfaccia AX.25 con un indirizzo IP <Literal>44.136.8.5</Literal>
e una <Literal>MTU</Literal> di <Literal>512</Literal> byte. Comunque occorrer&agrave; sempre usare
<Emphasis>ifconfig</Emphasis>  per configurare, se necessario, gli altri
parametri.
</Para>

<Para>
Se si hanno altri tipi di interfaccia occorre usare sempre
<Emphasis>ifconfig</Emphasis> per configurare l'indirizzo IP, i dettagli di
netmask per la porta e aggiungere un percorso (route) attraverso la
porta stessa, cos&igrave; come si fa per ogni altra interfaccia TCP/IP.
L'esempio che segue &egrave; riferito ad un dispositivo per una scheda PI, ma
funziona altrettanto bene per ogni altro dispositivo di rete AX.25:
</Para>

<Para>
<Screen>
# /sbin/ifconfig pi0a 44.136.8.5 netmask 255.255.255.0 up
# /sbin/ifconfig pi0a broadcast 44.136.8.255 mtu 512
# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 pi0a
# /sbin/route add default pi0a
</Screen>
</Para>

<Para>
I comandi visti sopra sono tipici delle configurazioni a cui sono
abituati gli utenti di NOS o dei suoi derivati, o di ogni altro
software TCP/IP. Si noti che il percorso tipico (default route) pu&ograve; 
non essere richiesto nella propria configurazione, se ci sono altri
dispositivi configurati.
</Para>

<Para>
Per testare il tutto, si provi un ping o un telnet verso un host
locale.
</Para>

<Para>
<Screen>
# ping -i 5 44.136.8.58
</Screen>
</Para>

<Para>
Si noti l'uso dell'argomento '<Literal>-i 5</Literal>' per <Emphasis>ping</Emphasis> per
mandare gli impulsi ogni 5 secondi, invece che ogni secondo come
scelta predefinita.
</Para>

</Sect1>

<Sect1><Title>Configurazione di una porta NET/ROM </Title>

<Para>
Il protocollo NET/ROM usa e si appoggia alle porte AX.25 create in
precedenza; per configurarlo su un'interfaccia AX.25 occorre
modificare due file: uno descrive l'interfaccia NET/ROM, e l'altro
quali porte AX.25 verranno usate per trasportare questo protocollo.
Si possono configurare pi&ugrave; porte NET/ROM, ognuna col proprio
nominativo e alias, usando la stessa procedura.
</Para>

<Sect2><Title>Configurazione di <Literal>/etc/ax25/nrports</Literal></Title>

<Para>
Il primo file &egrave; <Literal>/etc/ax25/nrports</Literal>. Questo file descrive le
porte NET/ROM pressapoco nello stesso modo in cui <Literal>/etc/ax25/axports</Literal>
descrive le porte AX.25. Ogni dispositivo NET/ROM che si vuole creare deve avere una voce di
descrizione all'interno del file
<Literal>/etc/ax25/nrports</Literal>.
Normalmente una
macchina Linux avr&agrave; configurato un unico dispositivo NET/ROM che usa un
certo numero delle porte AX.25 definite, ma in alcune situazioni,
come ad esempio nei BBS, si potrebbero volere diversi alias NET/ROM.
</Para>

<Para>
Questo file &egrave; formattato nel seguente modo:
</Para>

<Para>
<Screen>
name callsign  alias  paclen   description
</Screen>
</Para>

<Para>
Dove:
<VariableList>

<VarListEntry>
<Term>name</Term>
<ListItem>
<Para>
&egrave; il nome con cui si fa riferimento alla porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>callsign</Term>
<ListItem>
<Para>
&egrave; il nominativo che verr&agrave; usato dal traffico
NET/ROM di questa porta. Si noti che questo
<Emphasis>non</Emphasis> &egrave; l'indirizzo al
quale si connettono gli utenti per avere un accesso ad un interfaccia di tipo <Emphasis>node</Emphasis>
. (Il programma node &egrave; descritto pi&ugrave; avanti). Questo
nominativo/ssid dovrebbe essere unico e non dovrebbe apparire in
alcun altro punto dei file
<Literal>/etc/ax25/axports</Literal> o
<Literal>/etc/ax25/nrports</Literal>.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>alias</Term>
<ListItem>
<Para>
&egrave; l'alias NET/ROM assegnato a questa porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>paclen</Term>
<ListItem>
<Para>
&egrave; la dimensione massima dei frame NET/ROM trasmessi
dalla porta.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>description</Term>
<ListItem>
<Para>
&egrave; una descrizione libera della porta.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Un tipico esempio potrebbe essere il seguente:
</Para>

<Para>
<Screen>
netrom VK2KTJ-9        LINUX   236     Linux Switch Port
</Screen>
</Para>

<Para>
In questo modo viene creata una porta NET/ROM, conosciuta dal resto
della rete NET/ROM come '<Literal>LINUX:VK2KTJ-9</Literal>'.
</Para>

<Para>
Questo programma viene usato da programmi come <Emphasis>call</Emphasis>.
</Para>

</Sect2>

<Sect2><Title>Configurazione di <Literal>/etc/ax25/nrbroadcast</Literal></Title>

<Para>
Il secondo file di configurazione &egrave; <Literal>/etc/ax25/nrbroadcast</Literal>.
Questo file pu&ograve; contenere diverse voci; normalmente ci dovrebbe essere una voce per ogni
porta AX.25 su cui si vuole consentire il traffico NET/ROM.
</Para>

<Para>
Questo file ha il seguente formato:
</Para>

<Para>
<Screen>
axport min_obs def_qual worst_qual verbose
</Screen>
</Para>

<Para>
Dove:
<VariableList>

<VarListEntry>
<Term>axport</Term>
<ListItem>
<Para>
&egrave; il nome della porta ricavato dal file
<Literal>/etc/ax25/axports</Literal>. Se per una porta non &egrave; presente una voce nel file
<Literal>/etc/ax25/nrbroadcasts</Literal>  significa che da questa non
sar&agrave; instradato traffico NET/ROM, cos&igrave; come saranno ignorati i broadcast NET/ROM per quella
porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>min_obs</Term>
<ListItem>
<Para>
&egrave; il valore minimo di obsolescenza per la porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>def_qual</Term>
<ListItem>
<Para>
&egrave; il valore di default della qualit&agrave; per la porta.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>worst_qual</Term>
<ListItem>
<Para>
&egrave; il peggior valore di qualit&agrave; consentito
per la porta; ogni route al di sotto di questo livello sar&agrave; ignorata.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>verbose</Term>
<ListItem>
<Para>
&egrave; un flag che indica se da questa porta avvengono
broadcast del routing NET/ROM completi, o solo di annuncio per il
nodo stesso.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Un esempio pu&ograve; essere il seguente:
</Para>

<Para>
<Screen>
radio    1       200      100         1
</Screen>
</Para>

</Sect2>

<Sect2><Title>Creazione del dispositivo di rete NET/ROM</Title>

 <Para>
Una volta pronti i due file, occorre creare il dispositivo NET/ROM con un
metodo molto simile a quello usato per creare i dispositivi AX.25.In
questo caso si usa il comando <Emphasis>nrattach</Emphasis>, che funziona pressapoco
nello stesso modo di <Emphasis>axattach</Emphasis>, ad eccezione del fatto che crea
dei dispositivi di rete NET/ROM chiamati '<Literal>nr[0-9]</Literal>'.. Anche in questo
caso, per primo verr&agrave; creato il dispositivo '<Literal>nr0</Literal>', poi
'<Literal>nr1</Literal>'
eccetera.  Per creare il dispositivo per la porta NET/ROM definita
in precedenza si user&agrave;:
</Para>

<Para>
<Screen>
# nrattach netrom
</Screen>
</Para>

<Para>
Questo comando inizializzer&agrave; il dispositivo NET/ROM (<Literal>nr0</Literal>)
chiamato <Literal>netrom</Literal> configurato nel modo definito dai parametri del file
<Literal>/etc/ax25/nrports</Literal>.
</Para>

</Sect2>

<Sect2><Title>Lancio del demone NET/ROM</Title>

<Para>
Il kernel di Linux gestisce tutto il protocollo NET/ROM, ad eccezione
di alcune funzioni. Il demone NET/ROM gestisce le tabelle di
instradamento (routing tables) e genera la trasmissione del routing
NET/ROM. Il demone NET/ROM viene lanciato dal comando:
</Para>

<Para>
<Screen>
# /usr/sbin/netromd -i
</Screen>
</Para>

<Para>
A questo punto il file <Literal>/proc/net/nr_neigh</Literal> dovrebbe
cominciare a riempirsi di informazioni relative ai nodi NET/ROM
adiacenti.
</Para>

<Para>
Si ricordi di mettere il comando <Literal>/usr/sbin/netromd</Literal> nei
propri file <Emphasis>rc</Emphasis>, in modo che il demone venga lanciato ogni
volta che si fa ripartire il sistema.
</Para>

</Sect2>

<Sect2><Title>Configurazione del routing NET/ROM. </Title>

<Para>
Volendo configurare degli instradamenti NET/ROM statici per degli host
specifici si pu&ograve; usare il comando <Emphasis>nrparms</Emphasis>; ancora una volta si
rimanda alle pagine <Emphasis>man</Emphasis> relative, non prima di proporre un esempio
come il seguente:
</Para>

<Para>
<Screen>
# /usr/sbin/nrparms -nodes VK2XLZ-10 + #MINTO 120 5 radio VK2SUT-9
</Screen>
</Para>

<Para>
Questo comando abilita una route NET/ROM per <Literal>&num;MINTO:VK2XLZ-10</Literal>
attraverso <Literal>VK2SUT-9</Literal> sulla porta AX.25 chiamata '<Literal>radio</Literal>'.
</Para>

<Para>
Si possono creare manualmente voci per nuovi host vicini usando
sempre il comando <Emphasis>nrparms</Emphasis>. Ad esempio:
</Para>

<Para>
<Screen>
# /usr/sbin/nrparms -routes radio VK2SUT-9 + 120
</Screen>
</Para>

<Para>
questo comando crea <Literal>VK2SUT-9</Literal> come nodo NET/ROM adiacente con
qualit&agrave; <Literal>120</Literal>; questa voce sar&agrave; statica e quindi non sar&agrave; 
cancellata automaticamente.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione di un interfaccia NET/ROM per TCP/IP</Title>

<Para>
Il processo di configurazione di un interfaccia NET/ROM per TCP/IP &egrave; 
quasi del tutto identico a quella di un interfaccia AX.25 per TCP/IP.
</Para>

<Para>
Anche in questo caso occorre specificare indirizzo ip e mtu nella
linea di comando di <Emphasis>nrattach</Emphasis>, o usare i comandi
<Emphasis>ifconfig</Emphasis> e <Emphasis>route</Emphasis>, ma occorre
aggiungere manualmente
le voci <Emphasis>arp</Emphasis> per gli host verso i quali si vuole creare una
route, poich&eacute; non c'èegrave; nessun meccanismo che permetta alla propria
macchina di sapere quale indirizzo NET/ROM usare per raggiungere un
particolare host IP.
</Para>

<Para>
Per questo, per creare un dispositivo <Literal>nr0</Literal> con indirizzo IP
<Literal>44.136.8.5</Literal>, mtu di <Literal>512</Literal> e configurato nel modo
descritto nel file <Literal>/etc/ax25/nrports</Literal> per la porta NET/ROM
chiamata <Literal>NET/ROM</Literal>, si user&agrave; il comando:
</Para>

<Para>
<Screen>
# /usr/sbin/nrattach -i 44.136.8.5 -m 512 NET/ROM
# route add 44.136.8.5 nr0
</Screen>
</Para>

<Para>
oppure una cosa simile alla seguente sequenza di comandi:
</Para>

<Para>
<Screen>
# /usr/sbin/nrattach NET/ROM
# ifconfig nr0 44.136.8.5 netmask 255.255.255.0 hw NET/ROM VK2KTJ-9
# route add 44.136.8.5 nr0
</Screen>
</Para>

<Para>
Per ogni host IP che si voglia raggiungere via NET/ROM occorre dunque
indicare route e arp. Per raggiungere un host con indirizzo IP
<Literal>44.136.80.4</Literal> all'indirizzo NET/ROM <Literal>BBS:VK3BBS</Literal> tramite
un nodo NET/ROM con nominativo <Literal>VK2SUT-0</Literal> si useranno i
seguenti comandi:
</Para>

<Para>
<Screen>
# route add 44.136.80.4 nr0
# arp -t NET/ROM -s 44.136.80.4 vk2sut-0
# nrparms -nodes vk3bbs + BBS 120 6 sl0 vk2sut-0
</Screen>
</Para>

<Para>
Gli argomenti di <Emphasis>nrparms</Emphasis>, '<Literal>120</Literal>' e '<Literal>6</Literal>' sono
rispettivamente i valori NET/ROM di <Emphasis>quality</Emphasis> e
<Emphasis>obsolescence count</Emphasis> per la route.
</Para>

</Sect1>

<Sect1><Title>Configurazione di una porta Rose</Title>

<Para>
Il protocollo packet Rose &egrave; simile al livello tre delle specifiche
X.25. Il suo supporto nel kernel di Linux &egrave; una versione
<Emphasis>modificata</Emphasis> dell'<ULink URL="http://fpac.lmi.ecp.fr/f1oat/f1oat.html">
Implementazione Rose FPAC</ULink>.
</Para>

<Para>
Il protocollo ROSE usa le porte AX.25 che sono presenti nel sistema e si
appoggia a questo protocollo.
Per configurare il ROSE occorre creare un file di configurazione che
descrive le porte ROSE che si vogliono creare; per ogni porta la
procedura &egrave; la stessa.
</Para>

<Sect2><Title>Configurazione di <Literal>/etc/ax25/rsports</Literal> </Title>

<Para>
Il file nel quale si configurano le interfacce ROSE &egrave; 
<Literal>/etc/ax25/rsports</Literal>. In esso vengono descritte le porte ROSE
pi&ugrave; o meno nello stesso modo in cui il file
<Literal>/etc/ax25/axports</Literal> descrive le porte AX.25.
</Para>

<Para>
Questo file &egrave; formattato nel seguente modo:
</Para>

<Para>
<Screen>
name  address  description
</Screen>
</Para>

<Para>
Dove:
<VariableList>

<VarListEntry>
<Term>name</Term>
<ListItem>
<Para>
&egrave; il nome con il quale si fa riferimento alla porta
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>address</Term>
<ListItem>
<Para>
&egrave; l'indirizzo ROSE a dieci cifre che si vuole assegnare alla porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>description</Term>
<ListItem>
<Para>
&egrave; una descrizione libera della porta.</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Un esempio potrebbe essere il seguente:
</Para>

<Para>
<Screen>
rose  5050294760  Porta Rose
</Screen>
</Para>

<Para>
Si noti che, a meno di specificare diversamente, il ROSE usa il
nominativo/ssid di default configurato su ogni porta AX.25.
</Para>

<Para>
Per configurare un nominativo/ssid da far usare al ROSE su ogni
porta, si usa il comando <Emphasis>rsparms</Emphasis> come segue:
</Para>

<Para>
<Screen>
# /usr/sbin/rsparms -call VK2KTJ-10
</Screen>
</Para>

<Para>
Questo esempio fa s&igrave; che la macchina Linux usi il nominativo <Literal>VK2KTJ-10</Literal>
in tutte le porte AX.25 configurate per traffico ROSE.
</Para>

</Sect2>

<Sect2><Title>Creazione di un dispositivo di rete ROSE</Title>

<Para>
Una volta creato il file <Literal>/etc/ax25/rsports</Literal> si possono creare
i dispositivi ROSE allo stesso modo in cui sono stati creati i dispositivi 
AX.25. In questo caso si usa il comando <Emphasis>rsattach</Emphasis>, che crea i dispositivi di
rete chiamati '<Literal>rose[0-5]</Literal>'. La prima volta viene creato
'<Literal>rose0</Literal>', la seconda '<Literal>rose1</Literal>' e cos&igrave; via. Ad esempio:
</Para>

<Para>
<Screen>
# rsattach rose
</Screen>
</Para>

<Para>
Questo comando inizializza il dispositivo ROSE (<Literal>rose0</Literal>) configurato
nel modo descritto nel file <Literal>/etc/ax25/rsports</Literal> per la porta
chiamata '<Literal>rose</Literal>'.
</Para>

</Sect2>

<Sect2><Title>Configurazione del routing ROSE</Title>

<Para>
Attualmente il protocollo ROSE supporta solo l'instradamento statico.
L'utilit&agrave; <Emphasis>rsparms</Emphasis> permette di configurare la tabella di routing
ROSE per Linux.
</Para>

<Para>
Ad esempio:
</Para>

<Para>
<Screen>
# rsparms -nodes add 5050295502 radio vk2xlz
</Screen>
</Para>

<Para>
aggiunge una route al nodo ROSE <Literal>5050295502</Literal> attraverso una porta
AX.25 chiamata '<Literal>radio</Literal>' nel file <Literal>/etc/ax25/axports</Literal>, per
un host col nominativo <Literal>VK2XLZ</Literal>.
</Para>

<Para>
Le route possono essere specificate con una maschera per includere
diverse destinazioni in un unica voce ROSE. La sintassi &egrave; la seguente:
</Para>

<Para>
<Screen>
# rsparms -nodes add 5050295502/4 radio vk2xlz
</Screen>
</Para>

<Para>
che &egrave; identica all'esempio precedente, ad eccezione del fatto che si
applica ad ogni destinazione che ha un indirizzo che inizia con le
quattro cifre <Literal>5050</Literal>. Una forma alternativa per questo comando &egrave;:
</Para>

<Para>
<Screen>
# rsparms -nodes add 5050/4 radio vk2xlz
</Screen>
</Para>

<Para>
che &egrave; probabilmente quella meno ambigua
</Para>
</Sect2>

</Sect1>

<Sect1><Title>Come effettuare chiamate AX.25/NET/ROM/Rose</Title>

<Para>
Una volta configurate ed attivate le interfacce AX.25, NET/ROM e Rose, si &egrave; in
grado di effettuare collegamenti di prova.
</Para>

<Para>
Nelle AX25 Utilities &egrave; incluso un programma chiamato '<Emphasis>call</Emphasis>' che
&egrave; un terminale per AX.25, NET/ROM e Rose.
</Para>

<Para>
Una semplice chiamata AX.25 sar&agrave;  del tipo:
</Para>

<Para>
<Screen>
/usr/bin/call radio VK2DAY via VK2SUT
</Screen>
</Para>

<Para>
Una semplice chiamata NET/ROM ad un nodo con alias <Literal>SUNBBS</Literal> sar&agrave;:
</Para>

<Para>
<Screen>
/usr/bin/call NET/ROM SUNBBS
</Screen>
</Para>

<Para>
Mentre una semplice chiamata Rose verso <Literal>HEARD</Literal> al nodo <Literal>5050882960</Literal>
sar&agrave; fatta nel seguente modo:
</Para>

<Para>
<Screen>
/usr/bin/call rose HEARD 5050882960
</Screen>
</Para>

<Para>
Nota: occorre dire al programma <Emphasis>call</Emphasis> su quale porta si vuole
effettuare la chiamata, poich&eacute; lo stesso nodo di destinazione
potrebbe essere raggiungibile tramite diverse porte configurate.
</Para>

<Para>
<Emphasis>call</Emphasis> &egrave; un programma terminale a linea di comando per
effettuare chiamate AX.25. Riconosce linee che iniziano con
'<Literal>&tilde;</Literal>' come comandi.
Il comando '<Literal>&tilde;.</Literal>' chiude il collegamento.
</Para>

<Para>
Si faccia riferimento alle pagine man relative in <Literal>/usr/man</Literal>
per maggiori informazioni.
</Para>

</Sect1>


<Sect1><Title>Configurare Linux per accettare connessioni Packet</Title>

<Para>
Linux &egrave; un sistema operativo molto potente e offre un elevato grado
di flessibilit&agrave; nella sua configurazione. Questa flessibilit&agrave; porta
come effetto collaterale una relativa complicatezza nell'operazione
di configurazione. Quando si configura una macchina Linux per
accettare connessioni AX.25, NET/ROM o Rose occorre farsi diverse
domande. La pi&ugrave; importante &egrave; "cosa voglio che gli utenti vedano
quando mi connetto?". Molti hanno sviluppato belle applicazioncine che
possono offrire servizi agli utenti che si connettono; alcune sono
semplici come il programma <Emphasis>pms</Emphasis>, altre pi&ugrave; complesse come
<Emphasis>node</Emphasis> (entrambi presenti nelle utilit&agrave; AX25). Alternativamente
si potrebbe dare agli utenti un account sulla macchina, oppure
potreste aver scritto un vostro programma, come un database
personalizzato, o un gioco al quale volete che gli utenti si
connettano. Qualunque soluzione scegliate, dovete informare il
software AX.25 su quale programma lanciare quando accetta connessioni
AX.25.
</Para>

<Para>
Il demone <Emphasis>ax25d</Emphasis>  &egrave; simile a <Emphasis>inetd</Emphasis>, che viene comunemente
usato per accettare e gestire le connessioni TCP/IP su macchine unix. Il compito
di <Emphasis>ax25d</Emphasis> &egrave; quello di raccogliere e gestire i tentativi di
connessione AX.25. Quando ne sente uno, controlla un file di
configurazione per stabilire quale programma lanciare e connetterlo
al chiamante. Poich&eacute; <Emphasis>ax25d</Emphasis> &egrave; lo strumento standard per accettare
connessioni AX.25, NET/ROM e Rose, verr&agrave; descritto come configurarlo.
</Para>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/ax25d.conf</Literal></Title>

<Para>
Questo &egrave; il file di configurazione per il demone AX.25 <Emphasis>ax25d</Emphasis>,
che gestisce le connessioni entranti AX.25, NET/ROM e ROSE.
</Para>

<Para>
Ad una prima occhiata pu&ograve; apparire un po' criptico, ma presto si nota
come in pratica sia molto semplice, avendo l'accortezza di evitare una piccola trappola.
</Para>

<Para>
Il formato generale del file <Literal>ax25d.conf</Literal> &egrave; il seguente:
</Para>

<Para>
<Screen>
# Questo &egrave; un commento ed &egrave; ignorato dal progamma ax25d.
[nome_porta] || &lt;nome_porta&gt; || {nome_porta}
&lt;peer1&gt;    window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;cmd-name&gt; &lt;arguments&gt;
&lt;peer2&gt;    window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;cmd-name&gt; &lt;arguments&gt;
parameters window T1 T2 T3 idle N2 &lt;mode&gt;
&lt;peer3&gt;    window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;cmd-name&gt; &lt;arguments&gt;
   ...
default    window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;cmd-name&gt; &lt;arguments&gt;
</Screen>
</Para>

<Para>
Dove:
<VariableList>

<VarListEntry>
<Term>&num;</Term>
<ListItem>
<Para>
all'inizio di una riga indica che questa &egrave; un commento e
 deve essere ignorato da <Emphasis>ax25d</Emphasis>.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;nome_porta&gt;</Term>
<ListItem>
<Para>
&egrave; il nome della porta AX.25, NET/ROM o ROSE come specificato nei file
<Literal>/etc/ax25/axports</Literal>,
<Literal>/etc/ax25/nrports</Literal> e
<Literal>/etc/ax25/rsports</Literal>. Il nome della porta &egrave; circondato da parentesi
quadre '<Literal>[]</Literal>'  se &egrave; una
porta AX.25, da parentesi acute '<Literal>&lt;&gt;</Literal>'  se NET/ROM, o graffe
'<Literal>&lcub;&rcub;</Literal>'  se
Rose.
Esiste una forma alternativa per questo campo, che consiste nel far
precedere il nome della porta da '<Literal>callsign/ssid via</Literal>' per
indicare che si vogliono accettare chiamate al nominativo/ssid
attraverso quest'interfaccia. L'esempio dovrebbe rendere pi&ugrave; chiaro il
tutto.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;peer&gt;</Term>
<ListItem>
<Para>
&egrave; il nominativo del nodo a cui si applica
questa particolare configurazione. Se non si specifica un SSID,
questa configurazione sar&agrave; applicata a tutti i SSID del nominativo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>window</Term>
<ListItem>
<Para>
&egrave; il parametro AX.25 "Window" (K) conosciuto anche
come MAXFRAME che si applica in questa configurazione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>T1</Term>
<ListItem>
<Para>
&egrave; il valore di tempo di ritrasmissione del frame (T1) espresso in mezzi secondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>T2</Term>
<ListItem>
<Para>
&egrave; il tempo, espresso in secondi, che il software AX.25
attende per un altro frame in ingresso, prima di mandare una
risposta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>T3</Term>
<ListItem>
<Para>
&egrave; il tempo di inattivit&agrave; espresso in secondi, prima che
il software AX.25 interrompa la sessione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>idle</Term>
<ListItem>
<Para>
&egrave; il valore di idle espresso in secondi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>N2</Term>
<ListItem>
<Para>
il numero di ritrasmissioni consecutive che possono
essere fatte prima di interrompere la connessione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;mode&gt;</Term>
<ListItem>
<Para>
fornisce un meccanismo per stabilire alcuni
tipi di permessi. I modi sono abilitati o disabilitati fornendo una
combinazione di caratteri, ognuna rappresentante un permesso. I
caratteri possono essere scritti sia in maiuscolo che in minuscolo,
in un unico blocco, senza spazi.
<VariableList>

<VarListEntry>
<Term>u/U</Term>
<ListItem>
<Para>
UTMP                   - attualmente non supportato.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>v/V</Term>
<ListItem>
<Para>
Validate call          - attualmente non supportato.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>q/Q</Term>
<ListItem>
<Para>
Quiet                  - Non viene fatto il log della connessione
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>n/N</Term>
<ListItem>
<Para>
check NET/ROM Neighbour - Attualmente non supportato.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>d/D</Term>
<ListItem>
<Para>
Disallow Digipeaters   - La connessione dev'essere diretta, non effettuata tramite digipeater.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>l/L</Term>
<ListItem>
<Para>
Lockout                - Non permette la connessione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>*/0</Term>
<ListItem>
<Para>
marker                 - Mette un marker, nessun modo settato.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;uid&gt;</Term>
<ListItem>
<Para>
&egrave; l'utente con il quale viene eseguito il programma per gestire la connessione
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;cmd&gt;</Term>
<ListItem>
<Para>
&egrave; il path completo del comando da lanciare,
senza specificare argomenti.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;cmd-name&gt;</Term>
<ListItem>
<Para>
&egrave; il nome del programma lanciato, cos&igrave; come deve apparire in un comando <Emphasis>ps</Emphasis> as
(normalmente &egrave; lo stesso valore di &lt;cmd&gt; privo del path).
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&lt;arguments&gt;</Term>
<ListItem>
<Para>
sono gli argomenti da passare a
&lt;:cmd&gt; quando viene lanciato. Possono essere passate utili
informazioni con i seguenti token:
<VariableList>

<VarListEntry>
<Term>&percnt;d</Term>
<ListItem>
<Para>
Nome della porta sulla quale si &egrave; ricevuta la connessione.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;U</Term>
<ListItem>
<Para>
Nominativo AX.25 della stazione collegata senza ssid e scritto in maiuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;u</Term>
<ListItem>
<Para>
Nominativo AX.25 della stazione collegata senza ssid e scritto in minuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;S</Term>
<ListItem>
<Para>
Nominativo AX.25 della stazione collegata con ssid e scritto in maiuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;s</Term>
<ListItem>
<Para>
Nominativo AX.25 della stazione collegata con ssid e scritto in minuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;P</Term>
<ListItem>
<Para>
Nominativo AX.25 del nodo dal quale &egrave; venuta la
chiamata, senza ssid e in maiuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;p</Term>
<ListItem>
<Para>
Nominativo AX.25 del nodo dal quale &egrave; venuta la
chiamata, senza ssid e in minuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;R</Term>
<ListItem>
<Para>
Nominativo AX.25 del nodo dal quale &egrave; venuta la
chiamata, con ssid e in maiuscolo.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>&percnt;r</Term>
<ListItem>
<Para>
Nominativo AX.25 del nodo dal quale &egrave; venuta la
chiamata, con ssid e in minuscolo.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Occorre una sezione scritta nel formato visto sopra per ogni interfaccia
AX.25, NET/ROM o ROSE dalla quale si vogliano accettare connessioni.
</Para>

<Para>
Nel paragrafo ci sono due tipi speciali di righe: uno inizia con la
stringa '<Literal>parameters</Literal>' e l'altro con la stringa
'<Literal>default</Literal>' (s&igrave;, c'&egrave; differenza). Queste servono per funzioni
speciali.
</Para>

<Para>
Lo scopo delle linee '<Literal>default</Literal>' dovrebbe essere ovvio; queste
regolano il comportamento di quelle connessioni  per le quali non
sono specificate regole specifiche. In assenza di una regola di '<Literal>default</Literal>',
ogni connessione che non &egrave; riconducibile ad una
regola definita, sar&agrave; rifiutata e il chiamante disconnesso senza
alcun messaggio.
</Para>

<Para>
La riga '<Literal>parameters</Literal>' assolve un compito pi&ugrave; sottile, qui
sta la trappola menzionata precedentemente. In ogni campo di ogni
definizione per una regola di connessione, si pu&ograve; usare il carattere
'*' per dire 'usa i valori di default'. La linea '<Literal>parameters</Literal>'
&egrave; quella che definisce questi valori. Lo stesso
kernel ha alcuni valori di default che possono essere
usati se non li si specifica con la linea '<Literal>parameters</Literal>'
La trappola &egrave; che questi valori di default si applicano <Emphasis>solo</Emphasis>
alle regole <Emphasis>sotto</Emphasis> la linea '<Literal>parameters</Literal>'. Si possono
avere diverse linee '<Literal>parameters</Literal>' per interfaccia in modo da creare gruppi di
configurazioni di default. &Egrave; importante notare che
'<Literal>parameters</Literal>' non permette di settare i valori dei campi
'<Literal>uid</Literal>' o '<Literal>command</Literal>'.
</Para>

</Sect2>

<Sect2><Title>Un semplice esempio di file <Literal>ax25d.conf</Literal></Title>

<Para>
Ok, a questo punto si impone un esempio chiarificatore:
</Para>

<Para>
<Screen>
# ax25d.conf for VK2KTJ - 02/03/97
# Questo file di configurazione usa le porte definite precedentemente

# &lt;peer&gt; Win T1  T2  T3  idl N2 &lt;mode&gt; &lt;uid&gt; &lt;exec&gt; &lt;argv[0]&gt;[&lt;args....&gt;]

[VK2KTJ-0 via radio]
parameters 1    10  *  *  *   *   *
VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
NOCALL     *     *  *  *  *   *   L
default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

[VK2KTJ-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node

&lt;NET/ROM&gt;
parameters 1    10  *  *  *   *   *
NOCALL     *     *  *  *  *   *   L
default    *     *  *  *  *   *   0        root /usr/sbin/node node

{VK2KTJ-0 via rose}
parameters 1    10  *  *  *   *   *
VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
NOCALL     *     *  *  *  *   *   L
default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

{VK2KTJ-1 via rose}
default    *     *    *   *   *   0    root /usr/sbin/node node radio
</Screen>
</Para>

<Para>
Questo esempio dice che chiunque voglia connettersi alla stazione
'<Literal>VK2KTJ-0</Literal>' ascoltato sulla porta AX.25 chiamata '<Literal>radio</Literal>' dovrà
sottostare alle seguenti regole:
</Para>

<Para>
Chiunque abbia il nominativo col valore 'NOCALL' non viene fatto
entrare; si noti l'uso del modo 'L'.
</Para>

<Para>
La linea <Literal>parameters</Literal> modifica due parametri rispetto a quelli di
default del kernel (Window e T1) e verrà lanciato il programma
<Emphasis>/usr/sbin/axspawn</Emphasis> per loro. Ogni istanza di
<Emphasis>/usr/sbin/axspawn</Emphasis> lanciata in questo modo apparirà come
<Emphasis>axspawn</Emphasis> nell'output di un comando <Emphasis>ps</Emphasis>.
Le due linee successive danno le
regole per due stazioni che riceveranno questi permessi.
</Para>

<Para>
L'ultima linea nel paragrafo costituisce la regola  che sarà
applicata a tutti gli altri (compresi VK2XLZ e VK2DAY se usano un
SSID diverso da -1).
Questa definizione imposta implicitamente tutti i parametri e fa sì
che il programma <Emphasis>pms</Emphasis> sia lanciato con un argomento che indica
che funziona su una connessione AX.25, e che il nominativo
utilizzato per rispondere è
<Literal>VK2KTJ</Literal>. (Si veda il paragrafo 'Configurazione del PMS' per maggiori dettagli).
</Para>

<Para>
La configurazione successiva accetta connessioni a <Literal>VK2KTJ-1</Literal>
tramite la porta <Literal>radio</Literal> e lancia il programma
<Emphasis>node</Emphasis> per chiunque si connetta.
</Para>

<Para>
Poi c'è una configurazione NET/ROM (si noti l'uso delle parentesi
acute "< >"). Questa è più semplice: stabilisce che chiunque si
connetta alla porta dal nome '<Literal>NET/ROM</Literal>' farà partire il programma
<Emphasis>node</Emphasis>, a meno che non abbia nominativo '<Literal>NOCALL</Literal>', nel qual
caso viene disconnesso.
</Para>

<Para>
Le ultime due configurazioni sono per le connessioni Rose; la prima
per chi chiama '<Literal>vk2ktj-0</Literal>', l'altra per chi chiama
'<Literal>VK2KTJ-1</Literal> all'indirizzo di nodo Rose della macchina. Queste
funzionano esattamente allo stesso modo; si noti l'uso delle parentesi
graffe per caratterizzarle come porte Rose.
</Para>

<Para>
L'esempio sopra illustrato è piuttosto banale, ma penso che chiarisca
sufficientemente le caratteristiche significative della sintassi del
file di configurazione. Una descrizione approfondita di quest'ultima
si può trovare nelle pagine <Emphasis>man</Emphasis> di <Literal>ax25d.conf</Literal>.
Un esempio più dettagliato è incluso, invece, nelle Li<Literal>ax25-utils</Literal>.
</Para>

</Sect2>

<Sect2><Title>Lanciare <Emphasis>ax25d</Emphasis></Title>

<Para>
Una volta approntati i due file di configurazione, si può lanciare
<Emphasis>ax25d</Emphasis> col comando:
</Para>

<Para>
<Screen>
# /usr/sbin/ax25d
</Screen>
</Para>

<Para>
Una volta fatto questo, i corrispondenti dovrebbero essere in grado
di effettuare connessioni AX.25 alla vostra macchina Linux. Si
ricordi di mettere il comando <Literal>ax25d</Literal> nei propri file
<Emphasis>rc</Emphasis>, in modo che venga lanciato ogni volta che la macchina
viene fatta ripartire.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione del programma <Emphasis>node</Emphasis></Title>

<Para>
<Emphasis>node</Emphasis> è stato sviluppato da
<ULink URL="mailto:tomi.manninen@hut.fi">Tomi Manninen</ULink> e si basa sul programma PMS.
Rende disponibili le funzionalità di nodo in modo piuttosto completo e
flessibile, permettendo agli utenti, una volta connessi, di fare
connessioni in uscita di tipo Telnet, AX.25, NET/ROM e Rose, nonchè di
ottenere informazioni con Finger, Nodes, Heard eccetera. Si può inoltre
configurare il nodo in modo da far eseguire qualunque comando Linux
in modo piuttosto semplice.
</Para>

<Para>
Node viene normalmente lanciato dal programma <Emphasis>ax25d</Emphasis>, per
quanto possa essere eseguito anche da linea di comando oppure lanciato
dal programma TCP/IP <Emphasis>inetd</Emphasis> per permettere agli utenti di fare
telnet sulla vostra macchina.
</Para>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/node.conf</Literal></Title>

<Para>
Il file <Literal>node.conf</Literal> è dove viene scritta la configurazione
principale del nodo. &Egrave; un semplice file di testo ed è formattato nel
seguente modo:
</Para>

<Para>
<Screen>
# /etc/ax25/node.conf
# file di configurazione del programma node(8).
#
# Le linee che iniziano con '#' sono commenti e vengono ignorate.
# Hostname
# Specifica il nome della macchina che fa da nodo.
hostname	radio.gw.vk2ktj.ampr.org

# Rete Locale
# Permette di specificare cosa dev'essere considerato 'locale'
# per il controllo dei permessi usando nodes.perms.
localnet	44.136.8.96/29

# Occultamento di alcune porte
# Se viene specificato, questo parametro permette di rendere le porte
# invisibili agli utenti. Le porte qui elencate non saranno riportate
# dal comando (P)orts.
hiddenports	rose NET/ROM

# Identificazione del nodo.
# Questo apparirà al prompt del nodo.
NodeId		LINUX:VK2KTJ-9

# Porta NET/ROM
# Questo è il nome della porta NET/ROM che verrà usata per
# le connessioni NET/ROM in uscita dal nodo.
NrPort		NET/ROM

# Node Idle Timeout
# Specifica il tempo di idle in secondi per le connessioni fatte
# a questo nodo (cioè quanto possono rimanere inattive prima che la
# connessione venga interrotta.
idletimout	1800

# Connection Idle Timeout
# Specifica il tempo di idle in secondi per le connessioni fatte
# attraverso questo nodo.
conntimeout	1800

# Riconnessione
# Specifica se gli utenti debbano essere riconnessi al nodo
# se la loro connessione remota si interrompe, o se debbano essere
# definitivamente disconnessi.
reconnect	on

# Alias dei comandi
# Permette di rendere semplici dei comandi di nodo più articolati.
alias		CONV	"telnet vk1xwt.ampr.org 3600"
alias		BBS	"connect radio vk2xsb"

# Aliases dei comandi esterni
# Permette di eseguire dei comandi esterni all'interno del nodo.
# La sintassi è:
# extcmd &lt;nomecmd&gt; &lt;flag&gt; &lt;userid&gt; &lt;comando&gt;
# Flag == 1 è l'unica funzione implementata.
# &lt;comando&gt; è formattato sullo stile di ax25d.conf
extcmd		PMS	1	root	/usr/sbin/pms pms -u %U -o VK2KTJ

# Logging
# Stabilisce la quantità di informazioni che vengono scritte nel log.
# 3 per il maggior numero di informazioni, 0 per disabilitare il log.
loglevel	3

# Il carattere di escape
# 20 = (Control-T)
EscapeChar      20
</Screen>
</Para>

</Sect2>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/node.perms</Literal></Title>

<Para>
<Emphasis>node</Emphasis> consente di assegnare permessi agli utenti. Questi
permessi permettono di stabilire quali utenti, ad esempio, sono
autorizzati a far uso di opzioni come i comandi (T)elnet e (C)onnect.
Il file <Literal>node.perms</Literal> viene usato per stabilire questo genere
di permessi e contiene cinque campi chiave; in ognuno di questi un
asterisco '*' serve per indicare 'qualunque cosa' e viene usato per
creare le regole di default.
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>user</Term>
<ListItem>
<Para>
Il primo campo rappresenta il nominativo o l'utente al quale devono
applicarsi i permessi. Ogni ssid viene ignorato, quindi basta mettere
il nominativo semplice.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>method</Term>
<ListItem>
<Para>
Vengono concessi permessi anche ai protocolli o ai metodi di accesso.
Per esempio si può permettere l'uso dell'opzione (C)onnect agli
utenti connessi via AX.25 o NET/ROM, ma impedirlo agli altri. Il
secondo campo perciò, permette di selezionare a quale metodo di
accesso deve applicarsi la regola di accesso.
I metodi di accesso sono i seguenti:

<informaltable frame=all>
<tgroup cols=2>
<thead>
<row><entry>Metodo</entry><entry>Descrizione</entry></row>
</thead>
<tbody>

<row>
<entry>ampr</entry>
<entry>L'utente è connesso via telnet da un indirizzo amprnet (44.0.0.0)</entry>
</row>

<row>
<entry>ax25</entry>
<entry>L'utente è connesso tramite AX.25</entry>
</row>

<row>
<entry>host</entry>
<entry>L'utente ha lanciato node dalla linea di comando</entry>
</row>

<row>
<entry>inet</entry>
<entry>L'utente è connesso via telnet da un indirizzo non-locale e non-amprnet</entry>
</row>

<row>
<entry>local</entry>
<entry>L'utente è connesso via telnet da un host 'locale'</entry>
</row>

<row>
<entry>NET/ROM</entry>
<entry>L'utente è connesso tramite NET/ROM</entry>
</row>

<row>
<entry>rose</entry>
<entry>L'utente è connesso tramite ROSE</entry>
</row>

<row>
<entry>*</entry>
<entry>L'utente è connesso in un modo qualunque.</entry>
</row>

</tbody>
</tgroup>
</informaltable>

</Para>
</ListItem>
</VarListEntry>

<VarListEntry>
<Term>port</Term>
<ListItem>
<Para>
Volendo è possibile controllare i permessi per gli utenti AX.25 porta
per porta; questo permette di determinare cosa gli utenti sono in
grado di fare a seconda della porta alla quale sono connessi. Se si
sfrutta questa funzionalità (che funziona solo per le connessioni
AX.25), il terzo campo contiene il nome della porta.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>password</Term>
<ListItem>
<Para>
Si può opzionalmente configurare il nodo in modo che chieda una
password alla connessione. Questo può essere utile per proteggere
utenti con un livello di accesso particolarmente elevato; in questo
campo, se presente, è contenuto il valore della password che
dev'essere fornita.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>permissions</Term>
<ListItem>
<Para>
Il campo permessi è l'ultimo per ciascuna voce nel file. Il valore
che contiene è a campi di bit (ogni opzione è rappresentata da un bit
più o meno settato a seconda che venga più o meno concesso il
permesso per essa). La lista delle opzioni che possono essere
controllate, e del relativo valore in bit è il seguente:
</Para>

<Para>

<informaltable frame=all>
<tgroup cols=2>
<thead>
<row><entry>Valore</entry><entry>Descrizione</entry></row>
</thead>
<tbody>

<row>
<entry>1</entry>
<entry>Login consentito.</entry>
</row>

<row>
<entry>2</entry>
<entry>(C)onnect AX25 consentito.</entry>
</row>

<row>
<entry>4</entry>
<entry>(C)onnect NET/ROM consentito.</entry>
</row>

<row>
<entry>8</entry>
<entry>(T)elnet verso host locali consentiti.</entry>
</row>

<row>
<entry>16</entry>
<entry>(T)elnet verso host amprnet (44.0.0.0) consentiti.</entry>
</row>

<row>
<entry>32</entry>
<entry>(T)elnet verso host non-locali e non-amprnet consentiti.</entry>
</row>

<row>
<entry>64</entry>
<entry>(C)onnect AX25 consentito anche su porte occultate.</entry>
</row>

<row>
<entry>128</entry>
<entry>(C)onnect Rose consentito.</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

<Para>
Per stabilire una regola particolare, occorre sommare i valori dei
singoli permessi che si vuole dare e mettere il numero risultante nel
quinto campo.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Un esempio di file <Literal>nodes.perms</Literal> potrebbe essere il seguente:
</Para>

<Para>
<Screen>
# /etc/ax25/node.perms
#
#L'operatore del nodo è VK2KTJ, ha password 'secret' e ha tutti
#i permessi per tutti i tipi di connessione
vk2ktj	*	*	secret	255

# Ai seguenti nominativi è impedito connettersi
NOCALL	*	*	*	0
PK232	*	*	*	0
PMS	*	*	*	0

# Agli utenti INET è impedito connettersi.
*	inet	*	*	0

# Gli utenti AX.25, NET/ROM, Local, Host e AMPR possono fare (C)onnect
# e (T)elnet a host locali e ampr, ma non ad altri indirizzi IP.
*	ax25	*	*	159
*	NET/ROM	*	*	159
*	local	*	*	159
*	host	*	*	159
*	ampr	*	*	159
</Screen>

</Para>
</Sect2>

<Sect2><Title>Configurazione di <Emphasis>node</Emphasis> per funzionare da <Emphasis>ax25d</Emphasis></Title>

<Para>
Il programma <Emphasis>node</Emphasis> viene lanciato di solito dal programma
<Emphasis>ax25d</Emphasis>. Per fare questo occorre aggiungere delle particolari
regole al file <Literal>/etc/ax25/ax25d.conf</Literal>. Nella configurazione
che adotto, voglio permettere agli utenti di scegliere se connettersi
a <Emphasis>node</Emphasis> o ad altri servizi. <Emphasis>ax25d</Emphasis> consente di fare
questo attraverso l'intelligente creazione di alias delle porte. Ad
esempio, data la configurazione di <Emphasis>ax25d</Emphasis> presentata sopra,
si vuole configurare <Emphasis>node</Emphasis> in modo che venga lanciato per
tutti gli utenti che si connettono a <Literal>VK2KTJ-1</Literal> Per fare
questo si aggiunge questo al file <Literal>/etc/ax25/ax25d.conf</Literal>:
</Para>

<Para>
<Screen>
[vk2ktj-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node
</Screen>
</Para>

<Para>
Questo dice che il kernel di Linux risponderà ad ogni richiesta di
connessione al nominativo '<Literal>VK2KTJ-1</Literal>' ascoltato sulla porta chiamata
'<Literal>radio</Literal>' lanciando il programma <Emphasis>node</Emphasis>
</Para>

</Sect2>

<Sect2><Title>Configurazione di <Emphasis>node</Emphasis> per funzionare da <Emphasis>inetd</Emphasis></Title>

<Para>
Se si vuole che i propri utenti siano in grado di fare telnet su una
porta della macchina e avere accesso a <Emphasis>node</Emphasis> lo si può fare
piuttosto facilmente. La prima cosa da decidere e a quale porta gli
utenti si devono connettere In questo esempio si è arbitrariamente scelta la
porta 4000, sebbene Toi nella sua documentazione fornisca i passi per sostituire
il normale demone Telnet con <Emphasis>node</Emphasis>.
</Para>

<Para>
Occorre modificare due file.
</Para>

<Para>
In <Literal>/etc/services</Literal> occorre aggiungere:
</Para>

<Para>
<Screen>
node	3694/tcp	#OH2BNS's node software
</Screen>
</Para>

<Para>
E in <Literal>/etc/inetd.conf</Literal> va aggiunto:
</Para>

<Para>
<Screen>
node	stream	tcp	nowait	root	/usr/sbin/node node
</Screen>
</Para>

<Para>
Una volta fatto questo, facendo ripartire il programma
<Emphasis>inetd</Emphasis>, ogni utente connesso via telnet alla porta 3694 della
macchina riceverà la richiesta di login, l'eventuale richiesta di
password e sarà connesso a <Emphasis>node</Emphasis>.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione di <Emphasis>axspawn</Emphasis></Title>

<Para>
Il programma <Emphasis>axspawn</Emphasis> permette alle stazioni connesse via AX.25
di fare il login sulla macchina Linux. Può essere lanciato da <Emphasis>ax25d</Emphasis>
in modo simile a quanto visto per <Emphasis>node</Emphasis>. Per permettere ad un
utente l'accesso alla propria macchina occorre aggiungere una linea
simile alla seguente nel proprio file <Literal>/etc/ax25/ax25d.conf</Literal>:
</Para>

<Para>
<Screen>
default * * * * * 1 root /usr/sbin/axspawn axspawn %u
</Screen>
</Para>

<Para>
Se la linea finisce con un carattere <Literal>+</Literal>, l'utente che si connette
deve battere invio prima che gli venga concesso il login. Di default
la scelta è di non attendere input dall'utente.
Ogni singola configurazione host che segue queste righe lancia
<Emphasis>axspawn</Emphasis> alla connessione del corrispondente. Alla partenza,
<Emphasis>axspawn</Emphasis> controlla che la linea di comando che gli viene passata
corrisponda ad un nominativo valido, toglie lo ssid e infine
controlla il file <Literal>/etc/passwd</Literal> per vedere se quell'utente ha
un account configurato sulla macchina. Se esiste e la password è
<Literal>""</Literal> (null) o <Literal>+</Literal>, l'utente è subito fatto entrare; se esiste
una password da fornire, viene invitato a digitarla. Se non esiste
un'account corrispondente all'utente in <Literal>/etc/passwd</Literal>, si può
configurare <Emphasis>axspawn</Emphasis> affinché ne crei automaticamente uno.
</Para>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/axspawn.conf</Literal></Title>

<Para>
&Egrave; possibile modificare il comportamento di <Emphasis>axspawn</Emphasis> agendo sul
file di configurazione <Literal>/etc/ax25/axspawn.conf</Literal> che è
formattato nel seguente modo:
</Para>

<Para>
<Screen>
# /etc/ax25/axspawn.conf
#
# permette la creazione automatica di account utente
create    yes
#
# accesso come utente guest (ospite) se sopra si è scelto "no" o se tutto
# fallisce. Disabilita con "no"
guest     no
#
# nome del gruppo o group id degli utenti creati automaticamente
group     ax25
#
# primo user id da usare
first_uid 2001
#
# massimo numero di user id 
max_uid   3000
#
# dove creare la home directory dei nuovi utenti
home      /home/ax25
#
# shell dell'utente
shell     /bin/bash
#
# lega lo user id al nominativo per le chiamate in uscita
associate yes
</Screen>

</Para>

<Para>
Gli otto parametri di configurazione di <Emphasis>axspawn</Emphasis> hanno il
seguente significato:
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>&num;</Term>
<ListItem>
<Para>
indica una riga di commento
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>create</Term>
<ListItem>
<Para>
se questo campo è settato a <Literal>yes</Literal>,
<Emphasis>axspawn</Emphasis> tenterà di creare automaticamente un account per
ogni utente che si connetta e non sia già presente nel file
<Literal>/etc/passwd</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>guest</Term>
<ListItem>
<Para>
questo campo indica il nome dell'account che sarà
usato per gli utenti che non hanno un account se <Emphasis>create</Emphasis> è
settato a <Literal>no</Literal> e che di solito è <Literal>ax25</Literal> o
<Literal>guest</Literal>.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>group</Term>
<ListItem>
<Para>
questo campo indica il nome del gruppo per gli
account degli utenti che sono creati automaticamente se non sono
presenti nel file <Literal>/etc/passwd</Literal>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>first_uid</Term>
<ListItem>
<Para>
è il numero del primo userid che sarà
utilizzato per la creazione automatica degli utenti.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>max_uid</Term>
<ListItem>
<Para>
è il valore massimo dell'userid che verrà
usato nella creazione di nuovi utenti.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>home</Term>
<ListItem>
<Para>
è la home directory dei nuovi utenti.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>shell</Term>
<ListItem>
<Para>
è la shell di login usata dai nuovi utenti.</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>associate</Term>
<ListItem>
<Para>
indica se le connessioni AX.25 in uscita fatte
dagli utenti collegati devono essere fatte usando il loro nominativo
o quello della macchina.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione di <Emphasis>pms</Emphasis></Title>

<Para>
Il programma <Emphasis>pms</Emphasis> è l'implementazione di un semplice
programma di messaggistica. Sviluppato in origine da Alan Cox, è
stato successivamente ampliato da <ULink URL="mailto:dcb@vectorbd.com">Dave Brown</ULink>, N2RJT.
Allo stadio attuale &egrave;  ancora piuttosto
semplice, visto che supporta solo l'invio di messaggi al gestore
del sistema e la possibilit&agrave; di ricavare alcune informazioni su di esso, ma Dave &egrave; 
al lavoro per espandere le sue funzionalit&agrave; e renderlo pi&ugrave; utilizzabile.
</Para>

<Para>
Una volta che il programma &egrave; stato compilato ed installato occorre
creare un paio di semplici file per far s&igrave; che gli utenti abbiano
alcune informazioni sul sistema e modificare le voci opportune nel
file <Literal>ax25d.conf</Literal>, in modo che, alla connessione, agli utenti si
presenti l'interfaccia del PMS.
</Para>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/pms.motd</Literal></Title>

<Para>
Il file <Literal>/etc/ax25/pms.motd</Literal> contiene il 'messaggio del
giorno' che verrà inviato a chi si connette dopo lo header usuale del
BBS. Si tratta di un file di testo; qualunque cosa vi inseriate sarà presentata all'utente
all'atto della connessione.
</Para>

</Sect2>

<Sect2><Title>Creazione del file <Literal>/etc/ax25/pms.info</Literal></Title>

<Para>
Anche <Literal>/etc/ax25/pms.info</Literal> è un semplice file di testo, nel
quale si possono mettere informazioni più dettagliate sulla
configurazione della propria stazione, che viene inviato all'utente
in risposta al comando <Literal>Info</Literal> dal prompt <Literal>PMS&gt;</Literal>.
</Para>

</Sect2>

<Sect2><Title>Associazione di nominativi AX.25 con gli utenti di sistema</Title>

<Para>
Quando un utente connesso manda posta ad un nominativo AX.25,
<Emphasis>pms</Emphasis> si aspetta che questo sia mappato o associato con un
reale utente creato sulla vostra macchina. Questo è descritto in una
sezione a parte.
</Para>
</Sect2>

<Sect2><Title>Aggiunta di PMS in <Literal>/etc/ax25/ax25d.conf</Literal></Title>

<Para>
L'aggiunta di <Emphasis>pms</Emphasis> al proprio file <Literal>ax25d.conf</Literal> è
un'operazione molto semplice, tuttavia c'è una piccola cosa da tenere
in considerazione. Dave ha aggiunto degli argomenti alla linea di comando di <Emphasis>pms</Emphasis> per permettergli
di gestire diverse regole di testo di fine linea. AX.25 e
NET/ROM, per convenzione, si aspettano che la fine della linea di
testo sia indicata dal comando di ritorno a capo e dall'avanzamento
di linea (<Emphasis>carriage return, linefeed</Emphasis>), mentre nei sistemi
Unix standard si usa solo il comando di nuova linea
(<Emphasis>newline</Emphasis>). Quindi per esempio, se si vuole aggiungere una
voce per indicare il lancio del programma pms come azione di default
per ogni connessione, si aggiunge una linea di questo tipo:
</Para>

<Para>
<Screen>
default  1  10 5 100 5   0    root  /usr/sbin/pms pms -a -o vk2ktj
</Screen>
</Para>

<Para>
Questo lancia il programma <Emphasis>pms</Emphasis>, indicandogli che deve gestire
una connessione AX.25 e che il gestore del bbs è <Literal>vk2ktj</Literal>. Si
vedano le relative pagine <Emphasis>man</Emphasis> per vedere come indicare al programma
altri tipi di connessione.
</Para>

</Sect2>

<Sect2><Title>Test del PMS</Title>

<Para>
Per testare il PMS, si può dare il seguente comando dal prompt della
shell:
# /usr/sbin/pms -u vk2ktj -o vk2ktj
Sostituire il proprio nominativo con quello dell'autore, in modo che
il comando lanci il pms indicandogli che deve usare la convenzione
Unix per il comando di fine linea e che l'utente che si connette è
<Literal>vk2ktj</Literal>. In questo modo ci si trova nella stessa situazione
di un utente remoto che si connette.
</Para>

<Para>
In aggiunta a questo si può provare a far connettere altri nodi alla
propria macchina in modo da controllare che le impostazioni in
<Literal>ax25d.conf</Literal> siano corrette.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Configurazione dei programmi <Emphasis>user_call</Emphasis></Title>

<Para>
I programmi '<Emphasis>user_call</Emphasis>' sono in realtà:
<Emphasis>ax25_call</Emphasis> e <Emphasis>NET/ROM_call</Emphasis>.
Sono molto semplici e concepiti per
essere chiamati da <Emphasis>ax25d</Emphasis> per automatizzare le connessioni a host
remoti, anche se nulla vieta di usarli in script della shell o con
altri demoni come il programma <Emphasis>node</Emphasis>.
</Para>

<Para>
Possono essere considerati simili a un semplice programma <Emphasis>call</Emphasis>.
A causa della loro semplicità, non trattano in alcun modo i dati che
gestiscono, quindi ad esempio il problema del fine-linea deve
essere gestito dall'utente.
</Para>

<Para>
Iniziamo con un esempio su come si possano impiegare. Immaginiamo di
avere una piccola rete a casa composta da una macchina Linux che
funziona come gateway radio  e da un'altra macchina, diciamo un nodo
BPQ connesso via ethernet.
</Para>

<Para>
Normalmente, se si vuole che gli utenti che si connettono via radio
possano raggiungere il nodo BPQ, occorre che la prima macchina funga
da digipeater, oppure che gli utenti possano connettersi al nodo
Linux e poi connettersi all'altra macchina da lì.
Il programma <Emphasis>ax25_call</Emphasis> può semplificare quest'operazione
se viene chiamato dal programma <Emphasis>ax25_call</Emphasis>.
</Para>

<Para>
Supponiamo che il nodo BPQ abbia il nominativo <Literal>VK2KTJ-9</Literal> e che la
macchina Linux abbia la porta AX.25/ethernet chiamata '<Literal>bpq</Literal>';
immaginiamo anche che questa abbia una porta radio chiamata
'<Literal>radio</Literal>'.
</Para>

<Para>
Una voce nel file <Literal>/etc/ax25/ax25d.conf</Literal> del tipo:
</Para>

<Para>
<Screen>
[VK2KTJ-1 via radio]
default    * * * *   *   *  *
		root /usr/sbin/ax25_call ax25_call bpq %u vk2ktj-9
</Screen>
</Para>

<Para>
abilita gli utenti alla connessione diretta a '<Literal>VK2KTJ-1</Literal>' che
sarebbe in realtà il demone <Emphasis>ax25d</Emphasis>, che li connette
automaticamente a '<Literal>VK2KTJ-9</Literal>' attraverso l'interfaccia
'<Literal>bpq</Literal>' con una connessione AX.25
</Para>

<Para>
C'è tutta una serie di altre possibili configurazioni che si possono
provare. Le utilit&agrave; '<Emphasis>NET/ROM_call</Emphasis>' e
'<Emphasis>rose_call</Emphasis>' funzionano in modo simile. Un radioamatore ha usato
questa utilit&agrave; per rendere più semplici le connessioni ad una BBS
remota. Poich&eacute; normalmente gli utenti dovrebbero inserire una lunga
stringa di connessione per fare la chiamata, ha creato una voce che fa
apparire la BBS come se si fosse in una rete locale e dove
<Emphasis>ax25d</Emphasis> fa da proxy per la connessione alla macchina remota.
</Para>

</Sect1>

<Sect1><Title>Configurazione dei comandi di uplink e downlink di ROSE</Title>

<Para>
Se l'implementazione ROM di ROSE è familiare, non sarà difficile
orientarsi tra i metodi coi quali gli utenti AX.25 effettuano
chiamate su una rete ROSE. Se un nodo ROSE ha il nominativo
<Literal>VK2KTJ-5</Literal> e l'utente AX.25 vuole connettersi a <Literal>VK5XXX</Literal> al
nodo ROSE <Literal>5050882960</Literal>, deve dare il comando:
</Para>

<Para>
<Screen>
c vk5xxx v vk2ktj-5 5050 882960
</Screen>
</Para>

<Para>
Sul nodo remoto, <Literal>VK5XXX</Literal> vedrà una connessione in entrata dal
nominativo locale dell'utente AX.25 propagata dal nominativo del nodo
ROSE remoto.
</Para>

<Para>
L'implementazione ROSE di Linux non supporta questa funzionalità nel
kernel, tuttavia vi sono due programmi che svolgono questa funzione,
che sono <Emphasis>rsuplnk</Emphasis> e <Emphasis>rsdwnlnk</Emphasis> .
</Para>

<Sect2><Title>Configurazione del downlink ROSE</Title>

<Para>
Per configurare la propria macchina Linux perch&eacute; accetti connessioni
ROSE e stabilisca collegamenti AX.25 per nominativi diversi da quelli
locali occorre aggiungere una voce nel proprio file.
<Literal>/etc/ax25/ax25d.conf</Literal>. Di solito si configura questa voce come
scelta di default per ogni connessione ROSE entrante. Ad esempio si
può decidere di gestire localmente chiamate Rose a destinazioni come
<Literal>NODE-0</Literal> o <Literal>NODE-1</Literal>, e di passare le altre chiamate
al comando <Emphasis>rsdwnlink</Emphasis>, assumendo che siano utenti AX.25.
</Para>

<Para>
Una tipica configurazione può dunque essere:
</Para>

<Para>
<Screen>
#
{* via rose}
NOCALL   * * * * * *  L
default  * * * * * *  - root  /usr/sbin/rsdwnlnk rsdwnlnk 4800 vk2ktj-5
#
</Screen>
</Para>

<Para>
Con questa configurazione, ogni utente che stabilisce una connessione ROSE con
l'indirizzo del vostro nodo Linux e con un nominativo di destinazione che non avete
esplicitamente specificato, sarà convertita in una connessione AX.25 dalla porta
<Literal>4800</Literal> usando come digipeater <Literal>VK2KTJ-5</Literal>.
</Para>

</Sect2>

<Sect2><Title>Configurazione di un uplink ROSE</Title>

<Para>
Per configurare la propria macchina Linux affinch&eacute; accetti le
connessioni AX.25 allo stesso modo di un nodo ROM Rose occorre
aggiungere le voci opportune nel proprio file
<Literal>/etc/ax25/ax25d.conf</Literal> che assume un aspetto simile a questo:
</Para>

<Para>
<Screen>
#
[VK2KTJ-5* via 4800]
NOCALL   * * * * * *  L
default  * * * * * *  - root  /usr/sbin/rsuplnk rsuplnk rose
#
</Screen>
</Para>

<Para>
Si noti la speciale sintassi per il nominativo locale. il carattere
'<Literal>*</Literal>' indica che l'applicazione dovrebbe essere invocata se il
nominativo è presente nel percorso digipeater di una connessione.
</Para>

<Para>
Questa configurazione permette ad un utente AX.25 di effettuare
connessioni Rose usando l'esempio presentato nell'introduzione. Ogni
connessione che tenti di usare <Literal>VK2KTJ-5</Literal> come digipeater sulla
porta AX.25 chiamata <Literal>4800</Literal> sarà gestita dal comando <Emphasis>rsuplnk</Emphasis>
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Associare nominativi AX.25 con utenti Linux</Title>

<Para>
Ci sono diverse situazioni in cui è particolarmente opportuno associare un
nominativo con un account utente di Linux, ad esempio quando diversi
radioamatori condividono la stessa macchina Linux e vogliono usare il
proprio nominativo per effettuare chiamate, oppure quando utenti del
PMS vogliono fare un talk con un particolare utente della macchina.
</Para>

<Para>
Il software AX.25 permette di gestire l'associazione tra utenti e
nominativi (se n'è già parlato nella sezione dedicata al PMS).
</Para>

<Para>
Questa associazione viene fatta tramite il comando <Emphasis>axparms</Emphasis>. Ad
esempio:
</Para>

<Para>
<Screen>
# axparms -assoc vk2ktj terry
</Screen>
</Para>

<Para>
associa il nominativo AX.25 <Literal>vk2ktj</Literal> con l'utente
<Literal>terry</Literal> della macchina Linux. In questo modo la posta di
<Literal>vk2ktj</Literal> del PMS sarà inviata all'account Linux
<Literal>terry</Literal>.
</Para>

<Para>
Si rammenti di mettere queste associazioni nel proprio file
<Emphasis>rc</Emphasis>, in modo che siano disponibili ad ogni reboot.
</Para>

<Para>
<Emphasis>Nota</Emphasis> non bisogna associare un nominativo con l'accont di
<Literal>root</Literal>, in quanto ciò potrebbe interferire con la configurazione
di altri programmi.
</Para>

</Sect1>

<Sect1><Title>Configurazione dell'APRS</Title>

<!-- TODO:
     Write this section (assuming it is within the scope of this HOWTO).
-->

<Note>
<Para>
Questa sezione dev'essere ancora scritta. Dovrebbe trattare aprsd, aprsdigi,
aprsmon, xastir, JavAPRS, ecc.
</Para>
</Note>

</Sect1>

<Sect1><Title>Le voci del file sistem <Literal>/proc/</Literal></Title>

<Para>
La directory <Literal>/proc</Literal> presenta diversi file che sono in
relazione con il kernel AX.25 e NET/ROM. Questi sono di solito
utilizzati dalle utilit&agrave; AX25, ma essendo scritti in forma leggibile,
può essere interessante dar loro un'occhiata. Il formato che viene
usato è facilmente comprensibile, quindi non è neccessario andare
molto in dettaglio per comprenderne il significato.
</Para>

<Para>
<VariableList>

<VarListEntry>
<Term>/proc/net/arp</Term>
<ListItem>
<Para>
contiene l'elenco delle mappature Address Resolution Protocol
tra gli indirizzi IP e gli indirizzi dello strato MAC. Possono essere AX.25,
ethernet o altri protocolli di questo strato.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/ax25</Term>
<ListItem>
<Para>
contiene una lista dei socket AX.25 aperti. Questi possono essere in attesa di una
connessione, oppure connessioni attive.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/ax25_bpqether</Term>
<ListItem>
<Para>
contiene le corrispondenze dei nominativi AX.25 con quelli BPQ
ethernet.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/ax25_calls</Term>
<ListItem>
<Para>
contiene l'elenco delle  corrispondenze degli utenti linux con i nominativi; elenco
che è stato creato col comando <Emphasis>axparms -assoc</Emphasis>
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/ax25_route</Term>
<ListItem>
<Para>
contiene informazioni per i
percorsi AX.25 da effettuare tramite digipeater.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/nr</Term>
<ListItem>
<Para>
contiene una lista di socket NET/ROM aperti.
Questi possono essere in attesa di una connessione, oppure
collegamenti attivi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/nr_neigh</Term>
<ListItem>
<Para>
contiene informazioni riguardo i
nodi NET/ROM vicini (NET/ROM neighbours) conosciuti dal programma.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/nr_nodes</Term>
<ListItem>
<Para>
contiene informazioni riguardo i
nodi NET/ROM conosciuti dal programma.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/rose</Term>
<ListItem>
<Para>
contiene una lista di socket Rose aperti.
Questi possono essere in attesa di una connessione, oppure
collegamenti attivi.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/rose_nodes</Term>
<ListItem>
<Para>
contiene informazioni riguardo
percorsi ai nodi Rose vicini (Rose Neighbours).
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/rose_neigh</Term>
<ListItem>
<Para>
contiene una lista di nodi Rose
vicini (Rose Neighbours).
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>/proc/net/rose_routes</Term>
<ListItem>
<Para>
contiene una lista di tutte le
connessioni Rose attive.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

</Sect1>

<Sect1><Title>Programmazione di rete per AX.25, NET/ROM e Rose</Title>

<Para>
Il vantaggio più grande nell'usare un'implementazione dei protocolli
packet per radioamatori è probabilmente la facilità con cui si
possono sviluppare applicazioni e programmi che li sfruttino.
</Para>

<Para>
Sebbene la programmazione di applicativi di rete in Unix vada al di
là degli scopi di questo documento, si descriveranno gli elementi
essenziali per utilizzare i protocolli AX.25, NET/ROM e Rose
all'interno dei vostri programmi.
</Para>

<Sect2><Title>Le famiglie degli indirizzi</Title>

<Para>
La programmazione di rete per AX.25, NET/ROM e Rose è, in Linux,
piuttosto simile a quella per TCP/IP, visto che la differenza
maggiore sta nelle diverse famiglie di indirizzi e nella loro diversa struttura.
</Para>

<Para>
I nomi delle famiglie degli indirizzi per AX.25, NET/ROM e Rose sono
rispettivamente <Literal>AF_AX25</Literal>,
<Literal>AF_NET/ROM</Literal> e <Literal>AF_ROSE</Literal>.
</Para>

</Sect2>

<Sect2><Title>I file header</Title>

<Para>
Occorre sempre includere i file header '<Literal>netax25/ax25.h</Literal>', nonchè
'<Literal>NET/ROM/NET/ROM.h</Literal>' o '<Literal>netrose/rose.h</Literal>'
se avete a che fare con questi
protocolli. La struttura di base sarà simile alla seguente:
</Para>

<Para>
Per AX.25:
</Para>

<Para>
<Screen>
#include &lt;netax25/ax25.h&gt;
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX25
</Screen>
</Para>

<Para>
Per NET/ROM:
</Para>

<Para>
<Screen>
#include &lt;netax25/ax25.h&gt;
#include &lt;NET/ROM/NET/ROM.h&gt;
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NET/ROM;
</Screen>
</Para>

<Para>
Per ROSE:
</Para>

<Para>
<Screen>
#include &lt;netax25/ax25.h&gt;
#include &lt;netrose/rose.h&gt;
int s, addrlen = sizeof(struct sockaddr_rose);
struct sockaddr_rose sockaddr;
sockaddr.srose_family = AF_ROSE;
</Screen>
</Para>

</Sect2>

<Sect2><Title>Trattamento dei nominativi ed esempi</Title>

<Para>
Nella libreria <Literal>lib/ax25.a</Literal> delle AX.25-utilities vi sono
routine che effettuano la conversione e il trattamento dei
nominativi, anche se naturalmente potete scriverne di vostre.
</Para>

<Para>
Le utilit&agrave; <Emphasis>user_call</Emphasis> sono eccellenti esempi su cui
impostare il vostro lavoro; spendendoci su un po' di tempo si
comprende come il novanta percento del lavoro consiste nel riuscire
ad aprire il socket. Per la verità effettuare la connessione è
semplice, è la preparazione che richiede tempo.
</Para>

<Para>
Gli esempi sono semplici a sufficienza da non creare confusione. In
caso di dubbi è buona cosa rivolgersi alla mailing list
<Literal>linux-hams</Literal>, dove senz'altro ci sarà qualcuno che vi darà una
mano.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Alcuni esempi di configurazione</Title>

<Para>
Vengono ora presentati esempi delle configurazioni più tipiche.
Devono essere prese come spunto, visto che ci sono tanti modi di
configurare reti, quanto il numero di reti stesso, ma possono
comunque essere d'ispirazione.
</Para>

<Sect2><Title>Piccola LAN Ethernet con macchina Linux che fa da router verso una LAN radio</Title>

<Para>
Molti hanno delle piccole reti locali a casa e vogliono connettere le
macchine ivi presenti alla rete radio. Questo è il tipo di
configurazione che uso a casa. Ho fatto in modo di avere un blocco di
indirizzi a me allocato che per comodità posso catturare in una
singola route e che uso per la mia LAN domestica. Il vostro
coordinatore IP locale vi assisterà se volete
farlo anche voi. Gli indirizzi per la rete locale Ethernet formano un
sottoinsieme degli indirizzi della LAN radio; quella che segue è la
configurazione che adotto:
</Para>

<Para>
<Screen>
                                         . . . . . .
  ___               _________         .
   | Rete          /         \     .    Rete
   | 44.136.8.96/29|         |    .     44.136.8/24        \ | /
   |               | Router  |   .                          \|/
   |               |         |  .   _____      __________    |
   |          eth0 | Linux   |  .  /     \    /          \   |
   |_______________|         |_____| TNC |____|  Radio   |__/
   |   44.136.8.97 |   e     |  .  \_____/    \__________/
   |               |         | sl0
   |               | Server  | 44.136.8.5
   |               |         |   .
   |               |         |     .
   |               \_________/        .
  _|_                                    . . . . . .
</Screen>
</Para>

<Para>
<Screen>
#!/bin/sh
# /etc/rc.net
# Questa configurazione rende disponibile una porta KISS AX.25
# e un dispositivo Ethernet.

echo "/etc/rc.net"
echo "  Sto configurando:"

echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " fatto."

echo -n "    ethernet:"
/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
		broadcast 44.136.8.103 up
/sbin/route add 44.136.8.97 eth0
/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
echo " fatto."

echo -n "    AX.25: "
kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
route add -host 44.136.8.5 sl0
route add -net 44.136.8.0 window 1024 sl0

echo -n "    NET/ROM: "
nrattach -i 44.136.8.5 NET/ROM

echo "  Routing:"
/sbin/route add default gw 44.136.8.68 window 1024 sl0
echo "    default route."
echo done.

# end
</Screen>
</Para>

<Para>
<Literal>/etc/ax25/axports</Literal>

<Screen>
# nome  nominativo     velocità paclen  window  descrizione
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</Screen>
</Para>

<Para>
<Literal>/etc/ax25/nrports</Literal>

<Screen>
# nome  nominativo      alias   paclen  descrizione
NET/ROM  VK2KTJ-9        LINUX   235     Linux Switch Port
</Screen>
</Para>

<Para>
<Literal>/etc/ax25/nrbroadcast</Literal>

<Screen>
# nome_ax25     min_obs def_qual        worst_qual      verbose
4800            1       120             10              1
</Screen>

</Para>

<Para>

<ItemizedList>
<ListItem>

<Para>
Occorre che IP_FORWARDING sia abilitato nel vostro kernel.
</Para>
</ListItem>
<ListItem>

<Para>
Quando necessario fare riferimento ai file di configurazione
AX.25 presentati nelle sezioni precedenti.
</Para>
</ListItem>
<ListItem>

<Para>
Ho scelto di usare un indirizzo IP per la mia porta radio che
non fa parte del blocco usato per la mia rete. Ciò non è
obbligatorio, per quella porta si sarebbe potuto tranquillamente
usare anche <Literal>44.136.8.97</Literal>.
</Para>
</ListItem>
<ListItem>

<Para>
<Literal>44.136.8.68</Literal> è il mio gateway locale dove il traffico IPIP viene incapsulato,
e per questo vi punto la mia route di default.
</Para>
</ListItem>
<ListItem>

<Para>
Ogni macchina sulla mia rete Ethernet ha una route:
</Para>

<Para>
<Screen>
route add -net 44.0.0.0 netmask 255.0.0.0 \
	gw 44.136.8.97 window 512 mss 512 eth0
</Screen>
</Para>

<Para>
L'uso dei parametri <Emphasis>mss</Emphasis> e <Emphasis>window</Emphasis> permette di
ottimizzare le connessioni sia dal lato radio che da quello Ethernet.
</Para>
</ListItem>
<ListItem>

<Para>
Sulla macchina router vengono fatti girare smail, http, ftp ed
altri demoni, in modo che questa sia l'unica macchina che fornisce servizi ad altri.
</Para>
</ListItem>
<ListItem>

<Para>
La macchina che funge da router è un piccolo 386DX20 con un
disco fisso da 20Mb ed una installazione di Linux minimale.
</Para>
</ListItem>

</ItemizedList>

</Para>

</Sect2>

<Sect2><Title>Configurazione del gateway di incapsulamento IPIP</Title>

<!-- TODO:
     Update this section to reflect latest kernel and iproute2 package
     (see warning below).
-->

<Warning>
<Para>
Alcune informazioni sul routing qui fornite, sono obsolete. Il setup è cambiato
dai tempi del kernel 2.0.x, e ora andrebbe utilizzato il comando "ip" presente
nel pacchetto iproute2, come descritto nell'Advanced Routing
HOWTO.
</Para>
</Warning>

<Para>
Linux oggi è utilizzato spessissimo per i gateway di incapsulamento
TCP/IP in tutto il mondo. Il driver per il tunneling supporta route
di incapsulamento multiple rendendo obsoleto il vecchio demone
<Emphasis>ipip</Emphasis>.
</Para>

<Para>
Una configurazione tipica &egrave; simile alla seguente:
</Para>

<Para>
<Screen>
                                         . . . . . .
  ___               _________        .
   | Rete          /         \     .    Rete
   | 154.27.3/24   |         |    .     44.136.16/24       \ | /
   |               | Gateway |   .                          \|/
   |               |         |  .   _____      __________    |
   |          eth0 | Linux   |  .  /     \    /          \   |
___|_______________|         |_____| TNC |____|  Radio   |___/
   |   154.27.3.20 | IPIP    |  .  \_____/    \__________/
   |               |         | sl0
   |               |         | 44.136.16.1
   |               |         |    .
   |               |         |     .
   |               \_________/       .
  _|_                                    . . . . . .
</Screen>
</Para>

<Para>
I file di configurazione che si usano sono:
</Para>

<Para>
<Screen>
# /etc/rc.net
# Questa è una semplice configurazione che rende disponibile una
# porta radio KISS AX.25, un dispositivo Ethernet e sfrutta il tunnel
# driver del kernel per effettuare l'incapsulamento/deincapsulamento
# IPIP
#
echo "/etc/rc.net"
echo "  Sto configurando:"
#
echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " fatto."
#
echo -n "    ethernet:"
/sbin/ifconfig eth0 154.27.3.20 netmask 255.255.255.0 \
		broadcast 154.27.3.255 up
/sbin/route add 154.27.3.20 eth0
/sbin/route add -net 154.27.3.0 netmask 255.255.255.0 eth0
echo " fatto."
#
echo -n "    AX.25: "
kissattach -i 44.136.16.1 -m 512 /dev/ttyS1 4800
/sbin/ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.16.255
/sbin/route add -host 44.136.16.1 sl0
/sbin/route add -net 44.136.16.0 netmask 255.255.255.0 window 1024 sl0
#
echo -n "    tunnel:"
/sbin/ifconfig tunl0 44.136.16.1 mtu 512 up
#
echo fatto.
#
echo -n "Routing ... "
source /etc/ipip.routes
echo fatto.
#
# end.
</Screen>
</Para>

<Para>
e:
</Para>

<Para>
<Screen>
# /etc/ipip.routes
# Questo file è generato dallo script munge
#
/sbin/route add -net 44.134.8.0 netmask 255.255.255.0 tunl0 gw 134.43.26.1
/sbin/route add -net 44.34.9.0 netmask 255.255.255.0 tunl0 gw 174.84.6.17
/sbin/route add -net 44.13.28.0 netmask 255.255.255.0 tunl0 gw 212.37.126.3
   ...
   ...
   ...
</Screen>
</Para>

<Para>
<Literal>/etc/ax25/axports</Literal>

<Screen>
# nome  nominativo     velocità paclen  window  descrizione
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</Screen>
</Para>

<Para>
Alcuni punti su cui soffermarsi:
</Para>

<Para>

<ItemizedList>
<ListItem>

<Para>
Il nuovo driver per il tunnelling usa il campo <Emphasis>gw</Emphasis> nella tabella
di routing al posto del parametro <Emphasis>pointopoint</Emphasis> per
specificare l'indirizzo del gateway IPIP remoto. Questo è il motivo
per cui ora sono supportate route multiple per ciascuna interfaccia.
</Para>
</ListItem>
<ListItem>

<Para>
Si <Emphasis>possono</Emphasis> configurare due dispositivi di rete con lo
stesso indirizzo. In quest'esempio sia <Literal>sl0</Literal> che
<Literal>tunl0</Literal> sono stati configurati con l'indirizzo IP della porta
radio; in questo modo il gateway remoto vede l'indirizzo corretto nei
datagrammi incapsulati che il gateway locale gli invia.
</Para>
</ListItem>
<ListItem>

<Para>
I comandi di routing usati per generare le route incapsulate
possono essere generati da una versione modificata dello script
<Emphasis>munge</Emphasis> che viene riportato più sotto. I comandi di routing
vengono scritti in un file separato e letto usando il comando
<Emphasis>bash</Emphasis> <Literal>source /etc/ipip.routes</Literal> (supponendo di aver
chiamato <Literal>/etc/ipip.routes</Literal> il file in questione). Il file
deve essere nel formato delle route di NOS.
</Para>
</ListItem>
<ListItem>

<Para>
Si noti l'uso dell'argomento <Emphasis>window</Emphasis> nel comando
<Emphasis>route</Emphasis>. Impostando opportunamente questo parametro si
migliorano le prestazioni del collegamento radio.
</Para>
</ListItem>

</ItemizedList>

</Para>

<Para>
Il nuovo script tunnel-munge:</Para>

<Para>
<Screen>
#!/bin/sh
#
# Da: Ron Atkinson &lt;n8fow@hamgate.cc.wayne.edu&gt;
#
#  Questo script è basato sullo script 'munge' scritto da Bdale N3EUA
#  per il demone IPIP, modificato da Ron Atkinson N8FOW. Il suo scopo
#  è quello di convertire un file di gateway nel formato NOS di KA9Q
#  (chiamato di solito 'encap.txt') nel formato delle tabelle di
#  routing di Linux per il tunnel driver IP
#
#	Uso: File dei gateway su stdin, file nel formato Linux su stdout.
#             esempio:  tunnel-munge < encap.txt > ampr-routes
#
# NOTA: Prima di usare questo script assicurarsi di controllare ed
#       eventualmente cambiare i seguenti parametri:
#
#     1) Cambiare le sezioni 'Route locali e 'Altre route
#        dell'utente' con le route presenti nella vostra area
#        (rimuovete le mie!)
#     2) Sulla riga di fgrep assicurarsi di cambiare l'indirizzo IP
#        con il VOSTRO indirizzo di gateway internet. Se non si
#        effettua questa operazione si rischiano seri routing loop.
#     3) L'interfaccia ha nome di default 'tunl0'. Assicurarsi che
#        questa assunzione  sia corretta sul vostro sistema.


echo "#"
echo "# Tabella di routing con IP tunnelling generata da $LOGNAME il
`date`"
echo "# dallo script tunnel-munge v960307."
echo "#"
echo "# Route locali"
echo "route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
echo "#"
echo "# Altre route dell'utente"
echo "#"
echo "# route remote"


fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
awk '{
	split($3, s, "/")
	split(s[1], n,".")
	if	(n[1] == "")	n[1]="0"
	if	(n[2] == "")	n[2]="0"
	if	(n[3] == "")	n[3]="0"
	if	(n[4] == "")	n[4]="0"
	if	(s[2] == "1")	mask="128.0.0.0"
	else if	(s[2] == "2")	mask="192.0.0.0"
	else if	(s[2] == "3")	mask="224.0.0.0"
	else if	(s[2] == "4")	mask="240.0.0.0"
	else if	(s[2] == "5")	mask="248.0.0.0"
	else if	(s[2] == "6")	mask="252.0.0.0"
	else if	(s[2] == "7")	mask="254.0.0.0"
	else if	(s[2] == "8")	mask="255.0.0.0"
	else if	(s[2] == "9")	mask="255.128.0.0"
	else if	(s[2] == "10")	mask="255.192.0.0"
	else if	(s[2] == "11")	mask="255.224.0.0"
	else if	(s[2] == "12")	mask="255.240.0.0"
	else if	(s[2] == "13")	mask="255.248.0.0"
	else if	(s[2] == "14")	mask="255.252.0.0"
	else if	(s[2] == "15")	mask="255.254.0.0"
	else if	(s[2] == "16")	mask="255.255.0.0"
	else if	(s[2] == "17")	mask="255.255.128.0"
	else if	(s[2] == "18")	mask="255.255.192.0"
	else if	(s[2] == "19")	mask="255.255.224.0"
	else if	(s[2] == "20")	mask="255.255.240.0"
	else if	(s[2] == "21")	mask="255.255.248.0"
	else if	(s[2] == "22")	mask="255.255.252.0"
	else if	(s[2] == "23")	mask="255.255.254.0"
	else if	(s[2] == "24")	mask="255.255.255.0"
	else if	(s[2] == "25")	mask="255.255.255.128"
	else if	(s[2] == "26")	mask="255.255.255.192"
	else if	(s[2] == "27")	mask="255.255.255.224"
	else if	(s[2] == "28")	mask="255.255.255.240"
	else if	(s[2] == "29")	mask="255.255.255.248"
	else if	(s[2] == "30")	mask="255.255.255.252"
	else if	(s[2] == "31")	mask="255.255.255.254"
	else 			mask="255.255.255.255"

if (mask == "255.255.255.255")
	printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
		,n[1],n[2],n[3],n[4],$5
else
	printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
		,n[1],n[2],n[3],n[4],$5,mask
 }'

echo "#"
echo "# si utilizza mirrorshades.ucsd.edu come gateway di default per la parte rimanente di amprnet"
echo "route add -net 44.0.0.0 gw 128.54.16.18 netmask 255.0.0.0 dev tunl0"
echo "#"
echo "# the end"
</Screen>
</Para>

</Sect2>

<Sect2><Title>Configurazione del gateway di incapsulamento AXIP</Title>

<Para>
Molti gateway radioamatoriali per Internet incapsulano l'AX.25,
NET/ROM e Rose oltre che il tcp/ip. L'incapsulamento di frame AX.25 in
datagrammi IP viene descritta nell'RFC-1226 da Brian Kantor. Nel 1991
Mike Westerhof ha scritto un'implementazione del demone di
incapsulamento dell'AX.25 per Unix, che viene proposta per Linux
nelle ax25-utils in una versione leggermente migliorata.
</Para>

<Para>
Un gateway di incapsulamento AXIP prende i frame AX.25, ne ricava
l'indirizzo AX.25 di destinazione e in base a questo determina a
quale indirizzo IP inviarli, dopo averli incapsulati in datagrammi
tcp/ip, che vengono mandati all'indirizzo  di destinazione. Inoltre
permette anche il percorso inverso, accettando datagrammi tcp/ip che
contengono frame AX.25. Questi vengono estratti e trattati come se
fossero pervenuti direttamente da una porta AX.25. Per distinguere i
datagrammi che contengono frame AX.25, li si marca con un protocol id
uguale a 4 (o 94 anche se questo è ora sconsigliato), come descritto
dalla RFC-1226.
</Para>

<Para>

Il programma <Emphasis>ax25ipd</Emphasis> incluso nelle ax-25utils gestisce
un'interfaccia KISS sulla quale si possono far transitare pacchetti
AX.25 ed un'interfaccia tcp/ip. Viene configurato tramite il file di
configurazione <Literal>/etc/ax25/ax25ipd.conf</Literal>.
</Para>

<Sect3><Title>Opzioni di configurazione di AXIP</Title>

<Para>
Il programma <Emphasis>ax25ipd</Emphasis> possiede due modi principali di
funzionamento: il modo "digipeater" e il modo "tnc". Nel modo "tnc" il
demone viene considerato come un tnc KISS, gli si passano frame KISS
incapsulati in modo che li trasmetta, mentre nel modo "digipeater" si
comporta, appunto, come un digipeater AX.25. Tra queste due modalità vi
sono delle sottili differenze.
</Para>

<Para>
Nel file di configurazione si stabiliscono le "route" o le
corrispondenze tra i nominativi AX.25 e gli indirizzi IP degli host
ai quali si vogliono mandare i pacchetti AX.25. Ogni route possiede
delle opzioni che verranno spiegate più avanti.
</Para>

<Para>
Altre opzioni che vengono configurate sono:

<ItemizedList>
<ListItem>

<Para>
la tty che il demone <Emphasis>ax25ipd</Emphasis> apre e la sua velocità (di
solito è un'estremità di una pipe)
</Para>
</ListItem>
<ListItem>

<Para>
che nominativo usare in modo "digipeater"
</Para>
</ListItem>
<ListItem>

<Para>
l'intervallo di emissione e il testo trasmesso dal beacon.
</Para>
</ListItem>
<ListItem>

<Para>
se si vogliono incapsulare i frame AX.25 in datagrammi IP oppure
UDP/IP. Quasi tutti i gateway AXIP usano l'IP encapsulation, ma
alcuni sono dietro a firewall che non permettono il passaggio a
datagrammi col protocol id dell'AXIP, costringendoli ad usare UDP/IP.
Quale che sia la scelta, deve essere uguale a quella dell'host TCP/IP
dall'altra parte del collegamento.
</Para>
</ListItem>
</ItemizedList>
</Para>

</Sect3>

<Sect3><Title>Un tipico esempio di <Literal>/etc/ax25/ax25ipd.conf</Literal></Title>

<Para>
<Screen>
#
# file di configurazione ax25ipd per la stazione floyd.vk5xxx.ampr.org
#
# Selezione del tipo di trasporto. 'ip' permette la compatibilità
# con la maggior parte dei gateway
#
socket ip
#
# Indicazione del tipo di modalità ax25ipd (digi or tnc)
#
mode tnc
#
# Se si è scelta la modalità digi, occorre definire un nominativo.
# Se si è in modo tnc, il nominativo è attualmente opzionale, ma ciò
# può cambiare in futuro (2 nominativi se si usano due porte kiss)
#
#mycall vk5xxx-4
#mycall2 vk5xxx-5
#
# In modalità digi si può indicare un alias. (2 se si usano due porte kiss)
#
#myalias svwdns
#myalias2 svwdn2
#
# Si manda l'identificativo ogni 540 secondi ...
#
#beacon after 540
#btext ax25ip -- tncmode rob/vk5xxx -- Gateway sperimentale AXIP
#
# Porta seriale, o pipe connessa a kissattach in questo caso.
#
device /dev/ttyq0
#
# Velocità del dispositivo
#
speed 9600
#
# loglevel 0 - nessun output
# loglevel 1 - solo informazioni di configurazione
# loglevel 2 - principali eventi ed errori
# loglevel 3 - principali eventi ed errori, nonchè la traccia dei
#              frame AX.25
# loglevel 4 - tutti gli eventi
# log 0 per il momento, con syslog ancora non funziona ....
#
loglevel 2
#
# Se siamo in modalità digi, ci dev'essere un vero tnc,
# quindi uso param per settare i suoi parametri ....
#
#param 1 20
#
# Definizione degli indirizzi di broadcast. Ognuno degli indirizzi
# indicati sarà inoltrato ad ogni route indicate come in grado di effettuare il
# broadcast.
#
broadcast QST-0 NODES-0
#
# definizione delle route ax.25
# il formato è route (nominativo/carattere jolly) (ip dell'host di
# destinazione) Se il ssid è zero la regola si applica a tutti i ssid.
#
# route &lt;destcall&gt; &lt;destaddr&gt; [flags]
#
# I flag validi sono
#         b  - permette il transito dei broadcast attraverso questa
#              route
#         d  - indica che questa è la route di default
#
route vk2sut-0 44.136.8.68 b
route vk5xxx 44.136.188.221 b
route vk2abc 44.1.1.1
#
#
</Screen>
</Para>

</Sect3>

<Sect3><Title>Uso di <Emphasis>ax25ipd</Emphasis></Title>

<Para>
<VariableList>

<VarListEntry>
<Term>Occorre creare le voci opportune nel file <Literal>/etc/ax25/axports</Literal>:</Term>
<ListItem>
<Para>

<Screen>
# /etc/ax25/axports
#
axip	VK2KTJ-13	9600	256	porta AXIP
#
</Screen>

</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Va usato il comando <Emphasis>kissattach</Emphasis> per creare la porta da utilizzare:</Term>
<ListItem>
<Para>

<Screen>
/usr/sbin/kissattach /dev/ptyq0 axip 44.135.96.242
</Screen>

</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Si lancia il programma <Emphasis>ax25ipd</Emphasis>:</Term>
<ListItem>
<Para>

<Screen>
/usr/sbin/ax25ipd &amp;
</Screen>

</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Per testare il link AXIP link:</Term>
<ListItem>
<Para>

<Screen>
call axip vk5xxx
</Screen>

</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

</Sect3>

<Sect3><Title>Alcune note riguardo le route e i loro flag</Title>

<Para>
Col comando "<Literal>route</Literal>" si specifica dove si vuole che i
propri pacchetti AX.25 siano incapsulati e spediti.
Quando il demone <Emphasis>ax25ipd</Emphasis> riceve un
pacchetto dalla sua interfaccia, confronta il nominativo di
destinazione con tutti quelli presenti nella tabella di routing. Se
lo trova, il pacchetto AX.25 viene incapsulato in un datagramma IP e
poi trasmesso all'host avente l'indirizzo IP indicato.

</Para>

<Para>
Ci sono due flag che si possono aggiungere ad ogni comando di route
nel file <Literal>ax25ipd.conf</Literal>:
<VariableList>

<VarListEntry>
<Term>b</Term>
<ListItem>
<Para>
il traffico che ha come destinazione gli indirizzi
definiti dalla parola chiave "<Literal>broadcast</Literal>" devono essere trasmessi
attraverso questa route.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>d</Term>
<ListItem>
<Para>
ogni pacchetto il cui indirizzo non compare in alcuna
route deve essere trasmessa attraverso questa route.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</Para>

<Para>
Il flag di broadcast è molto utile, poich&eacute; permette di inviare
informazioni destinate a tutte le stazioni, a molte destinazioni
AXIP. Normalmente le route AXIP sono di tipo punto-punto ed incapaci
di gestire pacchetti di tipo 'broadcast'.
</Para>

</Sect3>

</Sect2>

<Sect2><Title>Collegare NOS e Linux con un dispositivo pipe</Title>

<Para>
Molti radioamatori utilizzano alcune versioni di NOS sotto Linux,
poich&eacute; hanno a disposizione tutte le funzionalità a cui sono
abituati; a molti di questi piacerebbe che il loro NOS potesse
colloquiare col kernel di Linux in modo di poter mettere a
disposizione le funzionalità del sistema operativo agli utenti che si
collegano via radio con NOS.
</Para>

<Para>
Brandon S. Allbery, KF8NH, ha fornito queste informazioni, che
consentono di interconnettere il NOS con Linux tramite il dispositivo
pipe.
</Para>

<Para>
Poich&eacute; sia Linux che NOS supportano il protocollo slip, si possono
connettere creando un link di questo tipo. &Egrave; possibile realizzare il
collegamento utilizzando due porte seriali della stessa macchina con un cavo
loopback tra loro, ma questa realizzazione risulterebbe lenta e costosa.
Linux, al contrario, fornisce una funzionalità tipica dei sistemi Unix
chiamata 'pipe'. I pipe sono degli 'pseudo-dispositivi' che vengono visti
dai programmi come normali dispositivi tty, ma che in realtà fungono da
collegamento verso un altro pipe. Per usarli il programma chiamante deve
attivare il pipe <Emphasis>master</Emphasis> e, successivamente, il
programma chiamato deve fare lo stesso col pipe <Emphasis>slave</Emphasis>.
Una volta aperte le due porte, i programmi possono comunicare tra loro
semplicemente scrivendo caratteri sul dispositivo pipe, esattamente come se
fossero normali terminali seriali.
</Para>

<Para>
Per usare questa funzionalità per connettere il kernel di Linux con
una copia di NOS od altri programmi, occorre per prima cosa scegliere
il pipe da usare. I pipe trovano nella directory <Literal>/dev</Literal>; le
parti master del pipe sono chiamate <Literal>ptyq[1-f]</Literal>, mentre quelle
slave sono <Literal>ttyq[1-f]</Literal>. Si ricordi che vanno sempre in coppia,
per cui se si sceglie <Literal>/dev/ptyqf</Literal> come parte master, occorre
scegliere <Literal>/dev/ttyqf</Literal> come parte slave.
</Para>

<Para>
Una volta scelta una coppia di dispositivi pipe da usare, la parte master
va allocata al kernel Linux, mentre la parte slave va assegnata a
NOS, poich&eacute; il kernel si attiva per primo e il master deve essere aperto prima dello slave;
occorre quindi allocare un indirizzo unico per NOS, se non si è
già provveduto a farlo.
</Para>

<Para>
I pipe si configurano come se fossero dispositivi seriali, per cui per
creare il collegamento slip dal kernel Linux, si possono usare i
seguenti comandi:
</Para>

<Para>

<Screen>
# /sbin/slattach -s 38400 -p slip /dev/ptyqf &#38;
# /sbin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.70.248.67 /
	mtu 1536 44.70.4.88
# /sbin/route add 44.70.248.67 sl0
# /sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.70.248.67
</Screen>

</Para>

<Para>
In questo esempio al kernel Linux è stato assegnato l'indirizzo IP
<Literal>44.70.4.88</Literal>, mentre NOS usa l'indirizzo
<Literal>44.70.248.67</Literal>.
Il comando <Emphasis>route</Emphasis> nell'ultima riga indica al kernel Linux di
instradare, attraverso il collegamento slip creato dal comando
<Emphasis>slattach</Emphasis>, tutti i datagrammi indirizzati verso amprnet.
Normalmente questi comandi vanno messi nel file
<Literal>/etc/rc.d/rc.inet2</Literal> immediatamente dopo tutti gli altri
comandi di configurazione della rete, in modo che il collegamento
slip sia creato alla partenza del sistema.
Nota: non c'è alcun vantaggio nell'uso del comando <Emphasis>cslip</Emphasis> al
posto di <Emphasis>slip</Emphasis>, anzi, con cslip si avverte un calo di
prestazioni poich&eacute;, essendo un collegamento virtuale, il tempo
impiegato per comprimere gli header è superiore di quello che viene
impiegato per trasmettere i datagrammi non compressi.
</Para>

<Para>
Per configurare la parte NOS dall'altra parte del collegamento si può
usare la seguente configurazione:
</Para>

<Para>

<Screen>
# si può chiamare l'interfaccia come si vuole, in questo caso la si è
# chiamata "linux" per comodità
attach asy ttyqf - slip linux 1024 1024 38400
route addprivate 44.70.4.88 linux
</Screen>

</Para>

<Para>
Questi comandi creano una porta slip chiamata 'linux' attraverso la
parte slave del pipe che lo collega al kernel di Linux, ed un comando
di route per farla funzionare. Una volta fatto partire NOS, si deve
essere in grado di eseguire ping e telnet da Linux a NOS e viceversa.
Se ciò non si verificasse, controllare con attenzione soprattutto la
corretta configurazione degli indirizzi e del pipe.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Sommario dei comandi Linux relativi al protocollo AX.25</Title>

<Para>
Questa sezione riassume tutti i comandi specifici al protocollo AX.25
</Para>

<Para>
<informaltable frame=all>
<tgroup cols=3>
<thead>
<row><entry>Comando</entry><entry>Pacchetto</entry><entry>Descrizione</entry></row>
</thead>
<tbody>

<row>
<entry>mheard</entry>
<entry>ax25-tools</entry>
<entry>Mostra i nominativi AX.25 ascoltati di recente</entry>
</row>

<row>
<entry>ax25d</entry>
<entry>ax25-tools</entry>
<entry>Demone generico per AX.25, NET/ROM e ROSE</entry>
</row>

<row>
<entry>axctl</entry>
<entry>ax25-tools</entry>
<entry>Configura/termina le connessioni AX.25 attive</entry>
</row>

<row>
<entry>axparms</entry>
<entry>ax25-tools</entry>
<entry>Configura le interfacce AX.25</entry>
</row>

<row>
<entry>axspawn</entry>
<entry>ax25-tools</entry>
<entry>Consente il login automatico ad una macchina Linux</entry>
</row>

<row>
<entry>beacon</entry>
<entry>ax25-tools</entry>
<entry>Trasmette messaggi periodici su una porta AX.25</entry>
</row>

<row>
<entry>bpqparms</entry>
<entry>ax25-tools</entry>
<entry>Configura i dispositivi ethernet BPQ</entry>
</row>

<row>
<entry>mheardd</entry>
<entry>ax25-tools</entry>
<entry>Raccoglie informazioni relative all'attività packet</entry>
</row>

<row>
<entry>rxecho</entry>
<entry>ax25-tools</entry>
<entry>Instrada i pacchetti AX.25 tra le porte in modo trasparente</entry>
</row>

<row>
<entry>sethdlc</entry>
<entry>ax25-tools</entry>
<entry>Restituisce o imposta i parametri della porta per il packet radio modem Linux HDLC</entry>
</row>

<row>
<entry>smmixer</entry>
<entry>ax25-tools</entry>
<entry>Restituisce o imposta i parametri del Linux soundcard packet radio modem</entry>
</row>

<row>
<entry>smdiag</entry>
<entry>ax25-tools</entry>
<entry>utilit&agrave; di diagnostica per il driver del Linux soundcard packet radio modem</entry>
</row>

<row>
<entry>kissattach</entry>
<entry>ax25-tools</entry>
<entry>Si connette ad un interfaccia KISS o 6PACK</entry>
</row>

<row>
<entry>kissnetd</entry>
<entry>ax25-tools</entry>
<entry>Crea una rete virtuale</entry>
</row>

<row>
<entry>kissparms</entry>
<entry>ax25-tools</entry>
<entry>Configura i TNC KISS</entry>
</row>

<row>
<entry>net2kiss</entry>
<entry>ax25-tools</entry>
<entry>Converte in driver di rete AX.25 in un flusso KISS su una pseudo-tty</entry>
</row>

<row>
<entry>mkiss</entry>
<entry>ax25-tools</entry>
<entry>Si connette ad un interfaccia multi KISS</entry>
</row>

<row>
<entry>nodesave</entry>
<entry>ax25-tools</entry>
<entry>Salva le informazioni di routing NET/ROM</entry>
</row>

<row>
<entry>nrattach</entry>
<entry>ax25-tools</entry>
<entry>Attiva un'interfaccia NET/ROM</entry>
</row>

<row>
<entry>nrparms</entry>
<entry>ax25-tools</entry>
<entry>Configura l'interfaccia NET/ROM</entry>
</row>

<row>
<entry>nrsdrv</entry>
<entry>ax25-tools</entry>
<entry>convertitore seriale da KISS a NET/ROM</entry>
</row>

<row>
<entry>NET/ROMd</entry>
<entry>ax25-tools</entry>
<entry>Invia e riceve informazioni di routing NET/ROM</entry>
</row>

<row>
<entry>rsattach</entry>
<entry>ax25-tools</entry>
<entry>Attiva un'interfaccia ROSE</entry>
</row>

<row>
<entry>rsdwnlnk</entry>
<entry>ax25-tools</entry>
<entry>Comando per l'utente di uscita dalla rete ROSE</entry>
</row>

<row>
<entry>rsparms</entry>
<entry>ax25-tools</entry>
<entry>Configura l'interfaccia ROSE</entry>
</row>

<row>
<entry>rsuplnk</entry>
<entry>ax25-tools</entry>
<entry>Comando per l'utente di ingresso alla rete ROSE</entry>
</row>

<row>
<entry>ttylinkd</entry>
<entry>ax25-tools</entry>
<entry>Demone TTYlink per AX.25, NET/ROM, ROSE and IP</entry>
</row>

<row>
<entry>rip98d</entry>
<entry>ax25-tools</entry>
<entry>Invia e riceve messaggi di routing RIP98</entry>
</row>

<row>
<entry>ax25_call</entry>
<entry>ax25-tools</entry>
<entry>Effettua una connessione AX.25, NET/ROM, ROSE o TCP</entry>
</row>

<row>
<entry>NET/ROM_call</entry>
<entry>ax25-tools</entry>
<entry>Effettua una connessione AX.25, NET/ROM, ROSE o TCP</entry>
</row>

<row>
<entry>rose_call</entry>
<entry>ax25-tools</entry>
<entry>Effettua una connessione AX.25, NET/ROM, ROSE o TCP</entry>
</row>

<row>
<entry>tcp_call</entry>
<entry>ax25-tools</entry>
<entry>Effettua una connessione AX.25, NET/ROM, ROSE o TCP</entry>
</row>

<row>
<entry>yamcfg</entry>
<entry>ax25-tools</entry>
<entry>Configura i parametri del driver YAM</entry>
</row>

<row>
<entry>dmascc_cfg</entry>
<entry>ax25-tools</entry>
<entry>Configura i dispositivi dmascc</entry>
</row>

<row>
<entry>ax25ipd</entry>
<entry>ax25-apps</entry>
<entry>Incapsulatore  di frame AX.25 in IP</entry>
</row>

<row>
<entry>ax25rtd</entry>
<entry>ax25-apps</entry>
<entry>Demone per il routing AX.25</entry>
</row>

<row>
<entry>ax25rtctl</entry>
<entry>ax25-apps</entry>
<entry>utilit&agrave; di controllo del demone per il routing AX.25</entry>
</row>

<row>
<entry>call</entry>
<entry>ax25-apps</entry>
<entry>Effettua una connessione AX.25, NET/ROM o ROSE</entry>
</row>

<row>
<entry>listen</entry>
<entry>ax25-apps</entry>
<entry>Monitor del traffico AX.25</entry>
</row>

<row>
<entry>ax25mond</entry>
<entry>ax25-apps</entry>
<entry>Effettua un dump del traffico di rete AX.25 e mette a disposizione dei socket verso i quali i dati sono ritrasmessi</entry>
</row>

<row>
<entry>soundmodem</entry>
<entry>soundmodem</entry>
<entry>Driver per il modem soundcard</entry>
</row>

<row>
<entry>soundmodemconfig</entry>
<entry>soundmodem</entry>
<entry>Utilità di configurazione del modem soundcard</entry>
</row>

<row>
<entry>aprsd</entry>
<entry>aprsd</entry>
<entry>Demone APRS</entry>
</row>

<row>
<entry>aprspass</entry>
<entry>aprsd</entry>
<entry>Generatore di passcode APRS</entry>
</row>

<row>
<entry>aprsdigi</entry>
<entry>aprsdigi</entry>
<entry>Digipeater APRS</entry>
</row>

<row>
<entry>aprsmon</entry>
<entry>aprsdigi</entry>
<entry>Monitor del traffico APRS AX.25 per JavAPRS</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</Para>

</Sect1>

<Sect1><Title>Dove trovare maggiori informazioni su....?</Title>

<Para>
Poich&eacute; questo documento suppone che si abbia già maturato una certa
esperienza col packet radio, nel caso fosse necessario ho raccolto un
elenco di altre fonti di informazione che possono risultare utili.
</Para>

<Sect2><Title>Packet Radio</Title>

<Para>
Informazioni generali sul packet radio si possono trovare su questi siti:
<ItemizedList>
<ListItem>

<Para>
<ULink URL="http://www.arrl.org/">American Radio Relay League</ULink>
</Para>
</ListItem>
<ListItem>

<Para>
<ULink URL="http://www.rats.org/">Radio Amateur Teleprinter Society</ULink>
</Para>
</ListItem>
<ListItem>

<Para>
<ULink URL="http://www.tapr.org/">Tucson Amateur Packet Radio Group</ULink>
</Para>
</ListItem>
</ItemizedList>
</Para>

</Sect2>

<Sect2><Title>Documentazione sui protocolli</Title>

<Para>
<ItemizedList>
<ListItem>

<Para>
AX.25, NET/ROM - Jonathon Naylor ha raccolto una serie di
documenti riguardo i protocolli usati nel packet radio. Questa
documentazione è stata raccolta nel file
<ULink URL="ftp://ftp.hes.iki.fi/pub/ham/unix.linux/ax25/ax25-doc-1.0.tar.gz" >ax25-doc-1.0.tar.gz</ULink>
</Para>
</ListItem>
</ItemizedList>
</Para>

</Sect2>

<Sect2><Title>Documentazione sull'hardware</Title>

<Para>
<ItemizedList>
<ListItem>

<Para>
Informazioni sulla <Emphasis>Scheda PI2</Emphasis> possono essere reperite presso l'
<ULink URL="http://hydra.carleton.ca/">Ottawa Packet Radio Group</ULink>.
</Para>
</ListItem>
<ListItem>

<Para>
Informazioni sull'hardware del <Emphasis>Baycom</Emphasis> si trovano sulla
<ULink URL="http://www.baycom.de/">Web Page Baycom</ULink>.
</Para>
</ListItem>
</ItemizedList>
</Para>

</Sect2>

<Sect2><Title>Software Linux per radioamatori</Title>

<Para>
John Ackermann mantiene un sito web con informazioni sulla configurazione di
AX.25 su Linux presso
<ULink URL="http://www.febo.com/linux-ax25/index.html">
http://www.febo.com/linux-ax25/index.html</ULink>.
</Para>

<Para>
L'Hamsoft Linux Ham Radio Applications and Utilities Database
si propone di mantenere una lista completa di applicazioni per Linux
 per radioamatori. La si può trovare su
<ULink URL="http://radio.linux.org.au/">http://radio.linux.org.au</ULink>.
</Para>

</Sect2>

</Sect1>

<Sect1><Title>Discussioni riguardo i radioamatori e Linux</Title>

<Para>
Si possono trovare diversi ambiti di discussione su i
radioamatori e Linux, come ad esempio i newsgroup
<Literal>comp.os.linux.*</Literal>, o la mailing list <Literal>linux-hams</Literal> presso
<Literal>vger.kernel.org</Literal>. Altre aree includono la mailing list
<Literal>tcp-group</Literal> su <Literal>ucsd.edu</Literal> (il sito
principale per le discussioni sul TCP/IP radioamatoriale), e il canale irc
<Literal>&num;linpeople</Literal>
</Para>

<Para>
Per iscriversi alla mailing list <Emphasis>linux-hams</Emphasis> occorre mandare
un messaggio a: <Literal>majordomo@vger.kernel.org</Literal>
con la riga:<Literal>subscribe linux-hams</Literal>
nel corpo del messaggio. Il titolo del messaggio stesso viene
ignorato.
</Para>

<Para>
I messaggi della mailing list <Emphasis>linux-hams</Emphasis> sono archiviati presso:
<ULink
URL="http://hes.iki.fi/archive/linux-hams/">http://hes.iki.fi/archive/linux-hams/</ULink>
and <ULink
URL="http://web.gnu.walfield.org/mail-archive/linux-hams">http://web.gnu.walfield.org/mail-archive/linux-hams</ULink>.
Siete invitati a controllare questi archivi prima di mandare quesiti
alla mailing list, poich&eacute; a molte domande è già stata data
un'esauriente risposta.
</Para>

<Para>
Per iscriversi alla lista <Literal>tcp-group</Literal> occorre mandare una mail a:
<Literal>listserver@ucsd.edu</Literal> con la riga <Literal>subscribe
tcp-group</Literal> nel corpo del testo.
</Para>

<Note>
<Para>
Ricordate che la lista <Literal>tcp-group</Literal> serve
principalmente per la discussione sull'uso di protocolli avanzati,
come il tcp/ip in campo radioamatoriale. <Emphasis>Le domande
esclusivamente su Linux non devono essere formulate in
quest'area.</Emphasis>
</Para>
</Note>

</Sect1>

<Sect1><Title>Riconoscimenti</Title>

<Para>
Terry Dawson è l'autore originario e manutentore di questo HOWTO.
Nel 2001 Jeff Tranter gli è succeduto come manutentore per concedere a Terry
più tempo per concentrarsi sullo sviluppo del software per l'AX.25.
</Para>

<Para>
Le seguenti persone hanno contribuito in un modo o nell'altro alla
stesura di questo documento magari anche senza saperlo. Senza un particolare
ordine (cos&igrave; come li ho trovati):
Jonathon Naylor, Thomas Sailer, Joerg Reuter, Ron Atkinson, Alan Cox, Craig
Small, John Tanner, Brandon Allbery, Hans Alblas, Klaus Kudielka, Carl Makin,
John Ackermann, Riley Williams.
</Para>

</Sect1>

<Sect1><Title>Feedback</Title>

<Para>
Mi affido a voi lettori affinch&eacute; questo HOWTO sia utile. Se avete
suggerimenti, correzioni o commenti, vi prego di mandarmeli a <ULink
URL="mailto:tranter@pobox.com">tranter@pobox.com</ULink>, in modo da vedere
di includerli nella prossima versione.
</Para>

<Para>
Nel caso intendiate pubblicare questo documento su CD-ROM o su carta,
una copia di cortesia sarebbe apprezzata; mandatemi un email per sapere il mio
indirizzo postale. Prendete anche in considerazione l'idea di una donazione al
Linux Documentation Project per aiutare lo sviluppo della documentazione libera per Linux.
Contattate l'LDP a <ULink URL="mailto:feedback@linuxdoc.org">feedback@linuxdoc.org</ULink>
per maggiori informazioni.
</Para>

</Sect1>

<Sect1><Title>Regole di distribuzione</Title>

<Para>
Copyright (c) 1996-1997 by Terry Dawson, Copyright (c) 2001 by Jeff
Tranter. Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
with no Back-Cover Texts. A copy of the license is available at
<ULink URL="http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</ULink>
</Para>

</Sect1>

</Article>
