web-dev-qa-db-fra.com

Les boutons latéraux de SteelSeries Sensei gèlent la souris

Lorsque j'appuie sur l'un des boutons de droite (et non sur les boutons Précédent/Suivant), la souris se fige et l'erreur -22 (voir ci-dessous) apparaît sous forme de dmesg. Lorsque je retire la souris et que je la repose à nouveau, cela fonctionne, mais les boutons gèlent toujours la souris.

Je n'ai trouvé aucune information utile sur l'erreur -22 ou sur la souris Sensei.

Ceci est de dmesg après le démarrage:

[    2.473271] input: La-VIEW Technology SteelSeries   as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input3
[    2.473445] generic-usb 0003:1038:1361.0001: input,hidraw0: USB HID v1.00 Mouse [La-VIEW Technology SteelSeries  ] on usb-0000:00:1d.0-1.6/input0
[    2.474360] generic-usb: probe of 0003:1038:1361.0002 failed with error -22
[    2.474427] usbcore: registered new interface driver usbhid
[    2.474493] usbhid: USB HID core driver

xinput list-props 8 donne:

Device 'La-VIEW Technology SteelSeries  ':
Device Enabled (142):   1
Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (271): 0
Device Accel Constant Deceleration (272):   3.000000
Device Accel Adaptive Deceleration (273):   1.000000
Device Accel Velocity Scaling (274):    10.000000
Device Product ID (260):    4152, 4961
Device Node (261):  "/dev/input/event3"
Evdev Axis Inversion (275): 0, 0
Evdev Axes Swap (277):  0
Axis Labels (278):  "Rel X" (152), "Rel Y" (153), "Rel Horiz Wheel" (269), "Rel Vert Wheel" (270)
Button Labels (279):    "Button Left" (145), "Button Middle" (146), "Button Right" (147), "Button Wheel Up" (148), "Button Wheel Down" (149), "Button Horiz Wheel Left" (150), "Button Horiz Wheel Right" (151), "Button Side" (264), "Button Extra" (265), "Button Forward" (266), "Button Back" (267), "Button Task" (268), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263)
Evdev Middle Button Emulation (280):    0
Evdev Middle Button Timeout (281):  50
Evdev Third Button Emulation (282): 0
Evdev Third Button Emulation Timeout (283): 1000
Evdev Third Button Emulation Button (284):  3
Evdev Third Button Emulation Threshold (285):   20
Evdev Wheel Emulation (286):    0
Evdev Wheel Emulation Axes (287):   0, 0, 4, 5
Evdev Wheel Emulation Inertia (288):    10
Evdev Wheel Emulation Timeout (289):    200
Evdev Wheel Emulation Button (290): 4
Evdev Drag Lock Buttons (291):  0

Mise à jour 1:

J'ai maintenant essayé de renifler les paquets USB pour voir ce qui se passe lorsque j'appuie sur les boutons qui gèlent la souris. Je les ai mis ci-dessous:

No.     Time        Source                Destination           Protocol Length Info
 199479 390.237182  6.1                   Host                  USB      64     URB_INTERRUPT in

Frame 199479: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_COMPLETE ('C')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: present (0)
    URB sec: 1343162038
    URB usec: 333931
    URB status: Protocol error (-EPROTO) (-71)
    URB length [bytes]: 0
    Data length [bytes]: 0
    [Request in: 194548]
    [Time from request: 23.890818000 seconds]

No.     Time        Source                Destination           Protocol Length Info
 199480 390.251625  Host                  6.1                   USB      64     URB_INTERRUPT in

Frame 199480: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_SUBMIT ('S')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: not present ('<')
    URB sec: 1343162038
    URB usec: 348374
    URB status: Operation now in progress (-EINPROGRESS) (-115)
    URB length [bytes]: 8
    Data length [bytes]: 0
    [Response in: 199481]

No.     Time        Source                Destination           Protocol Length Info
 199481 390.255254  6.1                   Host                  USB      64     URB_INTERRUPT in

Frame 199481: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_COMPLETE ('C')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: present (0)
    URB sec: 1343162038
    URB usec: 352003
    URB status: Protocol error (-EPROTO) (-71)
    URB length [bytes]: 0
    Data length [bytes]: 0
    [Request in: 199480]
    [Time from request: 0.003629000 seconds]

No.     Time        Source                Destination           Protocol Length Info
 199488 390.279626  Host                  6.1                   USB      64     URB_INTERRUPT in

Frame 199488: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_SUBMIT ('S')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: not present ('<')
    URB sec: 1343162038
    URB usec: 376375
    URB status: Operation now in progress (-EINPROGRESS) (-115)
    URB length [bytes]: 8
    Data length [bytes]: 0
    [Response in: 199489]

No.     Time        Source                Destination           Protocol Length Info
 199489 390.283255  6.1                   Host                  USB      64     URB_INTERRUPT in

Frame 199489: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_COMPLETE ('C')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: present (0)
    URB sec: 1343162038
    URB usec: 380004
    URB status: Protocol error (-EPROTO) (-71)
    URB length [bytes]: 0
    Data length [bytes]: 0
    [Request in: 199488]
    [Time from request: 0.003629000 seconds]

No.     Time        Source                Destination           Protocol Length Info
 199504 390.331599  Host                  6.1                   USB      64     URB_INTERRUPT in

Frame 199504: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_SUBMIT ('S')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: not present ('<')
    URB sec: 1343162038
    URB usec: 428348
    URB status: Operation now in progress (-EINPROGRESS) (-115)
    URB length [bytes]: 8
    Data length [bytes]: 0
    [Response in: 199505]

No.     Time        Source                Destination           Protocol Length Info
 199505 390.335256  6.1                   Host                  USB      64     URB_INTERRUPT in

Frame 199505: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
USB URB
    URB id: 0xffff8801ca55ba80
    URB type: URB_COMPLETE ('C')
    URB transfer type: URB_INTERRUPT (0x01)
    Endpoint: 0x81, Direction: IN
        1... .... = Direction: IN (1)
        .000 0001 = Endpoint value: 1
    Device: 6
    URB bus id: 2
    Device setup request: not relevant ('-')
    Data: present (0)
    URB sec: 1343162038
    URB usec: 432005
    URB status: Protocol error (-EPROTO) (-71)
    URB length [bytes]: 0
    Data length [bytes]: 0
    [Request in: 199504]
    [Time from request: 0.003657000 seconds]

Mise à jour 2:

Je viens d'essayer de redémarrer à partir de Windows (sans arrêter ni redémarrer, mais la souris s'enregistre bien avec les boutons supplémentaires (ils sont à 10 et 11).

J'ai eu le même problème avec mon pavé tactile sur mon ordinateur portable (où il s'est comporté différemment après le redémarrage à partir de Windows - mais pas pour le mieux dans cette situation). Je pense que la raison en était qu’il devait exister une sorte de RAM/RAM dans le matériel qui stockait des éléments spécifiques au pilote et qui n’était pas effacée correctement au redémarrage.

Je ne sais pas si cela aiderait quelqu'un, mais maintenant c'est documenté.

5
LasseValentini

Le problème semble avoir été résolu depuis le noyau 3.7.x ( https://bbs.archlinux.org/viewtopic.php?id=139994 ), de sorte que vous devriez avoir une souris qui marche quand 13.04 navires.

3
Ben

Heureusement, la configuration est configurable via le firmware de la souris. Connectez la souris à n’importe quel PC Windows 7. Téléchargez SteelSeries Engine pour Windows, désactivez les boutons de page précédente et suivante. Reconnectez la souris à votre Ubuntu.

3
Rampage

Idem. Sauf que le fait de le désactiver sous Windows ne semble résoudre que temporairement le problème - il refait surface si la souris est reconnectée. Ce qui, curieusement, semble persister jusqu'à ma prochaine visite à Windows. Je devrais probablement arrêter de le brancher sur mon moniteur.

J'ai également essayé le noyau 3.4 du noyau PPA sans effet.

Après quelques recherches sur cette erreur et des correctifs pour les périphériques d’entrée qui s’éclatent sous Linux, j’ai trouvé quelques petites choses à essayer. Hélas, ils ont tendance à exiger une reconstruction du noyau, ce que je n’ai pas fait récemment en dehors de situations monolithiques faciles, bzImage. Et donc, je les partagerai ici jusqu'à ce que j'étudie les installations pratiques de reconstruction de modules d'Ubuntu:

Il existe un fichier dans le noyau USB appelé quirks.c qui implémente des solutions de contournement pour certains périphériques défectueux:

Notre souris n'en fait pas partie. Mais peut-être qu'un de ces réglages aiderait? Ils sont documentés dans le en-tête .

Sinon, il existe une constante HID_MAX_USAGES dans hid.h qui a été dépassée par certains périphériques.

Dans n cas où c'était le correctif, il a également été observé que la souris offrait plusieurs interfaces. Notre souris aussi, vérifiez lsusb -v et recherchez Ideazon (société mère/fabricant de SteelSeries/ce qu’ils appellent en mode USB). Peut-être pourrions-nous simplement ajouter cette partie à une liste noire?

2
skomorokh

Je n'ai pas de solution, mais je pourrais avoir un indice sur ce qui se passe.

J'ai la même souris et le même problème, et je soupçonne un bogue dans le noyau quelque part dans le sous-système USB. Utiliser le noyau 3.2.0 (Debian-unstable) et suivre le documentation usbmon :

# mount -t debugfs none_debugfs /sys/kernel/debug
# modprobe usbmon
# grep -B5 SteelSeries /sys/kernel/debug/usb/devices
T:  Bus=03 ...
...
# cat /sys/kernel/debug/usb/usbmon/3u

Maintenant, je devrais voir une trace de tout ce qui se passe sur le bus USB 3. Et effectivement, lorsque je déplace la souris, je vois des lignes comme celles-ci:

ee561cc0 3981940473 C Ii:3:016:1 0:1 8 = 01000000 ffff0000
ee561cc0 3981940545 S Ii:3:016:1 -115:1 8 <

Mais lorsque je clique sur l'un de ces boutons de droite, je ne reçois rien. Et puis je ne reçois plus aucune donnée lorsque je déplace la souris. Ce que je ne peux que supposer, signifie que le pilote USB est allé Wat.

Je me poserais des questions sur la souris (et encore un peu), mais OSX et (je suppose) Windows le traitent parfaitement.

2
Jander

Ok, il s’agit plus d’une solution de contournement que de solution, mais comme @skomorokh l’a dit, désactivez les boutons dans Windows, puis enregistrez le paramètre dans un nouveau profil et enregistrez-le sur la souris pour éviter de perdre la configuration lors du débranchement de la souris.

0
Switchkick