Вот адаптер, который я пытаюсь заставить работать:Amazon - USB-адаптер для контроллера Mayflash Wii U ProЭтот адаптер имеет два режима: режим ввода 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.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
После добавления двух строк 'Option' сохраните файл (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
и найдите idVendor и idProduct вашего адаптера Mayflash (у меня они были 0x0079 и 0x1800 соответственно).
Добавьте следующую строку в конец вашего/boot/cmdline.txtфайл:
usbhid.quirks=idVendor:idProduct:0x40
Замените idVendor и idProduct на значения, которые вы нашли ранее. Убедитесь, что вы включили префиксы "0x".
Перезагрузите свой pi:
sudo reboot
Теперь вы должны увидеть js0, js1, js2 и js3 в /dev/input.