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

7

Dies ist der Adapter, mit dem ich arbeiten möchte : Amazon - Mayflash Wii U Pro Controller USB-Adapter Dieser Adapter verfügt über zwei Modi, einen Xbox-Eingabemodus und einen generischen Hid-Modus. Der Xbox-Modus funktioniert unter Ubuntu einwandfrei, unterstützt jedoch nur einen Controller. Im generischen Controller-Modus werden 4 Controller unterstützt. Ich habe Schwierigkeiten, es unter Ubuntu in diesem Modus zu verwenden, weil es die Maus bewegt und Spiele nicht erkennen, dass ein Controller angeschlossen ist.

Zuerst möchte ich, dass es aufhört, meine Maus zu bewegen. Ich hoffe, dass die Behebung dieses Problems mir hilft, das zweite Problem zu beheben. Hier finden Sie einige Informationen, um loszulegen.

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 Mausereignis-Requisite nicht deaktivieren, da sie nicht aufgeführt ist.

Ich habe versucht, den xserver-xorg-input-joystick zu entfernen, und ich habe versucht, ihn 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, das 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 noch versuchen?

DavidW
quelle
1
Ich habe meine eigene Frage gefunden, weil ich neulich wieder dieses Problem hatte, also dachte ich mir, ich würde einen Kommentar mit einem Update zu meiner Controller-Situation in Ubuntu hinzufügen. Irgendwann verschwand dieses Problem einfach. Möglicherweise aufgrund eines Upgrades, möglicherweise aufgrund einer Neuinstallation von Ubuntu. Ich bin vor einigen Tagen erneut auf dieses Problem gestoßen, als Steam im Hintergrund geöffnet war. Es stellt sich heraus, dass Steam meinen Controller wie eine Maus wirken ließ.
DavidW

Antworten:

6

Etwas in der Art von:

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

sollte dazu führen, dass es nicht mehr als Maus fungiert. Vielleicht möchten Sie auch ausführen

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

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

Grumbel
quelle
Vielen Dank, dass die Mausbewegung deaktiviert wurde. Es wird immer noch nicht als Controller erkannt, aber ich spucke ein paar Sachen aus, also denke ich, dass ich es mit xboxdrv zum Laufen bringen kann.
DavidW
Funktioniert super! Wird es aber hartnäckig sein?
Ratijas
5

Das Stoppen des Joysticks, der die Maus steuert, ist eigentlich ganz einfach, nachdem viele Suchanfragen schließlich darauf gestoßen sind. In den aktuellen Versionen von ubuntu wird xorg.conf nicht verwendet, sondern Sie haben Dateien in. /Usr/share/X11/xorg.conf .d / Sie müssen diesen Ordner als root aufrufen und '50 -joystick.conf 'bearbeiten, also:

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"
    Option "StartKeysEnabled" "False"   # These Two Lines Disable
    Option "StartMouseEnabled" "False"  # The mouse emulation
EndSection

Sobald Sie die beiden 'Option'-Zeilen hinzugefügt haben, speichern Sie die Datei (Strg + O) und beenden Sie sie (Strg + X). Starten Sie jetzt Linux neu, der Joystick funktioniert in Spielen, aber nicht länger fährt die Maus über den Bildschirm oder fängt ihn in der oberen linken Ecke ein.

Erin
quelle
1

Wenn Sie dieses Problem immer noch haben, habe ich eine Lösung gefunden. Dies wurde auf einem Raspberry Pi gemacht, sollte aber auch unter Ubuntu funktionieren (ich weiß nicht, wie ich die Befehlszeile unter Ubuntu bearbeiten soll, aber ich bin mir sicher, dass es eine Möglichkeit gibt, dies einfach zu tun).

Von meinem Beitrag auf reddit kopiert: https://www.reddit.com/r/RetroPie/comments/3drzqt/anyone_using_a_wii_u_pro_controller_adapter_with/

Führen Sie lsusb -vden IDVendor und das IDProduct Ihres Mayflash-Adapters aus und suchen Sie ihn (für mich waren sie 0x0079 bzw. 0x1800).

Fügen Sie am Ende Ihrer Datei /boot/cmdline.txt die folgende Zeichenfolge hinzu :

usbhid.quirks=idVendor:idProduct:0x40

Ersetzen Sie idVendor und idProduct durch die zuvor gefundenen Werte. Stellen Sie sicher, dass Sie die Präfixe "0x" angeben.

Starten Sie Ihr pi neu:

sudo reboot

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

WilliamH
quelle
1
Neustart pi? Und warum neu starten?
AB
2
Kernel-Befehlszeilenargumente werden beim Booten ausgeführt, daher ist ein Neustart erforderlich, damit das Argument usbhid.quirks in den Kernel gelangt. Es gibt verschiedene Möglichkeiten, die Kernel-Befehlszeile in Ubuntu zu ändern, aber ich kenne sie nicht.
WilliamH
1
Da bin ich mir nicht sicher /boot/cmdline.txt. Es existiert nicht einmal auf meinem System. Auch im .txtErnst?
Wolfer
1
@Wolfer Wie ich zu Beginn meines Beitrags und in meinem obigen Kommentar sagte: Es gibt verschiedene Möglichkeiten, die Kernel-Befehlszeile in Ubuntu zu ändern, aber ich bin mit ihnen nicht vertraut. /boot/cmdline.txtHier befindet es sich auf dem Raspberry Pi. Eine schnelle Google-Suche sollte Ihnen helfen, die Kernel-Befehlszeile für Ihre Distribution zu ändern.
WilliamH