Avanti Indietro Indice

7. Dispositivi di porta seriale /dev/ttyS2, ecc.

Per creare dispositivi nella directory dei dispositivi vedere il Serial-HOWTO: "Creating Devices In the /dev directory".

7.1 Nomi e numeri dei dispositivi di porta seriali

I dispositivi in Linux hanno numeri primari e secondari. Ogni porta seriale può avere due possibili nomi, nella directory /dev: ttyS e cua. I loro driver si comportano in modo leggermente differente. Il dispositivo cua è disapprovato e potrebbe non essere più usato in futuro. Vedere Il device cua.

Dos/Windows usano il nome COM mentre il programma setserial usa tty00, tty01 ecc. Non confondete questi con dev/tty0, /dev/tty1, ecc. che sono usati per le console (il monitor del vostro PC) ma non sono porte seriali. I nomi dos (COM1, ecc.) e gli indirizzi IO sono mostrati sotto per i casi "standard" (ma i vostri potrebbero essere diversi).

       set-                                           indirizzo
dos   serial          prim. second.       prim. second.   IO
COM1  tty00  /dev/ttyS0  4,  64;  /dev/cua0  5,  64      3F8
COM2  tty01  /dev/ttyS1  4,  65;  /dev/cua1  5,  65      2F8
COM3  tty02  /dev/ttyS2  4,  66;  /dev/cua2  5,  66      3E8
COM4  tty03  /dev/ttyS3  4,  67;  /dev/cua3  5,  67      2E8

Notate che tutte le distribuzioni dovrebbero avere dei dispositivi ttyS (e dispositivi cua fino a che cua venga definitivamente abolito). Potreste verificarlo digitando

linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*

7.2 Collegare con link ttySN a /dev/modem ?

In alcune installazioni, saranno creati due dispositivi extra, /dev/modem per il vostro modem e /dev/mouse per il vostro mouse. Entrambi sono dei link simbolici agli appropriati dispositivi in /dev che avete specificato durante l'installazione (a meno che non abbiate un bus mouse, allora /dev/mouse punterà al dispositivo del bus mouse).

Ci sono state alcune discussioni riguardo a /dev/mouse e /dev/modem. L'uso di questi link è sconsigliato. In particolare, se state pensando di usare il vostro modem per ricevere chiamate potreste avere problemi perché i file di lock potrebbero non funzionare correttamente se usate /dev/modem. Usateli se volete, ma siate sicuri che puntino al dispositivo giusto. Comunque, se cambiate o eliminate questi link, alcune applicazioni potrebbero necessitare di una riconfigurazione.

7.3 Creare dispositivi nella directory /dev

Se non avete un dispositivo, potrete crearlo con il comando mknod. Ad esempio, supposto che dobbiate create dispositivi per ttyS0:

linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 5 64
Potete poi usare lo script MAKEDEV che si trova in /dev. Vedere per questo la pagina di manuale. Questo semplifica la creazione dei dispositivi. Ad esempio. Se volete create dispositivi per ttyS0 digitate:
linux# cd /dev
linux# ./MAKEDEV ttyS0
Questo gestisce la creazione dei dispositivi e dovrebbe impostare i permessi correttamente

7.4 Il dispositivo cua

Ad ogni dispositivo ttyS corrisponde un dispositivo cua. Ma il dispositivo cua sta per essere abolito così è meglio usare ttyS (a meno che cua sia richiesto). C'è differenza tra cua e ttyS ma un programmatore previdente può fare sì che una porta ttyS si comporti esattamente come una porta cua, così non c'è più realmente bisogno di cua. A meno che alcuni vecchi programmi non richiedano l'uso di cua.

Qual'è la differenza? La differenza principale tra cua e ttyS si riferisce a quanto succede in un programma C quando un normale comando "open" cerca di aprire la porta. Se una porta cua è stata impostata per controllare i segnali di controllo del modem, la porta potrebbe essere aperta anche se il segnale di controllo DCD del modem dice che non è vero. Una astuta programmazione (aggiungendo lineee addizionali al programma) può forzare una porta ttyS a comportarsi anch'essa in questo modo. Ma una porta cua può essere ancora più facilmente programmata per aprirsi per comporre una chiamata in uscita anche quando il modem non riesce ad identificare DCD (visto che nessuno ci ha chiamato e non c'è portante). Ecco perché cua era una volta usata per chiamate in uscita e ttyS era usata per chiamate in entrata.

A partire dal kernel 2.2, un messaggio di avvertimento verrà immesso nel log del kernel quando si usa cua. Questo è il presagio che cua fra un poco sparirà.


Avanti Indietro Indice