Avanti Indietro Indice

3. Che cosa rappresentano i nomi delle porte seriali?

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.

3.1 Periferiche: Modem, Mouse.

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 (minicomper esempio ) andranno configurate nuovamente.

3.2 La periferica 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.

3.3 Le porte seriali e la numerazione in /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*

Creare periferiche in /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.

3.4 Piccole note per Schede Multiporta Non Intelligenti

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.

3.5 Note per Schede Multiporta Intelligenti

Leggete le informazioni che trovate assieme al driver. Queste schede utilizzano particolari periferiche, non quelle predefinite. Queste informazioni variano dipendentemente dall'hardware.


Avanti Indietro Indice