Wie kann ich verhindern, dass mein Controller meine Maus bewegt?

Wie kann ich verhindern, dass mein Controller meine Maus bewegt?

Dies ist der Adapter, den ich zum Laufen zu bringen versuche:Amazon - Mayflash Wii U Pro Controller USB-AdapterDieser Adapter hat zwei Modi, einen Xbox-Eingabemodus und einen generischen HID-Modus. Der Xbox-Modus funktioniert unter Ubuntu einwandfrei, unterstützt aber nur einen Controller. Im generischen Controllermodus werden 4 Controller unterstützt. Ich habe Schwierigkeiten, ihn unter Ubuntu in diesem Modus zu verwenden, da die Maus bewegt wird und Spiele nicht erkennen, dass ein Controller angeschlossen ist.

Zuerst möchte ich, dass meine Maus nicht mehr hin und her bewegt wird. Ich hoffe, dass ich durch die Behebung dieses Problems auch das zweite Problem beheben kann. Hier sind einige Informationen für den Anfang.

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

Ich kann die Eigenschaft „Mausereignisse“ nicht deaktivieren, da sie nicht aufgeführt ist.

Ich habe versucht, xserver-xorg-input-joystick zu entfernen, und ich habe versucht, es zu installieren und die benutzerdefinierte Joystick-Konfiguration als /usr/share/X11/xorg.conf.d/50-joystick.conf hinzuzufügen.

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

Ich glaube, dies sind die relevanten Zeilen in 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

Warum ist das hidraw1?

Was kann ich sonst noch versuchen?

Antwort1

Es ist eigentlich ganz einfach, den Joystick daran zu hindern, die Maus zu steuern. Nach langem Suchen bin ich endlich darauf gestoßen. In den aktuellen Versionen von Ubuntu wird xorg.conf nicht verwendet, stattdessen haben Sie Dateien in /usr/share/X11/xorg.conf.d/. Sie müssen als Root in diesen Ordner gehen und „50-joystick.conf“ folgendermaßen bearbeiten:

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

Die Datei sollte folgendermaßen aussehen:

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

Nachdem Sie die beiden „Option“-Zeilen hinzugefügt haben, speichern Sie die Datei (Strg+O) und beenden Sie sie (Strg+X). Starten Sie Linux jetzt neu. Der Joystick funktioniert in Spielen, lässt die Maus aber nicht mehr über den Bildschirm laufen oder bleibt in der oberen linken Ecke hängen.

Antwort2

Etwas in der Art von:

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

sollte es aufhören, als Maus zu fungieren. Sie können auch ausführen

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

um eine Vorstellung davon zu bekommen, warum dies überhaupt geschieht.

Antwort3

Wenn dieses Problem immer noch besteht, habe ich eine Lösung gefunden. Dies wurde auf einem Raspberry Pi durchgeführt, sollte aber auch unter Ubuntu funktionieren (ich weiß nicht, wie man die Befehlszeile unter Ubuntu bearbeitet, aber ich bin sicher, dass es eine einfache Möglichkeit gibt, dies zu tun).

Aus meinem Post auf Reddit kopiert:https://www.reddit.com/r/RetroPie/comments/3drzqt/anyone_using_a_wii_u_pro_controller_adapter_with/

Führen Sie es aus lsusb -vund suchen Sie nach der IDVendor und der IDProduct Ihres Mayflash-Adapters (bei mir waren es 0x0079 bzw. 0x1800).

Fügen Sie die folgende Zeichenfolge am Ende Ihrer/boot/cmdline.txtDatei:

usbhid.quirks=idVendor:idProduct:0x40

Ersetzen Sie idVendor und idProduct durch die Werte, die Sie zuvor gefunden haben. Stellen Sie sicher, dass Sie die Präfixe „0x“ einschließen.

Starten Sie Ihren Pi neu:

sudo reboot

Sie sollten jetzt js0, js1, js2 und js3 in /dev/input sehen.

verwandte Informationen