Forum Linux.général Bouton manquant sur cordless trackman optical

Posté par  .
Étiquettes : aucune
0
28
sept.
2004
J'ai un trackball Logitech Cordless Trackman Optical qui possède 8 boutons.

Le problème est que je n'arrive pas à faire réagir le 8e bouton, avec un cadenas dessus (drag lock button). xev ne donne pas de réponse.

J'ai tenté avec Option "Buttons" "8" mais ça n'a pas marché.

Je suis en train de me demander si il n'y a pas plus de boutons sur le trackball car la molette est considéré comme 4 et 5.

Quelqu'un a réussi à faire réagir ce bouton ?
  • # heu ...

    Posté par  . Évalué à 2.

    serait il indiscret de demander a quoi te servent autant de boutons ?
    • [^] # Re: heu ...

      Posté par  . Évalué à 1.

      Back, Forward, home, End et double click sur la souris, pendant le surf, c'est salvateur.
  • # pas expert en X

    Posté par  . Évalué à 1.

    mais voyons un peut.
    Desolé mais j'analyse le pb dans l'autre sens (bas niveau-haut niveau).
    J'en deduis que sous X tu ne vois aucune reaction a ton appuie sur le bouton en question.

    Quel est le drivers que ton periph utilise ? (un module X?)

    Si c'est un module USB (et la c'est qu'une hyppothese) peut etre qu'il n'est pas specifique a ton trackball et qu'il ne gere pas le 8eme bouton tout simplement ?
    A partir de plus d'information je pourrais peut etre t'aider a investiguer dans ce sens la...
    • [^] # Re: pas expert en X

      Posté par  . Évalué à 1.

      dans mon fichier de conf XFree :

      Section "InputDevice"
      Identifier "Trackball"
      Driver "mouse"
      Option "Device" "/dev/usb/input"
      Option "Protocol" "ExplorerPS/2"
      Option "Buttons" "8"
      Option "ZAxisMapping" "4 5"
      Option "AngleOffset" "-32"
      EndSection

      et j'avais le même problème avec Protocol sur ImPS/2
      • [^] # Re: pas expert en X

        Posté par  . Évalué à 1.

        Option "Device" "/dev/usb/input"
        montre l'utilisation d'un peripherique de type usb-input.
        que donne le resultat de la commande lsmod ?
        c'est avec elle que l'on verra le driver chargé pour la gestion de ton trackball.
        merci de preciser la version de ton kernel aussi.
        • [^] # Re: pas expert en X

          Posté par  . Évalué à 1.

          ps: que donne comme resultat la commande 'lsusb -v' ?
          pour verifier que le vendorid et productid du scanner soit bien les memes que dans le tuto..(on sait jamais avec les constructeurs)
          • [^] # Re: pas expert en X

            Posté par  . Évalué à 1.

            je remet exactement ce que j'ai dans le fichier de conf (je l'avais mis de mémoire) :
            Section "InputDevice"
            Identifier "Trackball"
            Driver "mouse"
            Option "Device" "/dev/input/mice"
            Option "Name" "AutoDetected"
            Option "Vendor" "AutoDetected"
            Option "Protocol" "ExplorerPS/2"
            Option "Buttons" "7"
            Option "AngleOffset" "-32"
            Option "ZAxisMapping" "4 5"
            EndSection

            lsmod (ces 3 là semblent se rapporter à mon trackball):

            mousedev 4276 1
            hid 22212 0 (unused)
            input 3552 0 [mousedev hid]

            lsusb -v (je ne met que le dernier qui comporte logitech):
            Bus 001 Device 003: ID 046d:c508 Logitech, Inc.
            Device Descriptor:
            bLength 18
            bDescriptorType 1
            bcdUSB 1.10
            bDeviceClass 0 (Defined at Interface level)
            bDeviceSubClass 0
            bDeviceProtocol 0
            bMaxPacketSize0 8
            idVendor 0x046d Logitech, Inc.
            idProduct 0xc508
            bcdDevice 15.00
            iManufacturer 1 Logitech
            iProduct 2 USB Receiver
            iSerial 0
            bNumConfigurations 1
            Configuration Descriptor:
            bLength 9
            bDescriptorType 2
            wTotalLength 34
            bNumInterfaces 1
            bConfigurationValue 1
            iConfiguration 0
            bmAttributes 0xa0
            Remote Wakeup
            MaxPower 50mA
            Interface Descriptor:
            bLength 9
            bDescriptorType 4
            bInterfaceNumber 0
            bAlternateSetting 0
            bNumEndpoints 1
            bInterfaceClass 3 Human Interface Devices
            bInterfaceSubClass 1 Boot Interface Subclass
            bInterfaceProtocol 2 Mouse
            iInterface 0
            Endpoint Descriptor:
            bLength 7
            bDescriptorType 5
            bEndpointAddress 0x81 EP 1 IN
            bmAttributes 3
            Transfer Type Interrupt
            Synch Type None
            Usage Type Data
            wMaxPacketSize 0x0008 bytes 8 once
            bInterval 10
            HID Device Descriptor:
            bLength 9
            bDescriptorType 33
            bcdHID 1.10
            bCountryCode 0 Not supported
            bNumDescriptors 1
            bDescriptorType 34 Report
            wDescriptorLength 76

            je suis en noyaux 2.4.16

            J'ai essayé ça :
            http://devilgallery.free.fr/articles.php?lng=fr&pg=14&prt=1(...)
            et
            http://www.slyunix.org/astuce/astuce.php?a_id=184(...)

            mais xev ne me donne pas de réponse pour ce bouton (ainsi que 2 autres :/)

            j'ai tenté de mettre /dev/psaux mais ça a craché mon serveur XFree 4.3.0.1
            • [^] # Point sur la situation

              Posté par  . Évalué à 1.

              bon voici l'explication:
              le drivers usb utilisé pour ton trackball est le driver standard des souris usb.
              Malheuresement pour toi la norme usb
              (http://www.usb.org/developers/devclass_docs/HID1_11.pdf(...) page 68 )
              definit qu'une souris standard dispose de 3 bouton, un deplacement X et Y. Le reste etant a la disposition du fabricant pour rajouter des fonction diversent et variés.
              Ton trackball renvoie 8 octets la ou la norme en prevoit 3 obligatoire.
              Le module mousedev est le module generic des souris sous linux et prevoit l'usage de 32 boutons donc pas de pb avec lui.

              -J'aurais tendance a dire que tu dois avoir un module usbmouse de chargé en memoire non ? peut tu fournir le resultat complet de lsmod ?

              Car lui quand je le lit ( /usr/src/linux/drivers/usb/usbmouse.c ) le source du driver il me montre qu'il connait 5 boutons (fonction usb_mouse_irq)
              situer dans le premier octet du endpoint irq de la souris.
              un deplacement X,Y et wheel.

              En résumé car je m'égare dans la technique, il faut pour utiliser ton trackball un driver specifique en lieu et place du driver standard.
              quatre solutions:
              tu t'arrete la
              tu cherche partout sur le net si quelqu'un est deja en cours
              tu decide de le faire (et je peut te filer un coup de main)
              tu attend qu'un nouveau kernel/driver soit disponible

              Je tiens a souligner que je ne dispose pas d'un 2.6 pour verifier et que peut etre le boulot a deja été fait????
              • [^] # Re: Point sur la situation

                Posté par  . Évalué à 1.

                je t'envoie ça ce soir, pour le noyaux 2.6 je v le tester ce soir (il est parmis les package debian testing donc il ne devrait pas me poser de pbl) voir si c'est mieux.

                j'ai pas vu de usbmouse, mais c de mémoire.

                sinon j'ai vu des tutoriaux en anglais et avant de tester avec xev, ils font le xmodmap que je n'ai pas fait. Donc j'ai plusieur piste avant de me lancer dans le dév de drivers :D je suis certe programmeur mais les drivers j'y ai jamais touché :)
                • [^] # Re: Point sur la situation

                  Posté par  . Évalué à 1.

                  j'ai trouvé sur le net le source du driver usbmouse.c du 2.6 et lui non plus ne reconnait pas plus de 5 boutons.
                  Deux solutions, soit c'est un autre module qui prend en charge ta souris (a voir avec le resultat du lsmod)
                  soit dans le 2.6 il y a un driver specifique a ton matos (mais je doute).
                  Autrement pour le driver il s'agit de rajouter une dizaine de ligne dans le usbmouse.c de ton et je peut t'indiquer ligne par ligne quoi mettre (tu as de la chance ca fais partie de mon job d'ecrire des drivers sous linux)
                  sauf que d'habitude c'est pour le matos que j'ai concu et pas celui des autres.
                  L'usb driver c'est marrant et tout simple, par contre la couche input j'ai jamais triturer mais tout a l'air prevue pour ton cas donc en 10 ligne ca pourrait le faire.
                  (moyennant le respect de deux ou trois contrainte sur ta machine)
                  vu qu'un drivers peut plantetr on ne tourne pas sur une machine ou les données ne sont pas sauvegarde, on ne tourne pas sous X avant d'etre sur que le driver est stable, et on est patient parce qu'un nouveau kernel ca se compile...lentement
                  • [^] # Re: Point sur la situation

                    Posté par  . Évalué à 1.

                    euh j'ai qu'une machine :/ 1.2Gh TBird par contre la partition avec les données importante n'est pas visible de linux (c du ntfs et j'ai pas encore régler ce détail...) ça protègera les données ?
                    • [^] # Re: Point sur la situation

                      Posté par  . Évalué à 1.

                      avant tout don't panic.(premiere page du guide du rootard intergalactique)
                      la reponse est non des partitions ne protege pas les donnees,il faut des disques physiquement deconnecté (debranché electriquement quoi): suivant le plantage du kernel que l'on peut faire on peut corrompre le drivers IDE/SCSI du kernel et faire faire des choses pas bien au controlleur de disk.

                      Par contre, les modifs a faire sont atomique(tres petites) et tres localisé (usbmouse.c), on peut facilement garantir avec un minimum de relecture du code avant execution un risque presque inexistant.
                      Ca fais 3 ans que je code des drivers linux et je n'ai crasher des disque que vraiment au tout debut (pointeur en vrac,utilisation de routines interdite dans le kernel et interrupt level principalement...)
                      je te garanti meme que les modifs que l'on ferait tu les comprendras tellement c'est simple.

                      Par contre c'est pas bien de ne pas faire de sauvegarde !
                      • [^] # Re: Point sur la situation

                        Posté par  . Évalué à 2.

                        j'en fait des backup des données les plus importantes, mais certaines pertes ne seraient pas catastrophique mais chiante, c tjs chiant de perdre des choses aussi peu importantes qu'elles soient :)
              • [^] # Re: Point sur la situation

                Posté par  . Évalué à 1.

                je suis passé en 2.6 et ya du mieux !

                avec la conf 10 buttons les 10 réagissent mais étrangement :

                g un bouton qui lève 4 évemnements : pressed/release pour 2 boutons différents.
                Un bouton qui prends le même numéro que la molette vers le bas et un autre bouon qui se prends pour le num 1.

                j'ai donc 2 num 1.

                le lsmod :

                nfs 192960 4
                lockd 64520 2 nfs
                sunrpc 152612 7 nfs,lockd
                ipv6 262340 10
                lp 10920 0
                autofs4 19908 2
                emu10k1_gp 3648 0
                gameport 4736 1 emu10k1_gp
                usbhid 32000 0
                uhci_hcd 32784 0
                pci_hotplug 34352 0
                via_agp 9088 1
                pcspkr 3688 0
                tsdev 7360 0
                mousedev 10444 1
                psmouse 20232 0
                floppy 60304 0
                evdev 9600 0
                ehci_hcd 31364 0
                usbcore 118308 5 usbhid,uhci_hcd,ehci_hcd
                emu10k1 83588 0
                sound 83372 1 emu10k1
                ac97_codec 18700 1 emu10k1
                natsemi 28448 0
                crc32 4352 1 natsemi
                parport_pc 35328 1
                parport 41544 2 lp,parport_pc
                agpgart 34536 1 via_agp
                capability 4616 0
                commoncap 7296 1 capability
                snd_emu10k1 98312 3
                snd_rawmidi 25380 1 snd_emu10k1
                snd_pcm_oss 54312 1
                snd_mixer_oss 19904 2 snd_pcm_oss
                snd_pcm 97480 2 snd_emu10k1,snd_pcm_oss
                snd_timer 25540 1 snd_pcm
                snd_seq_device 8264 2 snd_emu10k1,snd_rawmidi
                snd_ac97_codec 69572 1 snd_emu10k1
                snd_page_alloc 11720 2 snd_emu10k1,snd_pcm
                snd_util_mem 4608 1 snd_emu10k1
                snd_hwdep 9476 1 snd_emu10k1
                snd 57380 12 snd_emu10k1,snd_rawmidi,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_seq_device,snd_ac97_codec,snd_util_mem,snd_hwdep
                soundcore 10400 5 emu10k1,sound,snd
                ide_cd 42528 0
                cdrom 40284 1 ide_cd
                rtc 12728 0
                ext3 126760 1
                jbd 61784 1 ext3
                mbcache 9220 1 ext3
                ide_generic 1472 0
                via82cxxx 14044 1
                pdc202xx_old 16860 1
                ide_disk 19264 3
                ide_core 138788 5 ide_cd,ide_generic,via82cxxx,pdc202xx_old,ide_disk
                sd_mod 21632 0
                ata_piix 8132 0
                libata 41348 1 ata_piix
                scsi_mod 124748 2 sd_mod,libata
                unix 28596 444
                font 8448 0
                vesafb 6688 0
                cfbcopyarea 3776 1 vesafb
                cfbimgblt 3072 1 vesafb
                cfbfillrect 3712 1 vesafb


                kernel 2.6.8, XFree86 4.3.0.1

                g trouvé ça aussi :
                http://marc.theaimsgroup.com/?l=linux-kernel&m=104864737506477&(...)

                mais je ne sais pas quoi faire de ça :/
                • [^] # Re: Point sur la situation

                  Posté par  . Évalué à 1.

                  et un pote a trouvé ça :
                  http://mmcustomize.free.fr/logitech/(...)
                  • [^] # Re: Point sur la situation

                    Posté par  . Évalué à 1.

                    tout cela cause de la souris en PS2.
                    je ne sait pas si il y as un parallele entre ps2 et usb mais c'est une piste a suire.
                    Pour ta souris c'est pas un xmodmap qu'il faudait faire maintenant ?
                    • [^] # Re: Point sur la situation

                      Posté par  . Évalué à 1.

                      j'ai tenté le xmodmap -e "pointer = 1 2 3 9 10 6 7 8 4 5"

                      mais pareil, les 3 boutons spéciaux se comportent bizarrement

                      c clairement le protocol PS/2 qui pose problème et je me tenterai bien :
                      http://marc.theaimsgroup.com/?l=linux-kernel&m=104864737506477&(...)

                      car il patch le protocol PS/2 mais vu la date ça devrait être intégré non ?
                      ou peut être pas ?
                      en tout cas en passant le protocol à PS/2++ ça empêche X de démarrer.
                      • [^] # Re: Point sur la situation

                        Posté par  . Évalué à 1.

                        a toi de voir dans /usr/src/linux/drivers/input/mouse/psmouse.c
                        pour voir si tu retrouve le bout de code.
                        rien ne dit que l'auteur du patch a proposer au dev kernel sont bout de code, ni que soumis il a ete accepter.
                        • [^] # Re: Point sur la situation

                          Posté par  . Évalué à 1.

                          bon bon j'avance, j'ai installé et trouvé le source. Sur debian Sarge RC1 c psmouse-base.c

                          j'ai étudié le patch et regarder le source voir si je reconnaissait des choses.

                          c'est pas tout à fait pariel mais ya des choses que je retrouve dans logips2pp.c

                          je t'envoie une archive des source du rep drivers/mouse par mp

                          si le patch y est déjà, je pige pas pkoi ça marche pas :'(
                          • [^] # Re: Point sur la situation

                            Posté par  . Évalué à 1.

                            j'ai essayé un autre patch mais il ne compile pas. je crois que le pinguin ne veut pas de moi :'(
                            • [^] # Re: Point sur la situation

                              Posté par  . Évalué à 1.

                              enoyve un mail a celui qui as proposé le patch que tu as trouvée en lui expliquant exactement ta confifg et tes problemes, normalement il devrait te dire s'il a mis des choses a jours depuis pour l'usb par exemple.
  • # Remapper les boutons

    Posté par  . Évalué à 1.

    J'ai eu le problème, des boutons qui n'étaient pas reconnus. Préciser le nombre de boutons ne marchait pas non plus, j'ai dû remapper. De l'aide ici :
    http://www.slyunix.org/astuce/astuce.php?a_id=184(...)
    • [^] # Re: Remapper les boutons

      Posté par  . Évalué à 1.

      oui mais l'article dit bien qu'il faut qeu sous xev on ai une réponse, or moi g 3 bouton qui ne répondent pas : le bouton drag lock et les 2 boutons juste au dessus et en dessous de la molette.
  • # TROUVER !!!!!

    Posté par  . Évalué à 1.

    Ayé, après 2 semaine et demi de lutte, j'ai vaincu la machine ! :D
    en fait c'est eux :
    http://www.linux-gamers.net/modules/wfsection/article.php?articleid(...)

    il faut savoir que pour moi, Debian sarge, je n'ai que le module evdev dans le noyaux et j'ai pas d'affichage qui me dise que evdev est dans le XFree. J'ai tenté qd même leur réglage Xfree et j'ai mes 8 + 2 boutons qui répondent normalement sous xev !!! c trop de la balle :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.