SteelSeries Sensei side buttons freezes the mouse
Solution 1
The issue appears to have been resolved as of the 3.7.x kernel (https://bbs.archlinux.org/viewtopic.php?id=139994), so you should have a working mouse when 13.04 ships.
Solution 2
Fortunately, the config is configurable via the firmware in the mouse. Connect the mouse to any Windows 7 PC. Download SteelSeries Engine for Windows, disable the page up and page down buttons. Reconnect the mouse to your Ubuntu.
Solution 3
Ditto. Except that disabling it in Windows only seems to temporarily fix the problem--it resurfaces if the mouse is reconnected. Which, interestingly, seems to then persist until I next visit Windows. I should probably stop plugging it into my monitor.
I also tried the 3.4 kernel from the kernel PPA to no effect.
After some searching about for this error and fixes for input devices that flake out in Linux, I've found a few things to try out. Alas they tend to require a kernel rebuild which I've not done lately outside of easy monolithic bzImage situations. And so I'll share them here until I investigate Ubuntu's convenient module rebuilding facilities:
There is a file in USB core called quirks.c which implements workarounds for some misbehaving devices:
Our mouse isn't one of them. But perhaps one of those tweaks would help? They're documented in the header.
Alternatively, there is a HID_MAX_USAGES constant in hid.h that was exceeded by some devices.
In one case where that was the fix, it was also observed the mouse offered multiple interfaces. Our mouse does too, check lsusb -v and search for Ideazon (which is SteelSeries parent company/manufacturer/what they're called in USB land). Maybe we can just blacklist that part somehow?
Solution 4
I don't have a fix, but I might have a hint as to what's happening.
I have the same mouse, and the same problem, and I suspect a kernel bug somewhere in the USB subsystem. Using kernel 3.2.0 (Debian-unstable), and following the usbmon documentation:
# 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
Now I should be seeing a trace of everything happening on USB bus 3. And indeed, when I move the mouse, I see lines like:
ee561cc0 3981940473 C Ii:3:016:1 0:1 8 = 01000000 ffff0000
ee561cc0 3981940545 S Ii:3:016:1 -115:1 8 <
But when I click one of those right-side mouse buttons, I get nothing. And then I don't get any data when I move the mouse anymore. Which I can only assume means the USB driver went Wat.
I'd wonder about the mouse (and still do, a little), but both OSX and (I assume) Windows handle it just fine.
KindDragon
Updated on September 18, 2022Comments
-
KindDragon over 1 year
When I press one of the righthand side buttons (not the usual back/forward buttons) the mouse freezes, and the -22 error(see below) comes up in dmesg. When I remove the mouse and put it in again it works, but the buttons still freezes the mouse.
I couldn't find any useful information on either error -22 or concerning the Sensei mouse.
This is from dmesg after boot:
[ 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
yields: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
Update 1:
I have now tried to sniff the usb packets to see what's going on when i press the buttons that freeze the mouse. I've put them below:
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]
Update 2:
I've just tried rebooting from windows (not shutting down and booting again mind you) - and now the mouse registers fine with the extra buttons (they're btn 10 and 11).
I've had a similar thing happen to my touchpad on my laptop (where it behaved differently after rebooting from windows - though not for the better in that situation). I think the rationale were that there must've been some kind of ram/rom in the hardware which stored some driver specific stuff and which didn't get cleared properly on a reboot.
I have no idea if this would help anyone, but now it's documented.
-
sdaau over 11 years
-
skomorokh almost 11 yearsSomething or another happened between Ubuntu 12.10 and 13.04 that eliminated this issue, at least for me...
-
-
KindDragon almost 12 yearsYou are absolutely right, but I were looking to fix the issue and make use of the buttons (I use them for switching tabs).
-
KindDragon almost 12 yearsI've been thinking about this myself, but i use it to dualboot to windows, where i would rather like to use it with the buttons.