next up previous contents Next:  Cartes modem. Up:  Configuration de divers périphériques. Previous:  Graveurs de CD.   Table des matières  


43.6.12  Périphériques série.

Il n'y a pas de modules à charger pour permettre au clavier et à la souris d'être détectés. Les périphériques série normaux (de COM1 à COM4 sous DOS/Windows) sont auto-détectés à l'amorçage et sont disponibles en tant que fichiers périphériques /dev/ttyS0 à /dev/ttyS3. Un message au démarrage tel que celui-ci:

Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled 
ttyS00 at 0x03f8 (irq = 4) is a 16550A 
ttyS01 at 0x02f8 (irq = 3) is a 16550A 


atteste d'une détection correcte.

En revanche, les cartes série à ports multiples peuvent s'avérer difficile à configurer. Ces périphériques forment une catégorie spéciale de matériel. Pour la plupart, ces périphériques utilisent une puce 16550A UART (Universal Asynchronous Receiver Transmitter) qui est analogue à celle du port série intégré dans votre carte-mère. Le code série générique du noyau les supporte, et vous ne devriez pas utiliser un module séparé. La puce UART consitue réellement le port série et est caractérisée par des sous-types 8250, 16450, 16550, 16550A, 16650, 16650V2 et 16750.

Pour faire fonctionner ces cartes, il vous faudra utiliser la commande setserial. Elle consite à configurer le pilote série intégré au noyau. Un cas typique: la carte ISA non-PnP à 8 ports et à cavaliers (IRQ 5; ports E/S 0x180-0x1BF). Notez que, contrairement à la plupart des périphériques, beaucoup de périphériques série peuvent partager la même IRQ [La raison en est que les périphériques série utilisent un port E/S pour indiquer le périphérique qui envoie une interruption. La CPU vérifie chaque périphérique série chaque fois qu'une interruption a lieu]. La carte est configurée avec ce script:

cd /dev 
./MAKEDEV -v ttyS4 
./MAKEDEV -v ttyS5 
./MAKEDEV -v ttyS6 
./MAKEDEV -v ttyS7 
./MAKEDEV -v ttyS8 
./MAKEDEV -v ttyS9 
./MAKEDEV -v ttyS10 
./MAKEDEV -v ttyS11 
/bin/setserial -v /dev/ttyS4 irq 5 port 0x0180 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS5 irq 5 port 0x0188 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS6 irq 5 port 0x0190 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS7 irq 5 port 0x0198 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS8 irq 5 port 0x01A0 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS9 irq 5 port 0x01A8 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS10 irq 5 port 0x01B0 uart 16550A skip_test 
/bin/setserial -v /dev/ttyS11 irq 5 port 0x01B1 uart 16550A skip_test 


Vous devriez être en mesure d'utiliser des périphériques en tant que ports normaux. Notez que vous devriez vous attendre à voir les interruptions en cours sous /proc/interrupts. Concernant les périphériques série, ceci n'est vrai qu'après que les données aient commencés à fluer. Néanmoins, vous pouvez vérifier le fichier /proc/tty/driver/serial pour obtenir davantage d'information sur l'état des périphériques. La page de man de setserial nous en dit plus long sur les différents UARTs et les problèmes de compatibilité. Elle décrit aussi la technique d'auto-détection de l'UART, des IRQ et des ports E/S (ceci dit il est préférable de toujours d'être sûr des propriétés de votre carte et de ne pas utiliser l'auto-détection).

Les périphériques série engendrent d'innombrables problèmes. Le Serial-HOWTO est d'ailleurs très long. Il vous aidera très certainement à résoudre d'éventuels problèmes car il contient de nombreuses données techniques et discute en profondeur du support spécial du noyau dans le cas de nombreuses cartes non-standards.


next up previous contents Next:  Cartes modem. Up:  Configuration de divers périphériques. Previous:  Graveurs de CD.   Table des matières  
1-01-2006