The Linux Busmouse Howto, version francaise Mike Battersby, mike@starbug.apana.org.au 1.2, 1994/08/02 11.. IInnttrroodduuccttiioonn Ce document est un guide pour utiliser votre souris "bus" avec Linux. Je l'ai ecrit dans l'espoir que les dix personnes par jour qui postent la question _C_o_m_m_e_n_t _e_s_t_-_c_e _q_u_e _j_e _p_e_u_x _f_a_i_r_e _m_a_r_c_h_e_r _m_a _s_o_u_r_i_s _"_b_u_s_" dans les newsgroups comp.os.linux.* puissent le lire avant, mais je ne retiendrai pas ma respiration. Aussi loin que je me souvienne, le support des souris "bus" a toujours ete inclus dans le noyau, et il n'a pas subit de modification recente ; en consequence ce document devrait etre applicable quelle que soit la version de Linux que vous ayez. 11..11.. AAvveerrttiisssseemmeenntt Les informations dans ce document sont correctes d'apres mes connaissances, mais il y a toujours une chance que j'aie fait quelques erreurs, alors ne suivez pas tout aveuglement, surtout si cela vous semble incorrect. Rien dans ce document ne devrait pouvoir endommager votre ordinateur, mais au cas ou, je ne prends aucune responsabilite dans les dommages que pourraient provoquer les informations contenues ici. Microsoft(R) est une marque deposee de Microsoft Corporation. [ quelqu'un a des marques deposees pour d'autres souris ? --- Mike ] 11..22.. RReettoouurr dd''iinnffoorrmmaattiioonn Si vous trouvez des erreurs dans ce document, si vous avez des commentaires a propos de son contenu, des mises a jour ou quelque chose a ajouter, envoyez le moi a l'adresse figurant au debut de ce howto. 11..33.. RReemmeerrcciieemmeennttss Ce howto a ete, dans l'esprit de Linux, un effort de groupe. Merci beaucoup a Johan Myreen pour les sections sur les souris PS/2, a Robert T. Harris pour son aide pour les sections ATI-XL, et a Reuben Sumner pour ses informations diverses et ses critiques constructives. Merci egalement a la multitude de gens qui m'ont envoye des informations a propos des souris, des corrections ou des encouragements. 22.. DDeetteerrmmiinnaattiioonn dduu ttyyppee ddee vvoottrree ssoouurriiss Il y a deux caracteristiques differentes mais importantes que vous avez besoin de connaitre concernant votre souris avant d'aller plus loin: l'interface qu'elle utilise, et le protocole qu'elle utilise. L'interface est l'aspect materiel de la souris, prenant en compte des choses comme le port d'entree/sortie qu'elle utilise et comment verifier si elle est installee. C'est cette partie qui concerne plus le noyau, pour qu'il sache comment lire les donnees envoyees par la souris. Le protocole est l'aspect logiciel de la souris. Les applications ont besoin de connaitre le protocole pour interpreter les donnees brutes de la souris qu'elles recoivent du noyau. 22..11.. LLeess iinntteerrffaacceess ddee ssoouurriiss Le noyau de Linux reconnait quatre types differents de souris: Inport (Microsoft), Logitech, PS/2 et ATI-XL. La majorite des souris ont une interface Inport, bien que les interfaces PS/2 deviennent plus populaires ces derniers temps. Il n'y a pas de methode miracle pour determiner le type d'interface de votre souris --- les constructeurs de souris font generalement leur propre bricolage des que cela concerne les standards. Les sections suivantes devraient vous aider, sinon il faudra vous debrouiller tout seul ! 22..22.. LLeess ssoouurriiss IInnppoorrtt Elles comprennent la plupart des souris Microsoft ancien style, qui ont la forme d'un pain de savon Dove. Les utilisateurs americains qui ont achete des ordinateurs Gateway noteront que les souris fournies ne sont pas des souris Inport mais des souris PS/2 (voir plus bas). Les souris Inport se connectent generalement a une carte d'interface qui se branche sur le bus de la carte mere. Si la prise du cable de votre souris est ronde, si elle a 9 contacts et une encoche sur l'un des cotes, vous avez certainement une souris Inport. Pour autant que je puisse en juger, et a part les souris ATI-XL, toutes les souris ATI (comme celles des cartes Graphics Ultra) sont de vraies souris Inport. 22..33.. LLeess ssoouurriiss LLooggiitteecchh Les souris Logitech, en general, ressemblent comme deux gouttes d'eau aux souris Inport. Elles aussi se connectent a une carte d'interface via une prise mini-din a 9 connecteurs. Elles sont d'habitude livrees dans des boites Logitech, ou bien il y a marque "Logitech" sur la carte d'interface, de facon a ce qu'on puisse reconnaitre que c'est une souris Logitech. Il y a aussi de tres anciennes souris Microsoft (celles avec un roulement a billes sur le dessous, en plus de la bille de la souris, et un connecteur DB9) qui utilisent le protocole Logitech. 22..44.. LLeess ssoouurriiss PPSS//22 Les souris PS/2 ne sont pas reellement des souris qui se connectent sur le bus. L'interface des souris PS/2 n'est pas sur une carte d'extension, la souris etant connectee au port de peripherique auxiliaire PS/2 sur le controleur clavier. Une souris PS/2 est munie d'une prise mini-DIN a 6 connecteurs, similaire a la prise du clavier. Beaucoup de portables utilisent egalement ce type d'interface pour leur trackball --- mis a part le connecteur, bien sur. 22..55.. LLeess ssoouurriiss AATTII--XXLL Les souris ATI-XL sont une variante des souris Inport, avec de legeres differences. Elle sont fournies avec les cartes ATI-XL combinant l'adaptateur video et l'interface souris. A moins que vous ne soyez sur d'avoir une carte ATI-XL (et donc une souris ATI-XL), vous n'avez probablement pas une telle souris. Les souris ATI-XL peuvent utiliser au choix les pilotes ATI-XL ou Inport du noyau, bien que le pilote ATI-XL donne de meilleurs resultats. 22..66.. LLeess pprroottooccoolleess ddee ssoouurriiss Le monde des PC est rempli de protocoles differents, et qui entrent en conflit les uns avec les autres. Heureusement, le choix de souris se connectant sur le bus est considerablement plus reduit que celui des souris serie. La plupart des souris Inport, Logitech et ATI-XL utilisent le protocole "BusMouse", bien que certaines anciennes souris Logitech utilisent le protocole "MouseSystem", et certaines souris encore plus anciennes qui utilisent le protocole "Logitech". Les souris PS/2 utilisent le protocole PS/2. 33.. CCoommmmeenntt ffaaiirree ffoonnccttiioonnnneerr vvoottrree ssoouurriiss Une fois que vous avez determine le type d'interface de votre souris, et son protocole, vous etes pret a poursuivre. 33..11.. RReeggllaaggee ddee ll''iinntteerrrruuppttiioonn ddee llaa ssoouurriiss 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 peripheriques que vous avez installes. Assurez-vous que votre souris n'essaye pas d'utiliser la meme interruption que l'un de vos autres peripheriques --- la souris ne peut pas partager son interruption sous Linux, meme si elle le peut sous d'autres systemes d'exploitation. Consultez la documentation de tous vos autres peripheriques pour voir quelle interruption ils utilisent. Dans la plupart des cas, l'IRQ4 est utilisee par le premier port serie (/dev/ttyS0), l'IRQ3 par le second (/dev/ttyS1) (en supposant que vous ayez reellement ces peripheriques --- sinon vous pouvez en toute quietude utiliser leur IRQ), et l'IRQ5 pour certains adaptateurs SCSI. Notez que pour les souris ATI-XL, Inport et Logitech, le noyau utilise par defaut l'IRQ5, donc si vous etes forces d'utiliser un noyau pre- compile (par exemple si vous utilisez Linux a partir d'un CD-ROM), vous devrez utiliser l'IRQ5. 33..22.. LLeess ssoouurriiss IInnppoorrtt eett LLooggiitteecchh 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 (normalement baptise "INTERRUPT") avec les positions pour les interruptions (aussi appelee IRQ) numero 2,3,4 et 5. Pour changer d'interruption, deplacez simplement le cavalier de sa position actuelle a la paire de connecteurs appropriee. ****************************************************** *** ASSUREZ-VOUS QUE L'ORDINATEUR EST ETEINT *** *** AVANT DE TOUCHER AUX CAVALIERS *** ****************************************************** 33..33.. LLeess ssoouurriiss AATTII--XXLL Les souris ATI-XL ont une interruption reglable par logiciel - vous devriez avoir recu avec votre souris un programme MS-DOS (VSETUP.EXE) pour regler l'IRQ. Pour ce faire, vous devez (provisoirement) demarrer MS-DOS et executer ce programme. Notez que le programme VSETUP reconnait un parametre optionnel "/70" pour augmenter le taux de rafraichissement vertical (ce qui diminue le scintillement). Le programme VSETUP vous permet egalement de choisir entre l'adresse primaire et l'adresse secondaire - vous avez interet a selectionner l'adresse primaire, sinon le noyau ne sera pas capable de detecter votre souris. Une fois que VSETUP aura ete execute, vous devrez faire un reset "hard" pour que la nouvelle configuration prenne effet. 33..44.. LLeess ssoouurriiss PPSS//22 Les souris PS/2 utilisent toujours l'IRQ 12 -- il n'y a aucun moyen de changer ca (a part avec un fer a souder). Si jamais un autre peripherique utilise l'IRQ 12, il vous faudra reconfigurer ce peripherique pour qu'il utilise un autre IRQ. 33..55.. CCoommppiilleerr llee nnooyyaauu Pour que votre souris bus fonctionne correctement, vous devrez recompiler le noyau en y integrant le support de souris bus. Allez dans le repertoire du noyau (on suppose ici qu'il s'agit de /usr/src/linux) et faites un make config Si vous n'etes pas sur du type de votre souris, la premiere fois que vous recompilez le noyau, vous pouvez selectionner toutes les souris bus qui vous sont proposees en option, dans l'espoir que le noyau detectera automatiquement le type de votre souris. Cette methode a un succes mitige : ca ne marche pas toujours, mais d'un autre cote, ca peut vous eviter d'avoir a recompiler le noyau plusieurs fois. 33..55..11.. LLeess ssoouurriiss IInnppoorrtt,, LLooggiitteecchh eett AATTII--XXLL.. Repondez "y" a la question correspondant a votre type de souris bus, et "n" a toutes les autres questions concernant les souris bus. Par exemple, si vous avez une souris Inport, vous devriez repondre "y" a la question Microsoft busmouse support et "n" a toutes les autres questions sur les souris bus. Repondez comme d'habitude a toutes les questions qui ne concernent pas les souris. Si vous avez une souris Logitech ou Inport, editez le fichier /usr/src/linux/include/linux/busmouse.h et changez la ligne qui dit #define MOUSE_IRQ 5 pour correspondre a l'IRQ reellement utilise par votre souris. (voir la section ``Reglage de l'interruption de la souris'' pour les details concernant la determination de l'IRQ). Si vous avez une souris ATI-XL, editez le fichier /usr/src/linux/drivers/char/atixlmouse.c et changez la ligne qui dit #define ATIXL_MOUSE_IRQ 5 pour correspondre a l'IRQ reellement utilise par votre souris. A cause des caprices de l'architecture des PC, si votre souris utilise l'IRQ 2, vous devrez modifier le fichier en entrant l'IRQ 9 a la place. 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 bootez avec le nouveau noyau. Le support de votre souris bus devrait maintenant etre correctement inclus dans le noyau compile. 33..55..22.. LLeess ssoouurriiss PPSS//22 Pour compiler le noyau avec le support des souris PS/2, repondez "y" a la question PS/2 mouse (aka "auxiliary device") support Le pilote de souris PS/2 reconnait actuellement deux types de controleurs : le Controleur standard PS/2 et une interface PS/2 speciale de chez Chip & Technologies, qui est utilisee dans les portables Texas Instruments Travelmate et Gateway Nomad. Pour compiler le support des trackballs sur ces machines, repondez "y" a la question C&T 82C710 mouse port support (as on TI Travelmate) Notez que vous devrez toujours repondre "y" a la question sur le pilote PS/2 standard pour avoir la possibilite de repondre a cette question, puisque le pilote 82C710 est actuellement un supplement au pilote de souris PS/2 standard. Une fois que vous aurez configure le pilote a la fois pour une interface PS/2 standard et pour le controleur 82C710, le pilote cherche un processeur 82C710 lors du boot. Si cela echoue, le pilote standard est utilise a la place, donc un noyau configure pour les deux types d'interfaces devrait aussi fonctionner sur une machine dotee d'un port PS/2 standard. Toutefois, il y a eu un cas reporte ou le pilote a detecte par erreur un processeur 82C710, alors pour mettre toutes les chances de votre cote, ne choisissez pas le support du 82C710 si vous n'en avez pas besoin. Compilez votre nouveau noyau et bootez normalement. 33..55..33.. SSeelleeccttiioonn Quel que soit le type de votre souris, repondez "y" a la question Selection (cut and paste for virtual consoles) si vous voulez utiliser le programme selection (voir la section ``selection'' pour plus de details). 33..66.. LLeess ppeerriipphheerriiqquueess aassssoocciieess aauuxx ssoouurriiss.. Sous Linux, on accede aux souris via des peripheriques dans le repertoire /dev. Le tableau qui suit donne la liste des types d'interfaces et des peripheriques associes. INTERFACE PERIPH. MAJOR MINOR --------------------------------------------- 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. NNoottee:: Si vous utilisez votre souris ATI-XL avec le pilote Inport, vous devez utiliser le peripherique /dev/inportbm, et non pas le peripherique /dev/atibm. Les colonnes major et minor donnent les numeros de peripherique pour le peripherique concerne. Si vous n'avez pas ces peripheriques, il vous faut tout d'abord les creer. 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 NNoottee:: Il y a un certain temps dans l'histoire de Linux, le nom des peripheriques ont change. Les noms suivants ont ete remplaces par ceux donnes plus haut, et doivent etre effaces: bmousems, bmouseps2, bmouseatixl, bmouselogitech. Beaucoup de personnes aiment creer un lien symbolique entre le peripherique associe a leur souris et /dev/mouse de facon a ne pas avoir a se souvenir a quel peripherique ils doivent faire reference. Si vous avez une distribution recente de Linux, vous avez certainement un tel lien. Si c'est le cas, ou si vous creez ce lien, assurez vous qu'il pointe bien sur le peripherique correspondant a votre type de souris. 33..77.. TTeesstteezz vvoottrree ssoouurriiss Recuperez le fichier selection-1.6.tar.gz sur votre site ftp Linux favori, et compilez le programme "test-mouse" fournis, en suivant les instructions (tout ce que vous devriez avoir a faire, c'est taper "make test-mouse"). Lancez le programme comme suit: test-mouse -t -m ou est "bm" (sans les guillemets) si vous utilisez le pro- tocole BusMouse, ou "ps2" si vous utilisez le protocole PS/2, et est le peripherique associe a votre souris dans le tableau 1. Si votre souris fonctionne correctement, vous devriez pouvoir dessiner sur l'ecran en appuyant sur le bouton gauche ou droit de la souris et en deplacant la souris. Appuyez sur les deux boutons simultanement pour sortir du programme. 44.. UUttiilliisseezz vvoottrree ssoouurriiss 44..11.. SSeelleeccttiioonn Selection est un programme qui vous permet de realiser des operations de copier-coller entre differents terminaux virtuels sous Linux. Vous pouvez trouver Selection dans le fichier selection-1.6.tar.gz sur votre site ftp Linux prefere (comme sunsite.unc.edu par exemple), fichier qui contient les instructions pour compiler le programme. Certaines distributions, comme la Slackware, fournissent le programme selection sous forme d'executable pre-compile. Lorsque vous lancez selection, utilisez l'option -t pour indiquer le protocole de votre souris, et l'option -m pour indiquer le peripherique associe a votre souris. L'option par defaut est le peripherique /dev/mouse , vous pouvez donc omettre l'option -m si vous avez fait le lien symbolique approprie. Par exemple, si vous utilisez le protocole BusMouse, selection devra etre lance ainsi: selection -t bm ou si vous utilisez le protocole PS/2: selection -t ps2 Vous devriez ensuite pouvoir couper et coller entre les differents terminaux virtuels en utilisant les boutons de la souris. Lisez la documentation de selection ou tapez "man selection" pour plus d'informations sur l'utilisation de ce programme. On a signale quelques cas ou selection ne fonctionne pas correctement avec les trackballs de certains portable (avec l'interface PS/2). En remplacant la ligne { 0xcc, 0x00, 0x00, 0x00, 3 } /* PS/2 */ dans le fichier source de selection appele mouse.c par la ligne { 0xcc, 0x08, 0x00, 0x00, 3 } /* PS/2 */ vous avez une chance de resoudre le probleme si vous ne pouvez vous y prendre autrement. 44..22.. XXFFrreeee8866 Pour utiliser votre souris bus sous Xfree86, vous devez indiquer le protocole de votre souris dans votre fichier Xconfig. Si vous utilisez le protocole BusMouse, votre fichier Xconfig devrait contenir la ligne suivante (y compris les guillemets) Busmouse "/dev/mouse" Pour les souris PS/2 il devrait contenir ps/2 "/dev/mouse" Si vous avez une souris a deux boutons, ajoutez la ligne Emulate3Buttons qui vous permettra de simuler la presence d'un troisieme bouton en pressant simultanement les deux boutons. Toutes les autres lignes se rapportant a la souris, comme "BaudRate" et "SampleRate" doivent etre commentees, car elles n'ont aucun effet sur les souris bus. 44..33.. XXFFrreeee8866 eett sseelleeccttiioonn Contrairement aux souris serie, on ne peut pas partager les souris bus entre les differents processus. Cela signifie que vous devrez interrompre toutes les copies de "selection" (voir la section ``selection'') que vous avez lancees avant de pouvoir lancer Xfree86. Si vous essayez de lancer X alors que le programme selection est en cours d 'execution, vous obtiendrez des erreurs du type : Fatal server error: Cannot open mouse (Device or resource busy) La version 1.6 de selection vous permet de stopper les copies de selection en cours d'execution en tapant selection -k Cela doit etre fait avant de lancer X11. Vous voudrez peut-etre ajouter une ligne au debut de votre script startx pour que votre souris soit desactivee automatiquement. Si vous avez une version plus ancienne de selection qui ne reconnait pas l'option -k, vous devrez stopper selection manuellement. 55.. VVoouuss nnee ppoouuvveezz ttoouujjoouurrss ppaass ffaaiirree ffoonnccttiioonnnneerr vvoottrree ssoouurriiss ?? Alors comme ca, vous avez lu ce howto une douzaine de fois, tout fait scrupuleusement comme vous pensez que vous deviez le faire, et votre souris refuse encore de fonctionner ? Le meilleur conseil que je puisse vous donner est: faites des essais. C'est sur, c'est un sacre travail, mais au bout du compte la seule facon de savoir ce qui va marcher ou non avec votre souris, c'est d'essayer toutes les solutions jusqu'a ce que vous trouviez la bonne. Comme toujours, si il y a quelque chose que vous ne comprenez pas, lisez d'abord la page du manuel, et voyez si ca ne vous aide pas. Si vous avez une question specifique, ou un probleme pour lequel vous pensez que je peux vous aider, n'hesitez pas a me contacter a l'adresse qui figure au debut de ce howto, et je verrai si je peux vous aider ou vous diriger vers quelqu'un qui le peut. Le newsgroup comp.os.linux.help est l'endroit tout indique pour les discussions et/ou les questions concernant les souris, alors s'il vous plait, ne postez pas ces questions dans d'autres groupes, et en particulier ne cross-postez pas de questions dans 2 ou plus groupes de la hierarchie Linux, ils sont deja assez en desordre comme ca ! Lorsque vous postez une question, vous aurez une meilleure reponse (et bien moins de "flames") si vous utilisez a bon escient les lignes Subject: et Keywords:. Par exemple Subject: BUSMICE - Gateway 2000 mouse wont work. Keywords: mouse busmouse gateway Traduction effectuee par Patrick Robbe (100423.2174@compuserve.com)