コントローラーがマウスを動かさないようにするにはどうすればよいですか?

コントローラーがマウスを動かさないようにするにはどうすればよいですか?

私が動作させようとしているアダプタは次のとおりです:Amazon - Mayflash Wii U Pro コントローラー USB アダプターこのアダプターには、Xbox 入力モードと汎用 HID モードの 2 つのモードがあります。Xbox モードは Ubuntu で正常に動作しますが、サポートされるコントローラーは 1 つだけです。汎用コントローラー モードでは、4 つのコントローラーがサポートされます。このモードでは、マウスが動き回ってしまい、ゲームがコントローラーが接続されていることを認識しないため、Ubuntu で使用するのが困難です。

まず、マウスが動かないようにしたいです。この問題を修正すると、2 番目の問題も修正できると思います。開始するための情報を以下に示します。

xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ HJZ Mayflash WiiU Pro Game Controller Adapter     id=8    [slave  pointer  (2)]
⎜   ↳ Logitech M310                             id=9    [slave  pointer  (2)]
⎜   ↳ Logitech K520                             id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=11   [slave  keyboard (3)]

xinput list-props 8
Device 'HJZ Mayflash WiiU Pro Game Controller Adapter':
        Device Enabled (143):   1
        Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (276):     0
        Device Accel Constant Deceleration (277):       1.000000
        Device Accel Adaptive Deceleration (278):       1.000000
        Device Accel Velocity Scaling (279):    10.000000
        Device Product ID (260):        121, 6144
        Device Node (261):      "/dev/input/event2"
        Evdev Axis Inversion (280):     0, 0
        Evdev Axis Calibration (281):   <no items>
        Evdev Axes Swap (282):  0
        Axis Labels (283):      "Abs X" (264), "Abs Y" (265), "Abs Z" (266), "Abs Rotary Z" (267), "Abs Hat 0 X" (268), "Abs Hat 0 Y" (269), "Abs Hat 1 X" (270), "Abs Hat 1 Y" (271), "Abs Hat 2 X" (272), "Abs Hat 2 Y" (273), "Abs Hat 3 X" (274), "Abs Hat 3 Y" (275)
        Button Labels (284):    "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263), "Button Wheel Up" (149), "Button Wheel Down" (150), "Button Horiz Wheel Left" (151), "Button Horiz Wheel Right" (152)
        Evdev Scrolling Distance (285): 0, 0, 0
        Evdev Middle Button Emulation (286):    0
        Evdev Middle Button Timeout (287):      50
        Evdev Third Button Emulation (288):     0
        Evdev Third Button Emulation Timeout (289):     1000
        Evdev Third Button Emulation Button (290):      3
        Evdev Third Button Emulation Threshold (291):   20
        Evdev Wheel Emulation (292):    0
        Evdev Wheel Emulation Axes (293):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (294):    10
        Evdev Wheel Emulation Timeout (295):    200
        Evdev Wheel Emulation Button (296):     4
        Evdev Drag Lock Buttons (297):  0

マウス イベント プロパティはリストにないため、無効にできません。

xserver-xorg-input-joystickを削除してインストールし、カスタムジョイスティック設定を/usr/share/X11/xorg.conf.d/50-joystick.confとして追加してみました。

Section "InputClass"
        Identifier "joystick catchall"
        MatchIsJoystick "on"
        MatchDevicePath "/dev/input/event*"
        Driver "joystick"
        Option "StartKeysEnabled" "False"       #Disable mouse
        Option "StartMouseEnabled" "False"      #support
EndSection

これらは dmesg 内の関連する行であると思います:

[    1.259673] usb 1-4.2: new full-speed USB device number 4 using xhci_hcd
[    1.352076] usb 1-4.2: New USB device found, idVendor=0079, idProduct=1800
[    1.352078] usb 1-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.352080] usb 1-4.2: Product: Mayflash WiiU Pro Game Controller Adapter
[    1.352081] usb 1-4.2: Manufacturer: HJZ
[    1.361980] input: HJZ Mayflash WiiU Pro Game Controller Adapter as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2:1.0/0003:0079:1800.0006/input/input5
[    1.362154] hid-generic 0003:0079:1800.0006: input,hidraw1: USB HID v1.11 Joystick [HJZ Mayflash WiiU Pro Game Controller Adapter] on usb-0000:00:14.0-4.2/input0

なぜhidraw1なのでしょうか?

他に何を試すことができますか?

答え1

ジョイスティックによるマウスの制御を停止するのは実はとても簡単です。いろいろ検索した後、ようやく見つけました。Ubuntu の現在のバージョンでは xorg.conf は使用されず、代わりに /usr/share/X11/xorg.conf.d/ にファイルがあります。このフォルダーに root として移動し、'50-joystick.conf' を編集する必要があります。

sudo su
cd /usr/share/X11/xorg.conf.d/
nano 50-joystick.conf

ファイルは次のようになります:

Section "InputClass"
  Identifier "joystick catchall"
  MatchIsJoystick "on"
  MatchDevicePath "/dev/input/event*"
  Driver "joystick"

  # Add these two lines to disable mouse emulation:
  Option "StartKeysEnabled" "False"
  Option "StartMouseEnabled" "False"
EndSection

2 つの「オプション」行を追加したら、ファイルを保存 (Ctrl+O) して終了します (Ctrl+X)。次に Linux を再起動すると、ジョイスティックはゲームで動作しますが、マウスが画面上で動かなくなったり、マウスが左上隅に閉じ込められたりしなくなります。

答え2

次のような内容です:

xinput set-prop 'HJZ Mayflash WiiU Pro Game Controller Adapter' "Device Enabled" 0

マウスとして動作しなくなるはずです。

sudo evtest /dev/input/event2 (or wherever your controller is)

そもそもなぜこのようなことが起きているのかを知るためです。

答え3

それでも問題が解決しない場合は、解決策を見つけました。これは Raspberry Pi で実行されましたが、Ubuntu でも動作するはずです (Ubuntu でコマンド ラインを編集する方法はわかりませんが、簡単に編集できる方法があるはずです)。

Reddit の投稿からコピーしました:https://www.reddit.com/r/RetroPie/comments/3drzqt/anyone_using_a_wii_u_pro_controller_adapter_with/

実行してlsusb -v、Mayflash アダプターの idVendor と idProduct を検索します (私の場合は、それぞれ 0x0079 と 0x1800 でした)。

次の文字列を末尾に追加します/boot/cmdline.txtファイル:

usbhid.quirks=idVendor:idProduct:0x40

idVendor と idProduct を先ほど見つけた値に置き換えます。必ず「0x」プレフィックスを含めてください。

Pi を再起動します。

sudo reboot

/dev/input に js0、js1、js2、js3 が表示されるはずです。

関連情報