usbmonでX11不足しているマウスButtonReleaseイベントをデバッグする方法は?

usbmonでX11不足しているマウスButtonReleaseイベントをデバッグする方法は?

数日前、2つのボタンを同時に離したときにマウスボタンのリリースが認識されない場合がありました。したがって、1つのボタンの論理状態が「押された」状態に固定され、もう一度押すとリセットされるまで、迷惑な予期しない動作が発生します。

できるマウスイベントの監視に関連する問題が再現されましたxev(出力が時々予想されるキーリリースイベントを表示しない)。私できないイベントを監視して問題を再現します/sys/kernel/debug/usb/usbmon(出力は常に実際の状況と一致します)。

したがって、欠陥は明らかにX11の下にありますが、USBの上にあるいくつかの抽象的なソフトウェアコンポーネントにあります。

原因は何ですか?どうすれば範囲を絞り込むことができますか?

答え1

USBイベントとXイベントのレベルは次のとおりです。

  • マウスが特別で、独自のドライバがない限り、HIDデバイスである可能性が高いです。そのhidrawデバイス(選択済みdmesg)を見つけて、そのデバイスからイベントを受信して​​いることを確認してください。 USBからHIDへの変換はカーネルによって行われます。

  • すべての入力イベントは、対応するデバイスを持つ入力層を介してカーネルを離れます/dev/input。ルートとして実行し、evtestマウスを選択してイベントが受信されることを確認します。 HIDイベントから入力イベントへの変換はカーネルによって行われます。

  • Xはほとんどの場合、すべての入力デバイスのドライバを自動的にロードしますevdev/var/log/Xorg.0.logどのドライバがロードされているか確認してください。これらのドライバは入力イベントをXイベントに変換します。

関連情報