<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux AX25-HOWTO, Amateur Radio.: Configurazione di una porta AX.25.</TITLE> <LINK HREF="AX25-HOWTO-8.html" REL=next> <LINK HREF="AX25-HOWTO-6.html" REL=previous> <LINK HREF="AX25-HOWTO.html#toc7" REL=contents> </HEAD> <BODY> <A HREF="AX25-HOWTO-8.html">Avanti</A> <A HREF="AX25-HOWTO-6.html">Indietro</A> <A HREF="AX25-HOWTO.html#toc7">Indice</A> <HR> <H2><A NAME="s7">7. Configurazione di una porta AX.25.</A></H2> <P> <P>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 è <CODE>/etc/ax25/axport</CODE> e occorre che vi sia una voce per ognuna delle porte attive. <P> <H2><A NAME="ss7.1">7.1 Creazione del device di rete AX.25.</A> </H2> <P> <P>Il device di rete è ciò che viene manipolato quando si usa il comando `<EM>ifconfig</EM>'. E' l'oggetto attraverso il quale il kernel di Linux spedisce e riceve i dati. Quasi sempre un device di rete ha una porta fisica ad esso associato, ma vi sono casi in cui ciò non è necessario. Il device di rete fa riferimento direttamente a un device driver. <P> <P> <P>Nel codice AX.25 di Linux ci sono diversi device driver. Il più comune è probabilmente il driver KISS, ma ci sono anche i driver SCC, Baycom e SoundModem. <P> <P>Ogni device driver, quando viene lanciato, crea un device di rete. <P> <H3>Creazione di un device KISS</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] Serial port KISS driver for AX.25 </PRE> </CODE></BLOCKQUOTE> <P>Probabilmente la configurazione più comune è quella con un TNC KISS su una porta seriale. Visto che occorre partire col TNC in modo KISS, dopo averlo connesso alla porta seriale, lo si può configurare con programmi di comunicazione come <EM>minicom</EM> o <EM>seyon</EM>. <P> <P> <P> <P> <P>Per creare un device KISS si usa il programma <EM>kissattach</EM>. Nella sua forma più semplice si può usare questo programma come segue: <P> <BLOCKQUOTE><CODE> <PRE> # /usr/sbin/kissattach /dev/ttyS0 radio # kissparms -p radio -t 100 -s 100 -r 25 </PRE> </CODE></BLOCKQUOTE> <P>Il comando <EM>kissattach</EM> crea in device di rete di tipo KISS. I device di questo tipo hanno nome `<CODE>ax[0-9]</CODE>'. La prima volta che si usa <EM>kissattach</EM> viene creato `<CODE>ax0</CODE>', la seconda `<CODE>ax1</CODE>' e così via. Ogni device KISS ha associato una porta seriale. <P> <P> <P>Il comando <EM>kissparms</EM> permette di modificare i parametri di un device KISS <P> <P>In particolare nell'ultimo esempio viene creato un device KISS usando il device della porta seriale `<CODE>/dev/ttyS0</CODE>' e la voce nel file <CODE>/etc/ax25/axports</CODE> con una porta chiamata `<CODE>radio</CODE>' che viene configurata inoltre con un <EM>txdelay</EM> e uno <EM>slottime</EM> di 100 millisecondi, nonchè con un valore di <EM>ppersist</EM> pari a 25 <P> <P>Per maggiori informazioni potete far riferimento alle pagine <EM>man</EM> <P> <H3>Configurazione di un TNC Dual Port</H3> <P> <P>L'utility <EM>mkiss</EM> inclusa in ax25-utils permette di usare entrambi i modem di un TNC dual port. La configurazione è piuttosto semplice e consiste nel prendere un singolo device seriale connesso ad un singolo TNC multiporta e facendolo apparire come diversi device connessi ognuno ad un TNC single port. Questa operazione va fatta <B>prima</B> di ogni configurazione della parte AX.25. I device sui quali si effettua la configurazione AX.25 sono interfacce pseudo-TTY, (<CODE>/dev/ttyq*</CODE>), e non gli effettivi device seriali. <P>I device pseudo-TTY creano una specie di tunnel detto pipe attraverso il quale possono parlarsi i programmi che devono colloquiare con i device TTY. Ogni pipe è composta da una parte master e da una parte slave. La parte master è in genere chiamata `<CODE>/dev/ptyq*</CODE>', mentre quella slave è chiamata `<CODE>/dev/ttyq*</CODE>'. C'è una relazione uno a uno tra master e slave, quindi, ad esempio, <CODE>/dev/ptyq0</CODE> è la parte master di una pipe che ha <CODE>/dev/ttyq0</CODE> come slave. Occorre aprire per prima la parte master di una pipe. <EM>mkiss</EM> sfrutta questo meccanismo per dividere una singola porta seriale in diversi device. <P> <P> <P> <P>Esempio: nel caso di un TNC dual port connesso alla porta seriale <CODE>/dev/ttyS0</CODE> a 9600 bps, i comandi <P> <BLOCKQUOTE><CODE> <PRE> # /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1 # /usr/sbin/kissattach /dev/ttyq0 port1 # /usr/sbin/kissattach /dev/ttyq1 port2 </PRE> </CODE></BLOCKQUOTE> <P>creano due device pseudo-tty ognuna delle quali si comporta come un TNC single port. A questo punto si può usare <CODE>/dev/ttyq0</CODE> e <CODE>/dev/ttyq1</CODE> come se fossero dei normali device seriali con un TNC connesso. Questo significa che si dovrà usare <EM>kissattach</EM> per ognuna di essi, come descritto nell'esempio sopra per le porte AX.25 chiamate port1 e port2. Non si deve usare <EM>kissattach</EM> sulla porta seriale vera poiché viene usata dal programma <EM>mkiss</EM>. <P> <P> <P>Il programma <EM>mkiss</EM> ha diversi argomenti opzionali che possono essere usati: <DL> <DT><B>-c</B><DD><P>aggiunge un byte di checksum per ogni frame KISS; la maggior parte delle implementazioni non supporta questa opzione, che è invece presente in quella di G8BPG <DT><B>-s <velocità></B><DD><P>modifica la velocità della porta seriale. <DT><B>-h</B><DD><P>abilita l'handshaking hardware sulla porta seriale; è disabilitata di default poiché quest'opzione non è supportata dalla maggior parte delle implementazioni KISS. <DT><B>-l</B><DD><P>abilita il logging delle informazioni nel file <EM>syslog</EM>. </DL> <P> <H3>Creazione di un device Baycom.</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] BAYCOM ser12 and par96 driver for AX.25 </PRE> </CODE></BLOCKQUOTE> <P>Thomas Sailer, <CODE><sailer@ife.ee.ethz.ch></CODE>, a dispetto del luogo comune che non funzioni bene(?), ha sviluppato il supporto Linux per i modem Baycom. Il suo driver supporta il modem seriale <CODE>Ser12</CODE> e i modem paralleli <CODE>Par96</CODE> e <CODE>PicPar</CODE>. Maggiori informazioni sui modem possono essere reperite presso il <A HREF="http://www.baycom.de/">Baycom Web site</A>. <P> <P> <P>Il primo passo da compiere è quello di determinare gli indirizzi di I/O della porta seriale o parallela alla quale è connesso il Baycom. Una volta fatto, si possono usare queste informazioni per configurare il driver. <P> <P> <P>Il driver Baycom, alla configurazione, crea dei device di rete chiamati <CODE>bc0</CODE>, <CODE>bc1</CODE>, <CODE>bc2</CODE> ecc. <P> <P>L'utility <EM>sethdlc</EM> permette di configurare i parametri del driver, cosa che può essere fatta anche nella linea di comando di <EM>insmod</EM> al caricamento del modulo di controllo del Baycom <P> <P>Segue una piccola configurazione di esempio che: <P>Disabilita 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. <BLOCKQUOTE><CODE> <PRE> # setserial /dev/ttyS0 uart none # insmod hdlcdrv # insmod baycom mode="ser12*" iobase=0x3f8 irq=4 </PRE> </CODE></BLOCKQUOTE> <P>Installa un Baycom Parallelo su LPT1 usando il rilevamento DCD hardware. <P> <BLOCKQUOTE><CODE> <PRE> # insmod hdlcdrv # insmod baycom mode="par96" iobase=0x378 irq=7 options=0 </PRE> </CODE></BLOCKQUOTE> <P>Questo modo di configurare il driver per Baycom in realtà non è molto consigliato, visto che l'utility <EM>sethdlc</EM> funziona senza problemi anche con un solo dispositivo connesso. <P> <P> <P>Le pagine <EM>man</EM> di <EM>sethdlc</EM> contengono tutti i dettagli relativi a questo comando, tuttavia si forniscono un paio di esempi per illustrare gli aspetti più importanti di questo tipo di configurazione. Gli esempi presuppongono che sia già stato caricato il modulo per il supporto del Baycom coi comandi <BLOCKQUOTE><CODE> <PRE> # insmod hdlcdrv # insmod baycom </PRE> </CODE></BLOCKQUOTE> <P>o che il kernel sia stato compilato col supporto Baycom al suo interno. <P> <P>Configurazione del device driver <CODE>bc0</CODE> come modem Baycom parallelo su LPT1 con DCD software: <BLOCKQUOTE><CODE> <PRE> # sethdlc -p -i bc0 mode par96 io 0x378 irq 7 </PRE> </CODE></BLOCKQUOTE> <P> <P>Configurazione del device driver <CODE>bc1</CODE> come modem Baycom seriale su COM1 : <BLOCKQUOTE><CODE> <PRE> # sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4 </PRE> </CODE></BLOCKQUOTE> <P> <H3>Configurazione dei parametri dei accesso al canale AX.25.</H3> <P> <P>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 <EM>sethdlc</EM> . <P> <P>Segue un esempio; per maggiori informazioni la pagina man relativa a <EM>sethdlc</EM> è il posto più indicato dove reperire le informazioni più dettagliate. <P> <P>Configurazione del device <CODE>bc0</CODE> con TxDelay di 200 mS, SlotTime di 100 mS, PPersist di 40 in modalità half duplex: <P> <BLOCKQUOTE><CODE> <PRE> # sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half </PRE> </CODE></BLOCKQUOTE> <P>Si noti che i valori di temporizzazione sono in millisecondi. <P> <H3>Configurazione del Kernel AX.25 per l'uso con un modem Baycom</H3> <P> <P>Il driver Baycom crea dei device di rete standard che il codice del Kernel AX.25 è in grado di sfruttare. La configurazione è sostanzialmente la stessa di quella per una scheda PI o PacketTwin. <P> <P>Il primo passo è quello di configurare il device con un nominativo AX.25. L'utility <EM>ifconfig</EM> può essere utile allo scopo. <BLOCKQUOTE><CODE> <PRE> # /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up </PRE> </CODE></BLOCKQUOTE> <P>assegna al device Baycom <CODE>bc0</CODE> il nominativo AX.25 <CODE>VK2KTJ-15</CODE>. In alternativa sarebbe possibile usare il comando <EM>axparms</EM>, ma occorrerebbe sempre l'uso di <EM>ifconfig</EM> per attivare il device. <BLOCKQUOTE><CODE> <PRE> # ifconfig bc0 up # axparms -setcall bc0 vk2ktj-15 </PRE> </CODE></BLOCKQUOTE> <P> <P>Il passo successivo è quello di creare una voce nel file <CODE>/etc/ax25/axports</CODE> come si farebbe per ogni altro device. La voce nel file <CODE>axports</CODE> è associata col device di rete configurato per il nominativo ad esso legato. La voce nel file axports che ha il nominativo con il qual si è configurato il devide BayCom è quella che verrà usata per riferirlo. <P> <P>A questo punto si userà il nuovo device AX.25 come ogni altro; lo si potrà configurare per l'uso col TCP/IP, aggiungerlo ad ax25d e usarci sopra NetRom e Rose a proprio piacimento. <P> <H3>Creazione di un device SoundModem.</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] Soundcard modem driver for AX.25 [?] Soundmodem support for Soundblaster and compatible cards [?] Soundmodem support for WSS and Crystal cards [?] Soundmodem support for 1200 baud AFSK modulation [?] Soundmodem support for 4800 baud HAPN-1 modulation [?] Soundmodem support for 9600 baud FSK G3RUH modulation </PRE> </CODE></BLOCKQUOTE> <P>Thomas Sailer ha sviluppato un nuovo driver per il kernel che permette l'uso come modem della scheda audio che, una volta connessa direttamente alla radio, può essere usata per fare packet. L'autore raccomanda di usare per lo meno un 486DX2/66 con questo sistema, poiché tutta la parte di elaborazione del segnale digitale è compiuta dalla CPU del calcolatore. <P> <P> <P>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. Questo sistema richiede un circuito addizionale, per poter far pilotare dalla scheda audio il PTT della radio; per sapere come realizzarlo si può andare alla <A HREF="http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html">Thomas's SoundModem PTT circuit web page</A>. Sono possibili diverse opzioni che spaziano dal recuperare l'uscita audio della scheda, usare l'uscita di una porta parallela o di una porta midi. Esempi di circuito sono sul sito di Thomas Sailer. <P> <P> <P>Quando viene configurato, il driver SoundModem crea dei device di rete chiamati: <CODE>sm0</CODE>, <CODE>sm1</CODE>, <CODE>sm2</CODE>. <P><B>Nota</B>: il driver SoundModem usa le stesse risorse de driver sonoro di Linux, per cui se si vuole usare il modem, occorre accertarsi che il driver sonoro non sia installato. Si puo naturalmente compilare entrambi i driver come moduli in modo da inserirli e rimuoverli a piacimento. <P> <P> <H3>Configurazione della scheda audio.</H3> <P> <P>Il driver SoundModem non inizializza la scheda audio, per cui occorre utilizzare l'apposito programma `<EM>setcrystal</EM>' presente nelle ax25-utils che può essere usato con schede basate sul chipset Crystal (con altre schede occorrerà usare altri programmi per inizializarle). <P>La sua sintassi è piuttosto semplice: <BLOCKQUOTE><CODE> <PRE> setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2] </PRE> </CODE></BLOCKQUOTE> <P>Quindi, volendo configurare una SoundBlaster all'indirizzo base di i/o 0x388, irq 10 e dma 1 si userà: <BLOCKQUOTE><CODE> <PRE> # setcrystal -s 0x388 -i 10 -d 1 </PRE> </CODE></BLOCKQUOTE> <P>Mantre per una scheda WindowSoundSystem all'indirizzo base di i/o 0x534, irq 5 e dma 3 si userà: <P> <BLOCKQUOTE><CODE> <PRE> # setcrystal -w 0x534 -i 5 -d 3 </PRE> </CODE></BLOCKQUOTE> <P>Il parametro <CODE>[-f synthio]</CODE> modifica l'indirizzo del sintetizzatore, mentre <CODE>[-c dma2]</CODE> serve per settare il secondo canale DMA per permettere operazioni in full duplex <P> <P> <H3>Configurazione del driver SoundModem.</H3> <P> <P>Una volta configurata la scheda audio occorre configurare il driver, indicandogli l'indirizzo della scheda e che tipo di modem emulare. <P> <P>L'utility <EM>sethdlc</EM> permette di configurare il driver con questi parametri o, se si ha solo una scheda audio installata, si può specificarne i parametri dalla linea di comando di <EM>insmod</EM> quando si carica il modulo SoundModem. <P> <P>L'esempio seguente configura la SoundBlaster nel modo già visto precedentemente ed in modo da emulare un modem a 1200 bps: <BLOCKQUOTE><CODE> <PRE> # insmod hdlcdrv # insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1 </PRE> </CODE></BLOCKQUOTE> <P>Non è in effetti il modo migliore per effettuare le modifiche dato che, come detto già precedentemente, l'utility <EM>sethdlc</EM> funziona senza particolari problemi con una o più device. <P> <P>Le pagine <EM>man</EM> di <EM>sethdlc</EM> contengono tutti i dettagli relativi a questo comando, tuttavia si forniscono un paio di esempi per illustrare gli aspetti più importanti di questo tipo di configurazione. Gli esempi presuppongono che sia già stato caricato il modulo SoundModem coi comandi: <P> <BLOCKQUOTE><CODE> <PRE> # insmod hdlcdrv # insmod soundmodem </PRE> </CODE></BLOCKQUOTE> <P>o che il kernel sia stato compilato con incluso il driver. <P> <P>Configurazione della scheda WindowsSoundSystem configurata come negli esempi precedenti e settata in modo da emulare un modem G3RUH 9600 compatible come device <CODE>sm0</CODE> usando la porta parallela all'indirizzo 0x378 per pilotare il Push-To-Talk della radio. <BLOCKQUOTE><CODE> <PRE> # sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378 </PRE> </CODE></BLOCKQUOTE> <P>Configurazione del driver per supportare la SoundBlaster configurata come negli esempi precedenti e settata in modo da emulare un modem 4800 bps HAPN come device <CODE>sm1</CODE> usando la porta seriale all'indirizzo 0x2f8 per pilotare il Push-To-Talk della radio. <P> <BLOCKQUOTE><CODE> <PRE> # sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8 </PRE> </CODE></BLOCKQUOTE> <P>Configurazione del driver per supportare la SoundBlaster configurata come negli esempi precedenti e settata in modo da emulare un modem 1200 bps AFSK come device <CODE>sm1</CODE> usando la porta seriale all'indirizzo 0x2f8 per pilotare il Push-To-Talk della radio. <P> <BLOCKQUOTE><CODE> <PRE> # sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8 </PRE> </CODE></BLOCKQUOTE> <H3>Configurazione dei parametri dei accesso al canale canale AX.25.</H3> <P> <P>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 <EM>sethdlc</EM> . <P> <P> <P>Seguono un paio di esempi; per maggiori informazioni la pagina man relativa a <EM>sethdlc</EM> è il posto più indicato dove reperire le informazioni più dettagliate. <P> <P> <P>Configurazione del device <CODE>sm0</CODE> con TxDelay di 100 mS, SlotTime di 50 mS, PPersist di 120 in modalità full duplex: <P> <BLOCKQUOTE><CODE> <PRE> # sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full </PRE> </CODE></BLOCKQUOTE> <P>Si noti che i valori di temporizzazione sono in millisecondi. <P> <H3>Messa a punto del driver e del livello audio.</H3> <P> <P>Per ogni modem radio è molto importante che i livelli audio siano settati correttamente e il SoundModem non fa eccezione. Thomas Sailer ha per questo scritto alcne utility che facilitano questo compito, chiamate <EM>smdiag</EM> e <EM>smmixer</EM>. <P> <DL> <DT><B><EM>smdiag</EM></B><DD><P>fornisce due tipi di visualizzazione del segnale in ingresso: come osilloscopio e con un diagramma ad occhio. <P> <DT><B><EM>smmixer</EM></B><DD><P>permette di effettuare l modifica del livello audio in ricezione ed in trasmissione. <P> </DL> <P>Per lanciare l'utility <EM>smdiag</EM> per il device SoundModem <CODE>sm0</CODE> in modalità 'diagramma ad occhio' si usa il comando: <BLOCKQUOTE><CODE> <PRE> # smdiag -i sm0 -e </PRE> </CODE></BLOCKQUOTE> <P> <P>Per lanciare l'utility <EM>smmixer</EM> per il device SoundModem <CODE>sm0</CODE> si usa il comando: <P> <BLOCKQUOTE><CODE> <PRE> # smmixer -i sm0 </PRE> </CODE></BLOCKQUOTE> <P> <P> <H3>Configurazione del Kernel AX.25 per l'uso con SoundModem</H3> <P> <P>Il driver Baycom crea dei device di rete standard che il codice del Kernel AX.25 è in grado di sfruttare. La configurazione è sostanzialmente la stessa di quella per una scheda PI o PacketTwin. <P> <P> <P>Il primo passo è quello di configurare il device con un nominativo AX.25. l'utility <EM>ifconfig</EM> può essere utile allo scopo. <P> <BLOCKQUOTE><CODE> <PRE> # /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up </PRE> </CODE></BLOCKQUOTE> <P>assegna al device SoundModem <CODE>sm0</CODE> il nominativo AX.25 <CODE>VK2KTJ-15</CODE>. In alternativa sarebbe possibile usare il comando <EM>axparms</EM>, ma occorrerebbe sempre l'uso di <EM>ifconfig</EM> per attivare il device. <P> <BLOCKQUOTE><CODE> <PRE> # ifconfig sm0 up # axparms -setcall sm0 vk2ktj-15 </PRE> </CODE></BLOCKQUOTE> <P> <P> <P>Il passo successivo è quello di creare una voce nel file <CODE>/etc/ax25/axports</CODE> come si farebbe per ogni altro device. La voce nel file <CODE>axports</CODE> è associato col device di rete configurato per il nominativo ad esso legato; verrà usata quella col nominativo assegnato al device SoundModem. <P> <P> <P>A questo punto si userà il nuovo device AX.25 come ogni altro; lo si potrà configurare per l'uso col TCP/IP, aggiungerlo a ax25d e usarci sopra NetRom o Rose a proprio piacimento. <P> <P> <H3>Creazione di un device per scheda PI.</H3> <P><B>Opzione di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] Ottawa PI and PI/2 support for AX.25 </PRE> </CODE></BLOCKQUOTE> <P> <P>Il device driver per schede PI crea dei device chiamati `<CODE>pi[0-9][ab]</CODE>'. La prima scheda PI sarà indicata come `<CODE>pi0</CODE>', la seconda `<CODE>pi1</CODE>', eccetera. Le lettere `<CODE>a</CODE>' e `<CODE>b</CODE>' si riferiscono rispettivamente alla prima e alla seconda interfaccia fisica delle schede PI. Se si è compilato il Kernel in modo da includere il driver per la scheda e questa è stata riconosciuta dal sistema in modo esatto, si può usare il seguente comando per configurare il device di rete: <P> <BLOCKQUOTE><CODE> <PRE> # /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up </PRE> </CODE></BLOCKQUOTE> <P>Questo comando configura ed attiva la prima porta della prima scheda PI assegnandole il nominativo <CODE>VK2KTJ-15</CODE>. Per usare il dispositivo, tutto ciò che serve a questo punto è di inserire una voce nel file <CODE>/etc/ax25/axports</CODE> col medesimo nominativo/ssid. <P> <P>Il driver per la scheda PI è stato scritto da <CODE>David Perry, <dp@hydra.carleton.edu></CODE> <P> <H3>Creazione di un device PacketTwin.</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] Gracilis PackeTwin support for AX.25 </PRE> </CODE></BLOCKQUOTE> <P>Il device driver per la scheda PacketTwin crea i device `<CODE>pt[0-9][ab]</CODE>'; la prima scheda PacketTwin localizzata nel calcolatore sarà indicata come `<CODE>pt0</CODE>', la seconda `<CODE>pt1</CODE>' e così via, mentre`<CODE>a</CODE>' and `<CODE>b</CODE>' 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 è stata correttamente riconosciuta, si possono usare i seguenti comandi per configurare i device di rete: <P> <BLOCKQUOTE><CODE> <PRE> # /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up </PRE> </CODE></BLOCKQUOTE> <P> <P>Questo comando configura e attiva la prima porta della prima scheda PacketTwin col nominativo <CODE>VK2KTJ-15</CODE>. Per usare il device, tutto ciò che occorre fare è confiurare una voce nel proprio file <CODE>/etc/ax25/axports</CODE> con il medesimo nominativo/ssid. <P> <P> <P>Il driver per schede PacketTwin è stato scritto da <CODE>Craig Small VK2XLZ, <csmall@triode.apana.org.au></CODE>. <P> <H3>Creazione di un generico device SCC.</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] Z8530 SCC KISS emulation driver for AX.25 </PRE> </CODE></BLOCKQUOTE> <P>Joerg Reuter, DL1BKE, <CODE>jreuter@poboxes.com</CODE> ha sviluppato il supporto generico per le schede basate sullo Z8530 SCC. Il suo driver permette il supporto di diversi tipi di queste schede e offre una modalità di utilizzo simile a quella di un TNC KISS. <P> <P> <H3>Reperire e compilare i programmi di configurazione.</H3> <P> <P>Sebbene il driver sia incluso nella distribuzione standard del Kernel, Joerg Reuter distribuisce versioni più recenti del suo driver assieme ad una collezione di programmi che ne aiutano la configurazione. <P> <P> <P>I programmi di configurazione possono essere scaricati dalla <A HREF="http://www.rat.de/jr/">pagina web di Joerg</A><P>o da: <P><B>db0bm.automation.fh-aachen.de</B> <BLOCKQUOTE><CODE> <PRE> /incoming/dl1bke/ </PRE> </CODE></BLOCKQUOTE> <P>o: <P><B>insl1.etec.uni-karlsruhe.de</B> <BLOCKQUOTE><CODE> <PRE> /pub/hamradio/linux/z8530/ </PRE> </CODE></BLOCKQUOTE> <P>o: <P><B>ftp.ucsd.edu</B> <BLOCKQUOTE><CODE> <PRE> /hamradio/packet/tcpip/linux /hamradio/packet/tcpip/incoming/ </PRE> </CODE></BLOCKQUOTE> <P> <P> <P>Troverete diverse versioni; va scelta quella che maggiormente si adatta alla versione di Kernel che si intende usare. <P> <PRE> z8530drv-2.4a.dl1bke.tar.gz 2.0.* z8530drv-utils-3.0.tar.gz 2.1.6 o superiore </PRE> <P> <P> <P>I seguenti comandi mi hanno permesso di compilare ed installare il pacchetto per la versione 2.0.30 del kernel <BLOCKQUOTE><CODE> <PRE> # 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 nel kernel # make install </PRE> </CODE></BLOCKQUOTE> <P> <P>Dopo aver completato quest'operazione dovreste avere tre nuovi programmi installati nella vostra directory <CODE>/sbin</CODE>: <EM>gencfg</EM>, <EM>sccinit</EM> e <EM>sccstat</EM>. Questi permetteranno di configurare il driver per la scheda. <P> <P>Verrà anche creato nella directory <CODE>/dev</CODE> un un gruppo di device speciali chiamati <CODE>scc0</CODE>-<CODE>scc7</CODE>; questi saranno trattati in dettaglio più avanti e saranno i device `KISS' da utilizzare. <P> <P>Se scegliete l'opzione 'make for_kernel' occorrre ricompilare il kernel. Per far sì che venga incluso il supporto per il driver z8530 occorre rispondere `<CODE>Y</CODE>' alla domanda `<CODE>Z8530 SCC kiss emulation driver for AX.25</CODE>' che viene fatta dalla procedura di configurazione del kernel, ossia quando si dà il comando `<CODE>make config</CODE>'. <P> <P>Se invece avete fatto 'make module', occorre che il nuovo file <CODE>scc.o</CODE> sia messo nella directory <CODE>/lib/modules</CODE>, ma non occorre ricompilare il kernel. Si ricordi di usare il comando <EM>insmod</EM> per caricare il modulo prima di provare a configurarlo. <P> <H3>Configurazione del driver per la propria scheda.</H3> <P> <P>Il driver per scheda SCC z8530 è stato concepito per garantire la massima flessibilità e di supportare il maggior numero di schede. Questa flessibilità porta però come conseguenza una configurazione piuttosto impegnativa. <P> <P>Nel paccheto è fornita un'esauriente documentazione che va letta in caso di difficoltà. In particolare, maggiori informazioni si possono trovare in <CODE>doc/scc_eng.doc</CODE> or <CODE>doc/scc_ger.doc</CODE>. 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. <P> <P>Il file di configurazione principale è <CODE>/etc/z8530drv.conf</CODE> e viene letto dal programma <EM>sccinit</EM>, Questo file è diviso in due parti: configurazione dei parametri hardware e configurazione del canale. Una volta adattato opportunamente questo file alle vostre esigenze, basta aggiungere <P> <BLOCKQUOTE><CODE> <PRE> # sccinit </PRE> </CODE></BLOCKQUOTE> <P> <P>nel file <CODE>rc</CODE> che configura la rete, e il driver sarà inizializzato nel modo indicato dal file di configurazione. Questa operazione va fatta prima di provare ad usare il driver, naturalmente. <P> <P> <H3>Configurazione dei parametri hardware.</H3> <P> <P>La prima sezione è divisa in due sottoparti, ognuna delle quali rappresenta la configurazione per un chip 8530 ed è costituita da una lista di parole chiave con valori associati. In questo file si possono specificare fino a quattro chip SCC di default. Il valore <CODE>#define MAXSCC 4</CODE> nel file <CODE>scc.c</CODE> può essere aumentato se si desidera il supporto per un numero maggiore di chip. <P> <P>Le parole chiave possibili e i relativi argomenti sono: <P> <DL> <DT><B>chip</B><DD><P>serve per separare le sottosezioni. Non usa argomenti. <P> <DT><B>data_a</B><DD><P>specifica l'indirizzo della porta dati per il canale `A' dello z8530. L'argomento è un numero esadecimale, ad esempio 0x300 <P> <DT><B>ctrl_a</B><DD><P>specifica l'indirizzo della porta di controllo per il canale `A' dello z8530. L'argomento è un numero esadecimale, ad esempio 0x304 <P> <DT><B>data_b</B><DD><P>specifica l'indirizzo della porta dati per il canale `B' dello z8530. L'argomento è un numero esadecimale, ad esempio 0x301 <P> <DT><B>ctrl_b</B><DD><P>specifica l'indirizzo della porta di controllo per il canale `A' dello z8530. L'argomento è un numero esadecimale, ad esempio 0x305 <DT><B>irq</B><DD><P>specifica l'IRQ (l'interupt) usata dalla scheda SCC 8530 descritta in questa sottosezione. L'argomento è un intero, ad esempio 5 <P> <DT><B>pclock</B><DD><P>specifica la frequenza del clock al pin PCLK dell'8530. L'argomento è un intero che indica la frequenza in Hz, ed è fissato di default a 4915200 se si omette questa parola chiave. <P> <DT><B>board</B><DD><P>specifica il tipo particolare di scheda SCC 8530. L'argomento è una stringa alfanumerica che può assumere i seguenti valori: <P> <DL> <DT><B>PA0HZP</B><DD><P>scheda PA0HZP SCC <DT><B>EAGLE</B><DD><P>Scheda Eagle <DT><B>PC100</B><DD><P>scheda DRSI PC100 SCC <DT><B>PRIMUS</B><DD><P>scheda PRIMUS-PC (DG9BL) <DT><B>BAYCOM</B><DD><P>scheda BayCom (U)SCC </DL> <DT><B>escc</B><DD><P>questa parola chiave è opzionale; viene usata per abilitare il supporto per i chip Extended SCC (ESCC) come l'8580, 85180 o 85280. L'argomento è una stringa di caratteri i cui unici valori ammessi sono `yes' oppure `no', che è il valore didefault. <P> <DT><B>vector</B><DD><P>questa parola chiave è opzionale; specifica l'indirizzo del `vector latch' (conosciuto pure come "intack port") per le schede PA0HZP. Ci può essere solo un vector latch per tutti i chip e il valore di default è 0 <P> <DT><B>special</B><DD><P>questa parola chiave è opzionale; specifica l'indirizzo del registro per funzioni speciali presente su diverse schede SCC. Il valore di default è 0 <P> <DT><B>option</B><DD><P>questa parola chiave è opzionale e il suo valore di default è 0 (sic, n.d.t.). </DL> <P> <P>Seguono alcuni configurazioni d'esempio per le schede più comuni: <P> <DL> <DT><B>BayCom USCC</B><DD><P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> <DT><B>Scheda PA0HZP SCC</B><DD><P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> <DT><B>Scheda DRSI SCC</B><DD><P> <BLOCKQUOTE><CODE> <PRE> chip 1 data_a 0x303 data_b 0x301 ctrl_a 0x302 ctrl_b 0x300 irq 7 pclock 4915200 board DRSI escc no </PRE> </CODE></BLOCKQUOTE> </DL> <P>Se con NOS si ha già una configurazione funzionante per la vostra scheda, si può usare il comando <EM>gencfg</EM> per convertire i comandi del driver NOS di PE1CHL in una forma che possa andare bene nel file di configurazione del driver z8530. <P> <P> <P>Per usare <EM>gencfg</EM> basta invocare il comando con gli stesi parametri usati per il driver di PE1CHL in NET/NOS. Per esempio il comando: <BLOCKQUOTE><CODE> <PRE> # gencfg 2 0x150 4 2 0 1 0x168 9 4915200 </PRE> </CODE></BLOCKQUOTE> <P>genererà un abbozzo di configurazione per la scheda OptoSCC. <P> <H3>Configurazione del canale</H3> <P> <P>La sezione di configurazione del canale è quella nella quale si specificano tutte gli altri parametri associati con la porta che si sta configurando. Anche questa è 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. <P> <P>Queste parole chiave sono scritte anche nel file <CODE>/etc/z8530drv.conf</CODE> <P>e devono apparire <B>dopo</B> la sezione dei parametri hardware. <P> <P>L'ordine in cui queste appaiono è molto importante, ma quello in cui sono presentate qui dovrebbe andare bene. <DL> <DT><B>device</B><DD><P>questa parola chiave deve apparire all'inizio della definizione della porta e specifica il nome del device file speciale al quale si applica il resto dei parametri di configurazione; ad esempio <CODE>/dev/scc0</CODE> <P> <DT><B>speed</B><DD><P>questa parola chiave specifica la velocità dell'interfaccia in bit al secondo: ad esempio <CODE>1200</CODE> <P> <DT><B>clock</B><DD><P>questa parola chiave specifica da dove recuperare il clock per i dati. I valori consentiti sono: <P> <DL> <DT><B>dpll</B><DD><P>normali operazioni in half duplex <DT><B>external</B><DD><P>il modem fornisce il proprio clock per le operazioni di Rx/TX <P> <DT><B>divider</B><DD><P>usa il divider full duplex se installato. </DL> <DT><B>mode</B><DD><P>questa parola chiave specifica il tipo di codifica da adottare per la rappresentazione dei dati. I valori consentiti sono <CODE>nrzi</CODE> or <CODE>nrz</CODE> <P> <DT><B>rxbuffers</B><DD><P>specifica il numero di buffer di ricezione per cui allocare memoria. L'argomento è un intero, ad esempio 8. <DT><B>txbuffers</B><DD><P>specifica il numero di buffer di trasmissione per cui allocare memoria. L'argomento è un intero, ad esempio 8. <P> <DT><B>bufsize</B><DD><P>specifica la dimensione dei buffer di ricezione e trasmissione. L'argomento è in byte e rappresenta la lunghezza totale del frame, compreso l'header AX.25 (non solo la parte dati). Questa parola chiave è opzionale e il suo valore di default è <CODE>384</CODE> <P> <DT><B>txdelay</B><DD><P>rappresenta il parametro KISS di ritardo nella trasmissione; l'argomento è un intero ed esprime una grandezza in ms. <DT><B>persist</B><DD><P>rappresenta il parametro KISS di persist e il suo argomento è un intero. <DT><B>slot</B><DD><P>rappresenta il parametro KISS di tempo di slot; l'argomento è un intero ed esprime una grandezza in ms. <DT><B>tail</B><DD><P>rappresenta il parametro KISS di tail; il suo argomento è un intero ed esprime una grandezza in ms. <DT><B>fulldup</B><DD><P>rappresenta il flag KISS che indica se la trasmissione è in full duplex; l'argomento è un intero e i valori ammessi sono: <CODE>1</CODE>==Full Duplex, <CODE>0</CODE>==Half Duplex. <DT><B>wait</B><DD><P>rappresenta il parametro KISS di tempo di wait; l'argomento è un intero ed esprime una grandezza in ms. <DT><B>min</B><DD><P>rappresenta il parametro KISS 'min'; l'argomento è un intero ed esprime una grandezza in secondi. <DT><B>maxkey</B><DD><P>rappresenta il parametro KISS indicante il tempo massimo di keyup; l'argomento è un intero ed esprime una grandezza in secondi. <DT><B>idle</B><DD><P>rappresenta il parametro KISS di tempo di idle; l'argomento è un intero ed esprime una grandezza in ms. <DT><B>maxdef</B><DD><P>rappresenta il parametro KISS 'maxdef'; l'argomento è un intero. <DT><B>group</B><DD><P>rappresenta il parametro KISS di valore di gruppo; l'argomento è un intero. <DT><B>txoff</B><DD><P>rappresenta il parametro KISS di tempo di 'txoff'; l'argomento è un intero ed esprime una grandezza in ms. <DT><B>softdcd</B><DD><P>rappresenta il parametro KISS 'softdcd'; l'argomento è un intero. <DT><B>slip</B><DD><P>rappresenta il flag KISS 'slip'; l'argomento è un intero. </DL> <P> <H3>Uso del driver.</H3> <P>Per usare il driver basta semplicemente utilizzare i device <CODE>/dev/scc*</CODE> come se si avesse un device 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ò fare in questo modo: <BLOCKQUOTE><CODE> <PRE> # kissattach -s 4800 /dev/scc0 VK2KTJ </PRE> </CODE></BLOCKQUOTE> <P>Si può anche usare NOS per effettuare la configurazione nello stesso modo. Da JNOS, per esmpio, si può fare: <P> <BLOCKQUOTE><CODE> <PRE> attach asy scc0 0 ax25 scc0 256 256 4800 </PRE> </CODE></BLOCKQUOTE> <P> <H3><EM>sccstat</EM> e <EM>sccparam</EM>.</H3> <P>Per la diagnosi di eventuali problemi, si può usare il programma <EM>sccstat</EM> per mostrare la configurazione corrente di un device SCC. Per usarlo si può dare il comando: <P> <BLOCKQUOTE><CODE> <PRE> # sccstat /dev/scc0 </PRE> </CODE></BLOCKQUOTE> <P>in questo modo verranno mostrati un sacco di informazioni sulla configurazione e sul comportamento della porta SCC <CODE>/dev/scc0</CODE>. <P> <P>Il comando <EM>sccparam</EM> permette di cambiare la configurazione dopo il boot del sistema. La sua sintassi è molto simile al comando NOS <CODE>param</CODE>, quindi, ad esempio, per settare a 100 ms il valore di <CODE>txtail</CODE> si puo fare: <P> <BLOCKQUOTE><CODE> <PRE> # sccparam /dev/scc0 txtail 0x8 </PRE> </CODE></BLOCKQUOTE> <P> <H3>Creazione di un device ethernet BPQ.</H3> <P><B>Opzioni di compilazione del Kernel</B>: <BLOCKQUOTE><CODE> <PRE> General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] BPQ Ethernet driver for AX.25 </PRE> </CODE></BLOCKQUOTE> <P>Linux supporta compatibilità 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. <P> <P>I device di rete BPQ hanno nome `<CODE>bpq[0-9]</CODE>'. Il device `<CODE>bpq0</CODE>' è associato com il device `<CODE>eth0</CODE>', `<CODE>bpq1</CODE>' con `<CODE>eth1</CODE>' e così via. <P>La configurazione è abbastanza semplice. Prima di tutto occorre che il proprio kernel sia stato compilato per supportare la scheda Ethernet da utilizzare e che si sia già verificato il corretto funzionamento di quest'ultima con Linux. Per maggiori informazioni si può fare riferimento all' <A HREF="Ethernet-HOWTO.html">Ethernet-HOWTO</A>. <P>Per configurare il supporto BPQ occorre dotare di un nominativo AX.25 il device Ethernet col seguente comando: <P> <BLOCKQUOTE><CODE> <PRE> # /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up </PRE> </CODE></BLOCKQUOTE> <P>Ancora una volta si ricordi che il nominativo specificato deve essere presente anche nel file <CODE>/etc/ax25/axports</CODE> che si intende usare per questa porta. <P> <H3>Configurazione del nodo BPQ per il colloqio con il supporto AX.25 di Linux.</H3> <P>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ò essere modificato per assomigliare a questo: <P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="ss7.2">7.2 Creazione del file <CODE>/etc/ax25/axports</CODE>.</A> </H2> <P><CODE>/etc/ax25/axports</CODE> è un semplice file di testo, da creare con un editor. Il suo formato è il seguente: <P> <BLOCKQUOTE><CODE> <PRE> portname callsign baudrate paclen window description </PRE> </CODE></BLOCKQUOTE> <P>dove: <P> <DL> <DT><B>portname</B><DD><P>è il nome che viene dato alla porta. <DT><B>callsign</B><DD><P>è il nominativo AX.25 che si vuole assegnare alla porta. <DT><B>baudrate</B><DD><P>è la velocità con la quale si vuol far comunicare la porta col proprio TNC. <DT><B>paclen</B><DD><P>è la grandezza massima del pacchetto che si vuole che la porta usi per le trasmissioni AX.25. <DT><B>window</B><DD><P>è il parametro di finestra AX.25 (K), cioè il valore di <CODE>MAXFRAME</CODE> di molti TNC. <DT><B>description</B><DD><P>è la descrizione della porta. </DL> <P>La mia è la seguente: <P> <BLOCKQUOTE><CODE> <PRE> radio VK2KTJ-15 4800 256 2 4800bps 144.800 MHz ether VK2KTJ-14 10000000 256 2 BPQ/ethernet device </PRE> </CODE></BLOCKQUOTE> <P>Si ricordi di usare un nominativo/ssid univoco per ogni porta AX.25 che si crea. Occorre creare, dunque, una voce per ogni device AX.25 che si vuole utilizzare (KISS, SCC, PI, PT, Baycom o SoundModem che sia). I device di rete sono associati alle porte attraverso il nominativo/ssid, per questo esso deve essere univoco. <P> <H2><A NAME="ss7.3">7.3 Configurazione del routing AX.25.</A> </H2> <P>E' possibile configurare i digipeater da utilizzare per raggiungere un host specifico, operazione che risulta utile sia per le operazioni AX.25 che basate su IP. Il comando <EM>axparms</EM> permette di effettuare questa operazione; le pagine <EM>man</EM> sono sempre la fonte migliore di informazioni su questo comando, ma un semplice esempio può essere: <P> <BLOCKQUOTE><CODE> <PRE> # /usr/sbin/axparms -route add radio VK2XLZ VK2SUT </PRE> </CODE></BLOCKQUOTE> <P>Questo comando indica che il percorso per <CODE>VK2XLZ</CODE> deve avvenire tramite il digipeater <CODE>VK2XLZ</CODE> sulla porta AX.25 chiamata <CODE>radio</CODE>. <P> <HR> <A HREF="AX25-HOWTO-8.html">Avanti</A> <A HREF="AX25-HOWTO-6.html">Indietro</A> <A HREF="AX25-HOWTO.html#toc7">Indice</A> </BODY> </HTML>