這是我正在嘗試使用的適配器:亞馬遜 - Mayflash Wii U Pro 控制器 USB 轉接器此適配器有兩種模式,xbox 輸入模式和通用 hid 模式。 xbox 模式在 Ubuntu 上運作良好,但僅支援一個控制器。在通用控制器模式下,支援 4 個控制器。我在 Ubuntu 上以這種模式使用它時遇到困難,因為它正在移動滑鼠,並且遊戲無法識別控制器已插入。
首先,我希望它停止移動滑鼠。我希望解決這個問題能幫助我解決第二個問題。以下是一些入門資訊。
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中有文件。 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
新增兩個「選項」行後,儲存檔案 (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”前綴。
重新啟動你的樹莓派:
sudo reboot
現在您應該在 /dev/input 中看到 js0、js1、js2 和 js3。