当我按下右侧按钮之一(不是通常的后退/前进按钮)时,鼠标冻结,并且 dmesg 中出现 -22 错误(见下文)。当我取出鼠标并再次放入时,它可以正常工作,但按钮仍然冻结鼠标。
我找不到有关错误 -22 或 Sensei 鼠标的任何有用信息。
这是启动后的 dmesg 信息:
[ 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
产量:
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
更新 1:
我现在尝试嗅探 USB 数据包,以查看按下冻结鼠标的按钮时发生了什么。我将它们放在下面:
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]
更新 2:
我刚刚尝试从 Windows 重新启动(请注意,不是关闭并再次启动) - 现在鼠标可以正常使用额外的按钮(它们是按钮 10 和 11)。
我的笔记本电脑上的触摸板也发生过类似的事情(从 Windows 重新启动后,触摸板的行为有所不同 - 虽然在那种情况下情况并没有好转)。我认为原因在于硬件中一定存在某种 RAM/ROM,其中存储了一些特定于驱动程序的内容,并且在重新启动时没有正确清除。
我不知道这是否会对任何人有帮助,但现在它已经有记录了。
答案1
该问题似乎已在 3.7.x 内核中得到解决(https://bbs.archlinux.org/viewtopic.php?id=139994),因此当 13.04 版本发布时,您应该有一个可以使用的鼠标。
答案2
幸运的是,可以通过鼠标中的固件配置配置。将鼠标连接到任何 Windows 7 PC。下载适用于 Windows 的 SteelSeries Engine,禁用向上翻页和向下翻页按钮。将鼠标重新连接到您的 Ubuntu。
答案3
我没有解决办法,但我可能对正在发生的事情有所暗示。
我有同样的鼠标,也遇到了同样的问题,我怀疑 USB 子系统中的某个地方存在内核错误。使用内核 3.2.0(Debian-unstable),并遵循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
现在我应该可以看到 USB 总线 3 上发生的所有事情的踪迹。事实上,当我移动鼠标时,我会看到如下行:
ee561cc0 3981940473 C Ii:3:016:1 0:1 8 = 01000000 ffff0000
ee561cc0 3981940545 S Ii:3:016:1 -115:1 8 <
但当我点击鼠标右侧的按钮时,什么也没得到。然后当我移动鼠标时,我再也得不到任何数据。我只能假设这意味着 USB 驱动程序瓦。
我对鼠标感到疑惑(现在仍然有一点疑惑),但 OSX 和(我认为)Windows 都可以很好地处理它。
答案4
好的,这更多的是一种解决方法而不是解决方案,但正如@skomorokh 所说,禁用 Windows 中的按钮,然后将设置保存在新的配置文件中并将其存储在鼠标上,以避免在拔下鼠标时丢失配置。