Question La molette de la souris a cessé de fonctionner


Il y a environ une semaine, la molette de défilement des souris a cessé de fonctionner (pas une, toutes les souris). Voici ce que j'ai essayé d'étudier et de résoudre le problème, mais en vain:

  • Confirmé que le problème persiste chez trois souris. L'un est Corsair, deux sont Logitech
  • Confirmé que les trois souris fonctionnent bien sur les autres systèmes d'exploitation
  • Windows démarré sur la même machine et le défilement confirmé fonctionne, donc ce n'est pas un problème matériel
  • xinput montre la souris, y compris la molette de défilement, et la carte des boutons est 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • xev n'affiche aucun événement lorsque la molette de défilement est déplacée. Cependant, le clic de souris du milieu fonctionne correctement.
  • Le redémarrage du gestionnaire de fenêtres n'a eu aucun effet
  • Passer à un autre gestionnaire de fenêtres n'a eu aucun effet
  • Le redémarrage de X n'a ​​eu aucun effet
  • Le redémarrage n'a eu aucun effet
  • J'ai trois ports USB, le passage à l'un d'eux n'a aucun effet. Essayé de passer à une autre souris, même problème. Essayé une troisième souris, même problème.
  • Mise à jour de tous les logiciels et mise à niveau du noyau
  • Recherche de réponses sur Reddit, Super User, Quora, etc. mais toutes les solutions ont déjà été exclues par ce qui précède
  • A posé une question sur Reddit r / linuxmint mais ils n’ont pas aidé

Voici quelques informations sur ce que j'utilise:

  • OS: Linux Mint 18.1
  • Noyau: Linux x86-64 4.10.0-14-generic
  • WM: i3, a également essayé génial et cannelle

Le plus gros problème que je vois est que xev ne montre pas d’événement et que le problème est cohérent entre différentes souris. Encore une fois, ce problème a surgi il y a une semaine, il fonctionnait sans souci depuis environ un an. Je ne peux penser à aucun changement qui aurait pu causer cela dans les derniers jours et je suis de plus en plus frustré.

Des idées sur la cause, un correctif, que chercher ensuite?

Mise à jour: selon le commentaire, voici la sortie de xinput list-props:

Device 'ckb1: Corsair Gaming Sabre PRO RGB Mouse':
Device Enabled (152):   1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (276): 0
Device Accel Constant Deceleration (277):   1.000000
Device Accel Adaptive Deceleration (278):   1.000000
Device Accel Velocity Scaling (279):    10.000000
Device Product ID (269):    6940, 6959
Device Node (270):  "/dev/input/event8"
Evdev Axis Inversion (280): 0, 0
Evdev Axes Swap (282):  0
Axis Labels (283):  "Rel X" (162), "Rel Y" (163), "Rel Z" (581), "Rel Rotary X" (582), "Rel Rotary Y" (583), "Rel Rotary Z" (584), "Rel Horiz Wheel" (489), "Rel Dial" (585), "Rel Vert Wheel" (275), "Rel Misc" (586), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0)
Button Labels (284):    "Button Left" (155), "Button Middle" (156), "Button Right" (157), "Button Wheel Up" (158), "Button Wheel Down" (159), "Button Horiz Wheel Left" (160), "Button Horiz Wheel Right" (161), "Button Side" (273), "Button Extra" (274), "Button Forward" (298), "Button Back" (299), "Button Task" (300), "Button 8" (579), "Button 9" (580), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272)
Evdev Scrolling Distance (285): -77, -77, 1
Evdev Middle Button Emulation (286):    0
Evdev Middle Button Timeout (287):  50
Evdev Third Button Emulation (288): 0
Evdev Third Button Emulation Timeout (289): 1000
Evdev Third Button Emulation Button (290):  3
Evdev Third Button Emulation Threshold (291):   20
Evdev Wheel Emulation (292):    0
Evdev Wheel Emulation Axes (293):   0, 0, 4, 5
Evdev Wheel Emulation Inertia (294):    10
Evdev Wheel Emulation Timeout (295):    200
Evdev Wheel Emulation Button (296): 4
Evdev Drag Lock Buttons (297):  0

Et la sortie de evtest comme je fais défiler la roue de haut en bas:

Event: time 1491756163.211018, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756163.211018, -------------- SYN_REPORT ------------
Event: time 1491756163.459021, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756163.459021, -------------- SYN_REPORT ------------
Event: time 1491756163.684019, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756163.684019, -------------- SYN_REPORT ------------
Event: time 1491756164.165007, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756164.165007, -------------- SYN_REPORT ------------
Event: time 1491756164.582066, type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: time 1491756164.582066, -------------- SYN_REPORT ------------
Event: time 1491756164.712050, type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: time 1491756164.712050, -------------- SYN_REPORT ------------
Event: time 1491756164.872037, type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: time 1491756164.872037, -------------- SYN_REPORT ------------
Event: time 1491756165.095999, type 2 (EV_REL), code 8 (REL_WHEEL), value 1
Event: time 1491756165.095999, -------------- SYN_REPORT ------------
Event: time 1491756166.027074, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756166.027074, -------------- SYN_REPORT ------------
Event: time 1491756166.419054, type 2 (EV_REL), code 8 (REL_WHEEL), value -1
Event: time 1491756166.419054, -------------- SYN_REPORT ------------

Mise à jour 2: section pertinente de /var/log/Xorg.0.log. Pour être clair, ici, la souris utilisée est Corsair, mais j'ai également eu le même problème avec les souris Logitech et Microsoft.

 (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/event6)
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev keyboard catchall"
 (II) Using input driver 'evdev' for 'ckb1: Corsair Gaming Sabre PRO RGB Mouse'
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: always reports core events
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Device: "/dev/input/event6"
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Vendor 0x1b1c Product 0x1b2f
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found 20 mouse buttons
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found keys
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Forcing relative x/y axes to exist.
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as mouse
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as keyboard
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: YAxisMapping: buttons 4 and 5
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
 (**) Option "config_info" "udev:/sys/devices/virtual/input/input15/event6"
 (II) XINPUT: Adding extended input device "ckb1: Corsair Gaming Sabre PRO RGB Mouse" (type: KEYBOARD, id 14)
 (**) Option "xkb_rules" "evdev"
 (**) Option "xkb_model" "pc105"
 (**) Option "xkb_layout" "us"
 (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/event8)
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev pointer catchall"
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev keyboard catchall"
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "Natural Scrolling"
 (II) Using input driver 'evdev' for 'ckb1: Corsair Gaming Sabre PRO RGB Mouse'
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: always reports core events
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Device: "/dev/input/event8"
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Vendor 0x1b1c Product 0x1b2f
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found 20 mouse buttons
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found scroll wheel(s)
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found relative axes
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found x and y relative axes
 (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found keys
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as mouse
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as keyboard
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Adding scrollwheel support
 (**) Option "VertScrollDelta" "-77"
 (**) Option "HorizScrollDelta" "-77"
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: YAxisMapping: buttons 4 and 5
 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
 (**) Option "config_info" "udev:/sys/devices/virtual/input/input16/event8"
 (II) XINPUT: Adding extended input device "ckb1: Corsair Gaming Sabre PRO RGB Mouse" (type: KEYBOARD, id 15)
 (**) Option "xkb_rules" "evdev"
 (**) Option "xkb_model" "pc105"
 (**) Option "xkb_layout" "us"
 (EE) BUG: triggered 'if (axnum >= dev->valuator->numAxes)'
 (EE) BUG: ../../Xi/exevents.c:2103 in InitValuatorAxisStruct()
 (EE) 
 (EE) Backtrace:
 (EE) 0: /usr/lib/xorg/Xorg (xorg_backtrace+0x4e) [0x560d79deaade]
 (EE) 1: /usr/lib/xorg/Xorg (InitValuatorAxisStruct+0x67) [0x560d79d7b677]
 (EE) 2: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x4b15) [0x7f48d2222b15]
 (EE) 3: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x58de) [0x7f48d22238de]
 (EE) 4: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x6d23) [0x7f48d2224d23]
 (EE) 5: /usr/lib/xorg/Xorg (ActivateDevice+0x4a) [0x560d79c80c4a]
 (EE) 6: /usr/lib/xorg/Xorg (0x560d79c38000+0xa2b19) [0x560d79cdab19]
 (EE) 7: /usr/lib/xorg/Xorg (0x560d79c38000+0xb4f0b) [0x560d79cecf0b]
 (EE) 8: /usr/lib/xorg/Xorg (0x560d79c38000+0xb54f3) [0x560d79ced4f3]
 (EE) 9: /usr/lib/xorg/Xorg (config_init+0x9) [0x560d79cebea9]
 (EE) 10: /usr/lib/xorg/Xorg (InitInput+0xbb) [0x560d79ccefdb]
 (EE) 11: /usr/lib/xorg/Xorg (0x560d79c38000+0x57d91) [0x560d79c8fd91]
 (EE) 12: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf0) [0x7f48d8c8d830]
 (EE) 13: /usr/lib/xorg/Xorg (_start+0x29) [0x560d79c7a049]
 (EE) 
 (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: initialized for relative axes.
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) keeping acceleration scheme 1
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration profile 0
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration factor: 2.000
 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration threshold: 4
 (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/mouse0)
 (II) No input driver specified, ignoring this device.
 (II) This device may have been added with another device file.

La sortie de xinput --test quand je fais défiler est:

motion a[8]=-1 motion a[8]=-2 motion a[8]=-3 motion a[8]=-2 motion a[8]=-1 motion a[8]=0 motion a[8]=1 motion a[8]=2 motion a[8]=3 motion a[8]=4 motion a[8]=3 motion a[8]=2 motion a[8]=1 motion a[8]=0


3
2018-04-09 00:39


origine


S'il vous plaît éditer la question avec la sortie de xinput list-props 123, où 123 est l'identifiant de votre souris vu dans xinput. Aussi, courir evtest /dev/input/eventX en tant que root sur le chemin qui apparaît dans list-props, et voyez ce qui se passe lorsque vous utilisez la molette de défilement. - dirkt
D'accord, evtest les résultats sont corrects, donc le problème est dans le evdev chauffeur. Il y a un lot des axes pour la souris (a-t-il autant de roues ou d'autres gadgets?) evdev. S'il vous plaît regarder dans /var/log/Xorg.0.log pour les lignes avec evdev se référant à cette souris + lignes environnantes, et mettre à jour la question avec la partie pertinente. En outre, quel axe la molette de défilement est-elle en cours d'exécution? xinput --test 123 (encore une fois, votre identifiant au lieu de 123). Peut-être l'un des autres axes correspond-il aux boutons 4 et 5? Avez-vous mis à jour X ou la evdev pilote il y a une semaine? - dirkt
J'ai mis à jour mon message (désolé pour le retard). Je n'ai pas mis à jour X ou evdev à ce moment-là, à moins que ce ne soit via apt. Y a-t-il un moyen de vérifier cela? En outre, je remarque que la sortie dans Xorg.0.log indique que ma souris a 20 boutons et, comme vous l’indiquez, il ya beaucoup d’axes. Ce que ma souris a physiquement: clic gauche et droit, molette de la souris qui peut cliquer, les boutons avant et arrière, et un sélecteur DPI. - RaindeerKernel


Réponses:


Merci beaucoup à tout le monde ici et sur Reddit, en particulier à @dirkt, pour toute l’aide. Au final, je suis allé avec l'option nucléaire: j'ai nettoyé ma partition racine et réinstallé Linux. Ma molette de défilement fonctionne parfaitement maintenant, et elle corrigea quelques autres problèmes.

Je ne le recommande pas à la plupart des utilisateurs qui rencontrent un problème comme celui-ci, même si cela fonctionne. Passez par le travail en essayant de le réparer avant de tout faire (et bien sûr, sauvegardez d'abord toutes vos données).

Je suis maintenant sur Linux Mint 18.2 en utilisant le noyau 4.8 par défaut. Je peux mettre à jour ma question avec plus d'informations si quelqu'un est curieux de savoir quelles sont les mêmes sorties de commandes maintenant.


1
2017-07-25 13:58





Réponse partielle:

Comme vous pouvez le voir, les événements de la molette s’affichent bien. Mais le pilote X evdev est confus, car il obtient l’information que le périphérique d’entrée correspondant a beaucoup d’axes, beaucoup de boutons et même des clés (ce qui explique pourquoi Configurer comme clavier dans les journaux). C'est la raison pour laquelle les événements de roue ne sont pas convertis aux boutons 4 et 5, comme c'est normalement le cas, et les applications ne reconnaissent donc pas non plus les événements de roue.

La question est donc de savoir pourquoi l'appareil prétend avoir autant d'intrants. Je soupçonne que quand vous courez evtest, il listera beaucoup des événements supportés de type 1 et 2. Pour comparaison, voici ce que j'obtiens pour ma souris:

$ sudo evtest
...
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 274 (BTN_MIDDLE)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 8 (REL_WHEEL)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)

Vous aurez probablement tous les axes de 0 à 8, et peut-être aussi toutes les clés.

Si tel est le cas, cela indique un problème avec les pilotes du noyau. Veuillez mettre à jour le noyau le plus récent et réessayer.

Toutes vos souris sont probablement des périphériques HID (un protocole d'entrée USB standardisé). Si la mise à jour du noyau ne fonctionne pas, la prochaine étape serait de vérifier le descripteur HID (voir les commentaires). ici pour la direction comment le faire) pour voir si c'est correct, mais cela commence à devenir très technique.


0
2018-04-23 18:33



Merci pour l'aide. Vous avez raison, evtest donne beaucoup d'événements supportés. Cependant, je pensais que le noyau pouvait poser problème car lorsque ce problème est apparu, j'utilisais 4.4.0-66. Je suis monté à 4.10.0-14 et rien n'a changé. Pourrait-il en valoir la peine d'aller au 4.10.14? - RaindeerKernel
Je ne vais pas faire de mal à essayer, car jusqu'à présent nous ne savons pas ce qui le cause exactement, et si une mise à jour du noyau le résout, c'est facile. Déboguer cela sera velu, je n'ai aucune idée de ce qui pourrait causer ce comportement. Mise à niveau udev, systemd et tout ce qui est lié mérite également d’être essayé. - dirkt
J'ai mis à jour vers 4.10.14, ainsi que udev et systemd. Cela n'a eu aucun effet. J'ai fini par le résoudre en réinstallant l'ensemble du système d'exploitation: / - RaindeerKernel