3. Comment se nomment les ports série ?

Contenu de cette section

Un port d'E/S permet de recevoir des données depuis, et d'en envoyer à partir d'un ordinateur. Il existe plusieurs types de ports d'E/S, comme les ports série, les ports parallèles, les contrôleurs de disques durs, les cartes Ethernet, etc. Les modems et les terminaux dont nous allons traiter n'utilisent que des ports série. Chacun de ces ports possède une adresse d'E/S, et un vecteur d'interruption (IRQ). Les quatre ports série suivants correspondent à COM1 - COM4 :

ttyS0 (COM1) adresse 0x3f8 IRQ 4
ttyS1 (COM2) adresse 0x2f8 IRQ 3
ttyS2 (COM3) adresse 0x3e8 IRQ 4
ttyS3 (COM4) adresse 0x2e8 IRQ 3
Si aucun port série n'est détecté lors de l'amorçage de Linux, assurez-vous que leur support a été sélectionné et compilé dans le noyau. Dans ce document, je me réfère à COM1 pour ttyS0, COM2 pour ttyS1, COM3 pour ttyS2, et à COM4 pour ttyS3. Par défaut, ces ports ont des IRQ communes, et vous ne pouvez pas les utiliser simultanément dans cette configuration. Certaines de ces IRQ doivent être réassignées. Reportez-vous à la section Puis-je utiliser plus de deux ports série ? .

Sur certaines installations, deux périphériques supplémentaires vont être créés : /dev/modem pour le modem et /dev/mouse pour la souris. Ce sont des liens symboliques sur le périphérique approprié (dans le répertoire /dev) que vous avez spécifié lors de l'installation. Si vous possédez une souris de type bus PS/2, /dev/mouse pointera correctement sur le périphérique de la souris bus.

Plusieurs discussions ont porté sur les avantages et inconvénients de ces pseudo-périphériques /dev/mouse et /dev/modem. Personnellement, je décourage fortement l'utilisation de ces liens. En particulier, si vous prévoyez d'employer plusieurs modems pour les connexions entrantes sur /dev/modem, des problèmes peuvent apparaître à cause des fichiers de verrouillage (lock files). Vous pouvez néanmoins les utiliser si vous le désirez, mais assurez-vous qu'ils pointent bien sur les bons périphériques. Cependant, si vous supprimez ces liens, certaines applications (comme minicom) peuvent ne plus fonctionner sans reconfiguration.

3.1 Périphériques série et numéros dans /dev

/dev/ttyS0 majeur 4, mineur 64         /dev/cua0 majeur 5, mineur 64
/dev/ttyS1 majeur 4, mineur 65         /dev/cua1 majeur 5, mineur 65
/dev/ttyS2 majeur 4, mineur 66         /dev/cua2 majeur 5, mineur 66
/dev/ttyS3 majeur 4, mineur 67         /dev/cua3 majeur 5, mineur 67
Remarque : toutes les distributions doivent être livrées avec ces périphériques déjà correctement configurés, ce que vous pouvez vérifier en tapant les commandes :
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*

Créer les périphériques dans /dev

Si un périphérique est absent, vous devez le créer avec la commande mknod. Par exemple, pour ttyS0 :

linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
Le script MAKEDEV, situé dans le répertoire /dev, peut être utilisé pour simplifier leur création. Par exemple, pour ttyS0 :
linux# cd /dev
linux# ./MAKEDEV ttyS0
Cette commande crée les périphériques d'entrée et de sortie correspondants, et positionne également les bonnes permissions.

3.2 Remarques pour les cartes multiports simples

Les périphériques utilisés par les cartes multiports sont dépendants du type de carte que vous possédez. Ils sont listés en détail dans le fichier rc.serial fourni avec le programme setserial. Je recommande vivement de récupérer la version la plus récente de setserial si vous devez utiliser une telle carte. Vous devrez alors sûrement créer ces périphériques, soit avec la commande mknod, soit avec le script MAKEDEV. Ils doivent être déclarés en ajoutant 64 au numéro du port. Par exemple, pour ttyS17 :

linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
Car ``64 + 17 = 81''. En utilisant le script MAKEDEV, il suffit d'entrer :
linux# cd /dev
linux# ./MAKEDEV ttyS17

Remarque : le listing des ports COM5-COM8 pour les IO1812 est erroné dans le manuel SIIG. Les valeurs doivent être remplacées par COM5=0x250, COM6=0x258, COM7=0x260, et COM8=0x268.

Remarque : le registre d'état d'interruption (Interrupt Status Register) de la carte Digi PC/8 se trouve en 0x140.

Remarque : pour la carte AST Fourport, le fichier rc.serial doit spécifier le paramètre skip_test.

3.3 Remarques pour les cartes multiports intelligentes

Lisez les informations fournies avec le gestionnaire. Ces cartes utilisent des périphériques non-standards. Ces informations varient suivant le matériel.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre