web-dev-qa-db-ja.com

SteelSeries Senseiのサイドボタンでマウスがフリーズする

右側のボタンのいずれか(通常の戻る/進むボタンではない)を押すと、マウスがフリーズし、-22エラー(以下を参照)がdmesgで表示されます。マウスを取り外して再度挿入すると動作しますが、ボタンはまだマウスをフリーズします。

エラー-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:

私はちょうど窓から再起動しようとしました(シャットダウンして、再度起動することを気にしません)-そして今、マウスは追加のボタンでうまく登録します(それらはbtn 10と11です)。

私のラップトップのタッチパッドでも同様のことが起こりました(Windowsから再起動した後の動作は異なりますが、そのような状況では良くありません)。その理由は、ハードウェアに何らかのドライバ固有のものを保存し、再起動時に適切にクリアされなかった何らかのラム/ ROMがあったはずだからだと思います。

これが誰かに役立つかどうかはわかりませんが、今では文書化されています。

5
LasseValentini

この問題は3.7.xカーネル( https://bbs.archlinux.org/viewtopic.php?id=139994 )で解決されたように見えるので、13.04のときは正常に動作するマウスが必要です。発送します。

3
Ben

幸いなことに、構成はマウスのファームウェアを介して構成できます。マウスをWindows 7 PCに接続します。 SteelSeries Engine for Windowsをダウンロードし、ページアップおよびページダウンボタンを無効にします。マウスをUbuntuに再接続します。

3
Rampage

同上。 Windowsで無効にすると、問題が一時的に修正されるように見えることを除いて、マウスが再接続されると問題が再発します。興味深いことに、それは次にWindowsにアクセスするまで続くようです。おそらく、モニターへの接続を停止する必要があります。

カーネルPPAから3.4カーネルも試してみましたが、効果はありませんでした。

このエラーをいくつか検索し、Linuxでフレークアウトする入力デバイスを修正した後、試してみることがいくつかありました。残念ながら、カーネルの再構築が必要になる傾向がありますが、最近は簡単なモノリシックbzImageの状況以外ではこれを行いませんでした。したがって、Ubuntuの便利なモジュール再構築機能を調査するまで、ここでそれらを共有します。

USBコアにはquirks.cと呼ばれるファイルがあり、一部の誤動作デバイスの回避策を実装しています。

私たちのマウスはそれらの1つではありません。しかし、おそらくそれらの調整の1つが役立つでしょうか?それらは header で文書化されています。

あるいは、hid.hにHID_MAX_USAGES定数がありますが、これは一部のデバイスによって超過されました。

1つのケース で修正された場合、マウスが複数のインターフェイスを提供することも確認されました。私たちのマウスも同様に、lsusb -vをチェックしてIdeazon(SteelSeriesの親会社/メーカー/ USBランドで呼ばれているもの)を検索します。どういうわけか、その部分を単にブラックリストに載せることができますか?

2
skomorokh

修正方法はありませんが、何が起こっているかについてのヒントがあるかもしれません。

私は同じマウスと同じ問題を抱えており、USBサブシステムのどこかにカーネルバグがあると思われます。カーネル3.2.0(Debian-unstable)を使用し、 sbmon 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

これで、USBバス3で発生しているすべてのトレースが表示されるはずです。実際、マウスを動かすと、次のような行が表示されます。

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

しかし、右側のマウスボタンの1つをクリックしても、何も得られません。そして、マウスをもう動かしてもデータを取得できません。これは、USBドライバが Wat。

私はマウスについて疑問に思うだろうが(それでも少し)、OSXと(おそらく)Windowsの両方がそれをうまく処理します。

2
Jander

解決策というよりは回避策の方が多いですが、@ skomorokhが言ったように、Windowsでボタンを無効にしてから、新しいプロファイルに設定を保存し、マウスに保存して、マウスを抜くときに設定が失われないようにします。

0
Switchkick