Как остановить перемещение мыши с помощью контроллера?

Как остановить перемещение мыши с помощью контроллера?

Вот адаптер, который я пытаюсь заставить работать: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.

Связанный контент