컨트롤러가 마우스를 움직이지 못하게 하려면 어떻게 해야 합니까?

컨트롤러가 마우스를 움직이지 못하게 하려면 어떻게 해야 합니까?

이것은 내가 작동시키려고 하는 어댑터입니다.Amazon - 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에 파일이 있습니다. conf.d/ 루트로 이 폴더로 이동하여 '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 -vMayflash 어댑터의 idVendor 및 idProduct를 찾으십시오(저에게는 각각 0x0079 및 0x1800이었습니다).

끝에 다음 문자열을 추가하십시오./boot/cmdline.txt파일:

usbhid.quirks=idVendor:idProduct:0x40

idVendor 및 idProduct를 이전에 찾은 값으로 바꿉니다. "0x" 접두어를 포함했는지 확인하세요.

파이를 재부팅하세요:

sudo reboot

이제 /dev/input에 js0, js1, js2 및 js3이 표시됩니다.

관련 정보