如何阻止控制器移動滑鼠?

如何阻止控制器移動滑鼠?

這是我正在嘗試使用的適配器:亞馬遜 - 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。

相關內容