Una porta di I/O è un mezzo che permette l'ingresso e l'uscita di dati da un computer. Esistono svariati tipi di porte I/O come, ad esempio, le porte seriali, parallele, controller per disk drive, schede ethernet, ecc. Qua tratteremo le porte seriali, dato che i modem e i terminali sono periferiche seriali. Ogni porta seriale deve avere un indirizzo di I/O, e un interrupt (IRQ). Esistono quattro porte seriali corrispondenti a COM1 - COM4:
ttyS0 (COM1) indirizzo 0x3f8 IRQ 4
ttyS1 (COM2) indirizzo 0x2f8 IRQ 3
ttyS2 (COM3) indirizzo 0x3e8 IRQ 4
ttyS3 (COM4) indirizzo 0x2e8 IRQ 3
Se Linux non riconosce nessuna porta seriale quando si avvia, allora assicuratevi che il supporto seriali sia attivato e compilato nel kernel. In questo documento, mi riferisco a COM1 come ttyS0
, COM2 come ttyS1
, COM3 come ttyS2
, e COM4 come ttyS3
. Da notare il fatto che per default Linux utilizza gli stessi indirizzi IRQ per più porte. Non potete usare tutte le porte con questa configurazione, e dovete re-assegnare le porte con differenti indirizzi IRQ. Potete fare riferimento alla sezione
Posso usare più di due porte seriali? per impostare gli IRQ.
In qualche installazione vengono create due periferiche
addizionali: /dev/modem
per il vostro modem e
/dev/mouse
per il mouse. Tutte e due sono link simbolici alla
periferica appropriata in /dev
che avete specificato durante
l'installazione.
Ci sono state discussioni sul merito di /dev/mouse
e
/dev/modem
. Io scoraggio apertamente l'utilizzo di questi
link. Ad esempio, se desiderate utilizzare il vostro modem per
chiamare all'esterno potrete avere problemi poiché il lock file può
non funziona correttamente con /dev/modem
. Utilizzateli se li
trovate comodi, ma assicuratevi che puntino alla periferica
corretta. In ogni caso, se cambiate o rimuovete questi link, qualche
applicazione (minicom
per esempio ) andranno configurate
nuovamente.
cua
Ogni periferica tty ha una corrispondere periferica cua. Si è discusso a lungo circa la rimozione delle cua poiché forse è meglio utilizzare le ttyS. La principale differenza tra cua e ttyS è che per un comune comando "open" ( senza argomenti ) all'interno di una applicazione, la cua aprirà ugualmente la porta anche se i segnali di controllo del modem ( come il DCD ) non lo permettono ( stty deve essere impostato per controllare i segnali del modem ). In una situazione del genere una porta ttyS si rifiuterebbe di aprire la porta, ma può essere forzata a farlo con parametri specifici ai comandi.
/dev
/dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64
/dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65
/dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66
/dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67
Da notare che tutte le distribuzioni devono avere queste periferiche già impostate correttamente ( a meno che cua non venga abolita ). Potete verificare questo con:
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*
/dev
Se non trovate una periferica allora dovete crearla con il comando mknod
. Se per esempio volete creare una periferica per ttyS0
:
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
Potete usare anche lo script MAKEDEV
, che si trova in /dev
. Questo semplifica la creazione di periferiche. Un altro esempio, sempre per creare una ttyS0
:
linux# cd /dev
linux# ./MAKEDEV ttyS0
Questo script si occupa di creare le periferiche di ingresso e di uscita, e impostare correttamente i permessi.
La periferica che viene utilizzata dalla vostra scheda multiporta
dipende proprio dal tipo di scheda installata. Alcune di queste sono
dettagliatamente descritte in rc.serial
o in
0setserial
che si trova nel pacchetto
setserial
. Raccomando vivamente di prendere la più recente
versione di setserial
se state provando ad installare una scheda
multiporta. Probabilmente avrete bisogno di creare queste
periferiche. Potete utilizzare sia il comando mknod
sia lo script
MAKEDEV
. Le periferiche per schede multiporta sono create
aggiungendo ``64 + numero porta''. Quindi, se volete creare una
periferica del tipo ttyS17
, dovrete digitare:
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
Notate che ``64 + 17 = 81''. Usando invece lo script MAKEDEV
, dovrete digitare:
linux# cd /dev
linux# ./MAKEDEV ttyS17
Nota: il manuale SIIG per la IO1812 che descrive la COM5-COM8 è errato. Devono essere COM5=0x250, COM6=0x258, COM7=0x260, e COM8=0x268.
Nota: il registro di stato per l'interrupt della Digi PC/8 e'0x140.
Nota: per una AST Fourport dovrete specificare skip_test
in rc.serial
.
Leggete le informazioni che trovate assieme al driver. Queste schede utilizzano particolari periferiche, non quelle predefinite. Queste informazioni variano dipendentemente dall'hardware.