3. Comment faire fonctionner votre souris

Contenu de cette section

Une fois que vous avez déterminé le type d'interface de votre souris et son protocole, vous êtes prêt à poursuivre.

3.1 Réglage de l'interruption de la souris

Maintenant, vous allez avoir besoin de savoir quelle interruption votre souris utilise, et de vous assurer qu'elle n'entre en conflit avec aucun des autres périphériques que vous avez installés. Ce dernier point mérite d'être répété : assurez-vous qu'elle n'entre en conflit avec aucun des autres périphériques que vous avez installés !

Assurez-vous que votre souris n'essaie pas d'utiliser la même interruption que l'un de vos autres périphériques -- la souris ne peut pas partager une ligne d'interruption sous Linux, même si elle le peut sous d'autres systèmes d'exploitation. Consultez la documentation de tous vos autres périphériques pour voir quelle interruption ils utilisent.

Si vous avez des cartes plug n'play, gardez solidement à l'esprit que, si d'autres systèmes d'exploitation peuvent initialiser ces cartes à une IRQ qui ne serait pas utilisée par votre souris, ce n'est pas le cas de Linux, qui ne fait pas ce type de contrôles. C'est vous qui devez vous assurer que votre l'ensemble de votre équipement ne connaît pas de conflit.

Dans la plupart des cas, l'IRQ4 est utilisée par le premier port série (/dev/ttyS0), l'IRQ3 par le second (/dev/ttyS1) (en supposant que vous ayez réellement ces périphériques -- sinon vous pouvez en toute quiétude utiliser leur IRQ), l'IRQ5 pour certains adaptateurs SCSI, et l'IRQ12 pour certaines cartes réseau. Avoir une carte utilisant l'IRQ12 est un sérieux problème, dans la mesure où vous êtes généralement obligé d'utiliser l'IRQ12 pour le port PS/2 uniquement.

Pour les souris ATI-XL, Inport et Logitech, le noyau utilise par défaut l'IRQ5, donc si vous êtes forcés d'utiliser un noyau pré-compilé (par exemple si vous utilisez Linux à partir d'un CD-ROM), vous devrez faire avec. Si vous utilisez une souris Inport ou Logitech avec un noyau plus récent, vous devriez pouvoir passer une option de ligne de commande au noyau lui indiquant les interruptions que vous utilisez sans avoir à recompiler.

3.2 Les souris Inport et Logitech

Si vous ouvrez le capot de votre ordinateur et regardez la carte sur laquelle se branche votre souris, vous devriez remarquer un bloc de cavaliers sur la carte (avec un peu de chance, il sera indiqué "INTERRUPT"), avec les positions pour les interruptions (aussi appelées IRQ) numéro 2,3,4 et 5. Pour changer d'interruption, déplacez simplement le cavalier de sa position actuelle à la paire de connecteurs appropriée.

******************************************************
***     ASSUREZ-VOUS QUE L'ORDINATEUR EST ETEINT   ***
***         AVANT DE TOUCHER AUX CAVALIERS         ***
******************************************************

3.3 Les souris ATI-XL

Les souris ATI-XL, ainsi que quelques autres souris ATI, ont une interruption réglable par logiciel -- vous devriez avoir reçu avec votre souris un programme MS-DOS (VSETUP.EXE) pour régler l'IRQ. Pour ce faire, vous devez (provisoirement) redémarrer sous MS-DOS et exécuter ce programme. Notez que le programme VSETUP reconnaît un paramètre optionnel " /70 " pour augmenter le taux de rafraîchissement vertical (ce qui diminue le scintillement). Le programme VSETUP vous permet également de choisir entre l'adresse primaire et l'adresse secondaire -- vous avez intérêt à sélectionner l'adresse primaire, sinon le noyau ne sera pas capable de détecter votre souris.

Une fois que VSETUP aura été exécuté, vous devrez faire un redémarrage matériel (hard reset) pour que la nouvelle configuration prenne effet.

3.4 Les souris PS/2

Les souris PS/2 utilisent toujours l'IRQ 12 -- il n'y a aucun moyen de le changer (sinon au fer à souder). Dans le cas (rare) où un autre périphérique utilise l'IRQ 12, il vous faudra le reconfigurer pour qu'il utilise une autre ligne d'interruption.

3.5 Configuration du noyau

Pour que votre souris bus fonctionne correctement, vous devrez recompiler le noyau en y intégrant le support de souris bus. Si vous utilisez un noyau précompilé, sachez que ces noyaux sont souvent munis d'un support intégré des trois souris bus. Ce ne sera peut-être pas suffisant. Le noyau pourrait essayer d'utiliser une mauvaise interruption, ou la détection pourrait s'embrouiller et se tromper de type de souris. Dans le doute, essayez de recompiler votre noyau avec seulement le support de votre type de souris, et configurez-le afin qu'il utilise l'interruption correcte.

Compilation du noyau

Allez dans le répertoire du noyau (on suppose ici qu'il s'agit de /usr/src/linux) et faites un

make config

Si vous n'êtes pas sûr du type de votre souris, la première fois que vous recompilez le noyau, vous pouvez sélectionner toutes les souris bus qui vous sont proposées en option, dans l'espoir que le noyau détecte automatiquement le bon type. Cette méthode a un succès mitigé : ça ne marche pas toujours, mais d'un autre côté ça peut vous éviter d'avoir à recompiler le noyau plusieurs fois.

Répondez "y"ou "m" à la question concernant votre type d'interface et "n" à toutes les autres questions concernant les souris bus. Utilisez l'option "m" si la configuration de votre système permet le chargement des modules. Si ce n'est pas le cas, ou si vous ne pas comprenez de quoi il s'agit, il n'y a aucun inconvénient à répondre "y", ce qui intégrera directement le support dans le noyau.

Par exemple, si vous avez une souris Inport, vous devriez répondre "y" à la question

Microsoft busmouse support
et "n" à toutes les autres questions sur les souris bus. Répondez comme d'habitude à toutes les questions qui ne concernent pas les souris.

Pour compiler le noyau avec le support des souris PS/2, répondez "y" à la question

PS/2 mouse (aka "auxiliary device") support

Le pilote de souris PS/2 reconnaît en fait deux types de périphériques : le contrôleur standard PS/2 et une interface PS/2 spéciale de chez Chips &Technologies, qui est utilisée dans les portables Texas Instruments Travelmate et Gateway Nomad. Pour compiler le support des trackballs sur ces machines, répondez "y" à la question

C&T 82C710 mouse port support (as on TI Travelmate)

Notez que vous devrez toujours répondre "y" à la question sur le pilote PS/2 standard pour avoir la possibilité de répondre à cette question, puisque le pilote 82C710 en est en fait un supplément.

Une fois configuré le pilote à la fois pour une interface PS/2 standard et pour le contrôleur 82C710, le pilote se met d'abord à chercher une puce 82C710 lors du démarrage. S'il échoue, le pilote standard est utilisé à la place, donc un noyau configuré pour les deux types d'interfaces devrait aussi fonctionner sur une machine dotée d'un port PS/2 standard. Toutefois, il y a eu un cas reporté où le pilote a détecté par erreur un processeur 82C710, alors pour mettre toutes les chances de votre côté, ne choisissez pas le support du 82C710 si vous n'en avez pas besoin.

Compilez votre nouveau noyau et redémarrez normalement.

Maintenant, vous allez pouvoir indiquer au noyau quelle interruption est utilisée par votre souris. Vous pouvez sauter cette étape si vous avez une souris PS/2, qui utilise toujours l'IRQ 12.

Si vous avez une souris Logitech, Inport, ou une souris ATI qui utilise le protocole Logitech, éditez le fichier /usr/src/linux/include/linux/busmouse.h et changez la ligne :

#define MOUSE_IRQ 5

pour correspondre à l'IRQ réellement utilisée par votre souris.

Si vous avez une souris ATI-XL, éditez le fichier /usr/src/linux/drivers/char/atixlmouse.c et changez la ligne :

#define ATIXL_MOUSE_IRQ 5

pour correspondre à l'IRQ réellement utilisée par votre souris.

À cause des caprices de l'architecture PC, si votre souris utilise l'IRQ 2, vous devez écrire IRQ 9 dans le #define.

Exemples :

Pour une souris sur l'IRQ 3, modifiez la ligne comme suit :

#define MOUSE_IRQ 3

Pour une souris sur l'IRQ 2, modifiez la ligne comme suit :

#define MOUSE_IRQ 9

Ensuite, compilez le noyau selon les instructions qui l'accompagnent et redémarrez avec le nouveau noyau. Le support de votre souris bus devrait maintenant être correctement inclus dans le noyau compilé.

Sélection

Dans les anciens noyaux, il fallait préciser à la compilation du noyau le support du programme selection (qui permettait de faire du copier-coller dans les consoles virtuelles en mode texte de la même façon que sous X). Cette option n'apparaît plus dans les noyaux récents, et le programme selection a été généralement remplacé par gpm (voir la section gpm pour plus de détails).

Si vous utilisez un noyau ancien, vous pouvez répondre "y" à cette question quel que soit votre type de souris, dans le but de pouvoir utiliser selection.

Modification des interruptions sous un noyau récent

Ces indications concernant la modification des interruptions utilisées par le noyau fonctionnent sous n'importe quelle version. Les noyaux plus récents (à partir de quelque part dans les 2.x.x) permettent de passer des arguments au noyau pendant le démarrage, par le biais de LILO ou LOADLIN, afin de préciser le numéro d'interruption concernant les souris Logitech et Microsoft Inport. Cela peut vous faire gagner pas mal de temps si vous pouvez éviter de recompiler le noyau (ou d'apprendre à le faire). Si vous avez configuré votre noyau de façon à charger le pilote souris en tant que module, vous devrez alors faire passer ces informations au chargement du module.

Vos pouvez ajouter les options suivantes à la ligne de commande concernant votre démarrage dans LILO :

bmouse=3 (pour une souris Logitech)
msmouse=3 (pour une Microsoft Inport)

Remplacez les 3 par le numéro d'interruption de votre souris. Voici un exemple de cette méthode avec LILO :

LILO:linux msmouse=3

Vous pouvez consulter vos documentations de LILO et LOADLIN pour savoir comment ajouter des informations à leurs fichiers de configuration, afin de n'avoir pas à les taper à la main à chaque démarrage.

Si vous utilisez les modules, vous pouvez définir les interruptions manuellement, en utilisant insmodcomme suit :

insmod msbusmouse.o mouse_irq=3 (souris Inport)
insmod busmouse.o mouse_irq=3 (Logitech)

Si votre système utilise kerneld pour charger les modules automatiquement, vous pouvez éditer votre fichier /etc/conf.modules ou /etc/modules.conf (celui que votre système utilise), et y ajouter une des lignes suivantes :

options msbusmouse mouse_irq=3
options busmouse mouse_irq=3

3.6 Les périphériques associés aux souris.

Sous Linux, on accède aux souris via les périphériques du répertoire /dev. Le tableau qui suit donne la liste des types d'interfaces et des périphériques associés.

INTERFACE        PERIPH.        MAJEUR    MINEUR
---------------------------------------------
Logitech        /dev/logibm      10       0
PS/2            /dev/psaux       10       1
Inport          /dev/inportbm    10       2
ATI-XL          /dev/atibm       10       3

             Tableau 1.  Peripheriques associes aux souris.

Note :

Si vous utilisez votre souris ATI-XL avec le pilote Inport, vous devez utiliser le périphérique /dev/inportbm, et non pas le périphérique /dev/atibm.

Les colonnes majeur et mineur donnent les numéros de périphérique correspondants.

Si vous n'avez pas ces périphériques, il vous faut tout d'abord les créer. Pour ce faire, vous devez executer ce qui suit (en tant que root)

mknod /dev/logibm   c 10 0
mknod /dev/psaux    c 10 1
mknod /dev/inportbm c 10 2
mknod /dev/atibm    c 10 3

Note :

Il y a un certain temps dans l'histoire (de moins en moins) récente de Linux, le nom des périphériques ont changé. Les noms suivants ont été remplacés par ceux donnés plus haut, et doivent être effacés: bmousems, bmouseps2, bmouseatixl, bmouselogitech.

Nombreux sont ceux qui aiment à créer un lien symbolique entre le périphérique associé à leur souris et /dev/mouse de façon à ne pas avoir à se rappeler quel périphérique ils doivent utiliser. Si vous avez une distribution récente de Linux, vous avez certainement un tel lien. Si c'est le cas, ou si vous créez ce lien, assurez-vous qu'il pointe bien sur le périphérique correspondant à votre type de souris.


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