In quest'ultimo caso si presenta spontaneamente la necessita' di disporre di un numero consistente di porte seriali e di gestire la comunicazione su queste seriali in modo efficiente. La risposta a questo problema viene dalle schede multiseriali, che sono generalmente divise in due categorie: intelligenti e "stupide".
Le schede stupide non solo altro che una raccolta di interfacce seriali (di solito le classiche 16550) su una unica scheda ISA o PCI. Tali schede solitamente sono molto economiche, sono semplici da pilotare (visto che i drivers di gestione sono identici ai drivers delle seriali standard del PC, le famose porte COM) ma presentano il serio inconveniente di non gestire in modo affidabile molte comunicazioni contemporanee ad alta velocita' (115.200 baud, tipico dei modem recenti con compressione).
Per questo motivo quando le linee modem cominciano a diventare molte, spesso la scelta ricade sulle schede intelligenti. Le schede di questo tipo solitamente hanno un processore dedicato che si occupa di gestire e bufferare i vari flussi di informazione per evitare che il processore del server venga sovraccaricato di interrupts e quindi per garantire sia una migliore risposta e un minor carico di CPU.
D'altro canto le schede intelligenti richiedono un driver specifico (che spesso risulta gia' integrato nel kernel) e sono solitamente piu' costose.
Le schede della Cyclades sono tutte schede intelligenti, basate su un processore RISC interno e disponibili in diverse versioni (con connettore RJ12, DB25 o RJ45). Il driver per la gestione della scheda e' parte integrante del kernel Linux, per cui non vengono forniti drivers esterni insieme alla scheda.
La prova e' stata effettuata su una Cyclom 8Yo (connettore DB25), la macchina usata per la prova e' un normalissimo pentium 90 con linux 2.0.6, a cui ho collegato per il periodo della prova 5 modem a 28.8 kbps della zyxel.
Per l'installazione della scheda e' sufficiente disporre di un indirizzo di IRQ libero e cercare un'area di memoria di 8Kbyte disponibile per il trasferimento dei dati.
La scheda arriva preconfigurata in modo corretto per la maggior parte delle configurazioni hardware, solitamente i problemi possono sorgere per un conflitto di IRQ facilmente risolvibile (basta spostare i dip switch della scheda per cercare un altro indirizzo libero). Il supporto per la scheda cyclades deve essere integrato nel kernel - questo significa che in molti casi e' necessario ricompilare il kernel aggiungendo il supporto per la scheda stessa. Al reboot successivo dovrebbe comparire la riga:
Cyclom driver $Revision: 1.1.1.1 $$Date: 2001/08/19 11:23:54 $
e una riga successiva in cui identifica l'IRQ su cui la scheda lavora.
Una importante avvertenza: nei kernel recenti (2.0 e successivi) il formato per la numerazione dei devices (quei files fittizi che si trovano nella directory /dev) e' cambiata; in /usr/src/linux/drivers/char esiste un file chiamato README.cyclomY che contiene le modifiche da effettuare al file MAKEDEV che si trova in /dev e che serve a creare dei devices nuovi.
La modifica puo' essere fatta anche a mano, e' sufficiente andare alle righe 209 e 210 del file MAKEDEV e cambiare le righe
makedev ttyC$i c $major1 `expr 32 + $i` $tty makedev cub$i c $major2 `expr 32 + $i` $dialout con: makedev ttyC$i c $major1 $i $tty makedev cub$i c $major2 $i $dialout
A questo punto e' sufficiente andare nella directory /dev e eseguire il comando:
./MAKEDEV cyclades
e la scheda e' pronta per funzionare.
Per quello che riguarda poi l'utilizzo reale, solitamente si aggiungono alcune righe nel file /etc/inittab in modo da far eseguire una getty (o meglio una mgetty) per ogni linea seriale su cui sia collegato un modem, in modo da consentire il login dei clienti e la loro identificazione, oppure se le seriali vengono utilizzate per gestire delle linee dedicate analogiche si puo' impiegare il programma slattach per consentire l'utilizzo dello SLIP o PPP sulla seriale.
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: