私が動作させようとしているアダプタは次のとおりです: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 が表示されるはずです。