Page suivante Page précédente Table des matières

3. Comment faire fonctionner votre souris

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 que vous avez trouvé quelle interface matérielle utilise votre souris, 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.

Les souris à bus sous Linux ne déclarent pas quelle IRQ elles utilisent jusqu'à ce qu'elles soient sollicitées par une application. Les matériels Plug-n-Play déclarent souvent leurs interruptions pendant la phase de démarrage. Cela rend possible qu'une carte Plug-n-Play de votre matériel s'empare de l'IRQ de votre souris. Gardez à l'esprit que, si d'autres systèmes d'exploitation peuvent initialiser ces cartes à une IRQ qui n'est pas utilisée par votre souris, les choses peuvent ne pas être aussi simples avec Linux. C'est à vous de vous assurer que 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ù généralement, vous ne pouvez utiliser que l'IRQ12 pour le port PS/2.

Pour les souris ATI-XL, Inport et Logitech, le noyau utilise par défaut l'IRQ5, donc si vous êtes forcé 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 par la ligne de commande au noyau, lui indiquant les interruptions que vous utilisez, sans avoir à recompiler.

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 ÉTEINT   ***
***         AVANT DE TOUCHER AUX CAVALIERS         ***
******************************************************

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 à froid (hard reset) pour que la nouvelle configuration prenne effet.

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.2 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 la série pre-2.4 des noyaux il n'y a pas de support pour l'auto-détection de l'IRQ qu'une souris à bus utilise. Donc si votre carte est configurée pour autre chose que la valeur par défaut IRQ5 du noyau, vous allez avoir besoin de faire reconnaître au noyau l'IRQ effectivement utilisée. Cela peut être fait plusieures manières. La plus simple est de passer l'information au noyau au moment du démarrage dans une ligne de commande. Lire s'il-vous-plait la section Compilation du noyau mais après avoir d'abord lu la section Modification des interruptions sous un noyau récent. Une grande aide dans ce type de problème : le Bootprompt-HOWTO, disponible sur la plupart des sites qui distribuent ce HOWTO.

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 devrez 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 Chips &Technologies, qui est utilisée pour 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 auparavant avoir répondu "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.

Lorsqu'il est configuré à la fois pour une interface PS/2 standard et pour le contrôleur 82C710, le pilote recherche d'abord 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 rapporté 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 (Cf. la section Réglage de l'interruption de la souris pour des détails concernant le réglage de l'IRQ)

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é.

Modification des interruptions avec un noyau récent

Ces indications concernant la modification des interruptions utilisées par le noyau fonctionnent avec 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 lors de votre démarrage avec 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 ne pas avoir à 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.3 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 les 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.  Périphériques associés 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 exécuter 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 a 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.


Page suivante Page précédente Table des matières