Open Hew-ux opened 2 years ago
I am having the same issue. An old 360 controller is working but using the Nintendo Switch Pro wired doesn't detect any input. It shows the controller is connected, but I can't operate the menu. Controller configuration doesn't detect any input when holding a button on that screen either.
Had the same issue with an 8bitdo pro 2 controller set to Switch mode as well. Although that controller also had really strange behaviour in dinput and xinput in wine games so might be something else there. But certainly no wired input in Switch mode at all.
[root@BATOCERA /userdata/system]# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Power Button
/dev/input/event2: Video Bus
/dev/input/event3: Microsoft X-Box 360 pad
/dev/input/event4: HDA Intel PCH Front Mic
/dev/input/event5: HDA Intel PCH Rear Mic
/dev/input/event6: HDA Intel PCH Line Out
/dev/input/event7: HDA Intel PCH Front Headphone
/dev/input/event8: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event9: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event10: HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event11: Nintendo Co., Ltd. Pro Controller
Select the device event number [0-11]: 11
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x57e product 0x2009 version 0x111
Input device name: "Nintendo Co., Ltd. Pro Controller"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 288 (BTN_TRIGGER)
Event code 289 (BTN_THUMB)
Event code 290 (BTN_THUMB2)
Event code 291 (BTN_TOP)
Event code 292 (BTN_TOP2)
Event code 293 (BTN_PINKIE)
Event code 294 (BTN_BASE)
Event code 295 (BTN_BASE2)
Event code 296 (BTN_BASE3)
Event code 297 (BTN_BASE4)
Event code 298 (BTN_BASE5)
Event code 299 (BTN_BASE6)
Event code 300 (?)
Event code 301 (?)
Event code 302 (?)
Event code 303 (BTN_DEAD)
Event code 704 (BTN_TRIGGER_HAPPY1)
Event code 705 (BTN_TRIGGER_HAPPY2)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 65535
Fuzz 255
Flat 4095
Event code 1 (ABS_Y)
Value 0
Min 0
Max 65535
Fuzz 255
Flat 4095
Event code 2 (ABS_Z)
Value 0
Min 0
Max 65535
Fuzz 255
Flat 4095
Event code 5 (ABS_RZ)
Value 0
Min 0
Max 65535
Fuzz 255
Flat 4095
Event code 16 (ABS_HAT0X)
Value 0
Min -1
Max 1
Event code 17 (ABS_HAT0Y)
Value 0
Min -1
Max 1
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Joystick Name: 'Nintendo Co., Ltd. Pro Controller'
Joystick Path: '/dev/input/event11'
Joystick GUID: 030000007e0500000920000011010000
Joystick Number: 1
Number of Axes: 4
Number of Buttons: 18
Number of Hats: 1
Number of Balls: 0
GameController:
not a gamepad
Axis code 0: 0
Axis code 1: 1
Axis code 2: 2
Axis code 3: 5
Button code 0: 288
Button code 1: 289
Button code 2: 290
Button code 3: 291
Button code 4: 292
Button code 5: 293
Button code 6: 294
Button code 7: 295
Button code 8: 296
Button code 9: 297
Button code 10: 298
Button code 11: 299
Button code 12: 300
Button code 13: 301
Button code 14: 302
Button code 15: 303
Button code 16: 704
Button code 17: 705
Hat code 0: -1
[ 61.285907] hid-generic 0003:057E:2009.0005: input,hidraw0: USB HID v1.11 Joystick [Nintendo Co., Ltd. Pro Controller] on usb-0000:00:1d.0-1.4/input0
[ 80.124113] usb 2-1.4: USB disconnect, device number 8
[ 81.351805] usb 2-1.4: new full-speed USB device number 9 using ehci-pci
[ 81.451331] usb 2-1.4: New USB device found, idVendor=057e, idProduct=2009, bcdDevice= 2.10
[ 81.451340] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 81.451343] usb 2-1.4: Product: Pro Controller
[ 81.451346] usb 2-1.4: Manufacturer: Nintendo Co., Ltd.
[ 81.451347] usb 2-1.4: SerialNumber: 000000000001
[ 81.453047] input: Nintendo Co., Ltd. Pro Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/0003:057E:2009.0006/input/input16
[ 81.453149] hid-generic 0003:057E:2009.0006: input,hidraw0: USB HID v1.11 Joystick [Nintendo Co., Ltd. Pro Controller] on usb-0000:00:1d.0-1.4/input0
[ 93.692021] usb 2-1.4: USB disconnect, device number 9
[ 97.995099] usb 2-1.4: new full-speed USB device number 10 using ehci-pci
[ 98.094594] usb 2-1.4: New USB device found, idVendor=057e, idProduct=2009, bcdDevice= 2.10
[ 98.094605] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 98.094608] usb 2-1.4: Product: Pro Controller
[ 98.094610] usb 2-1.4: Manufacturer: Nintendo Co., Ltd.
[ 98.094612] usb 2-1.4: SerialNumber: 000000000001
[ 98.096203] input: Nintendo Co., Ltd. Pro Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/0003:057E:2009.0007/input/input17
[ 98.155247] hid-generic 0003:057E:2009.0007: input,hidraw0: USB HID v1.11 Joystick [Nintendo Co., Ltd. Pro Controller] on usb-0000:00:1d.0-1.4/input0
Note that I am not getting the repeating usb 3-3: input irq status -75 received
message though. And the name appears to be fine for me. I did notice there is no corresponding entry for Switch Pro controller in the in share/system/configs/emulationstation/ es_input.cfg.
@Hew-ux Can you re-try the v34 beta please?
@dmanlfc Was there meant to be a PR in particular that fixes it? Because I'm not seeing any.
The issue still remains on the latest beta.
@dmanlfc Was there meant to be a PR in particular that fixes it? Because I'm not seeing any.
The issue still remains on the latest beta.
Err a lot, like the kernel & SDL upgrade :-) With dmesg do you still get - input irq status -75 received messages?
@AshSinc can you try v34 beta please?
Basically - the 'Switch' controller HID driver was added to kernel 5.16 We are on 5.17 for v34 & I enabled the HID driver, judging by your USB ID, it should now work with v34.
@dmanlfc Still receiving the usb 3-1: input irq status -75 received
message on repeat.
To keep track, what has been discovered so far:
udev
rule containing the following to force the device to appear as a regular controller: KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0180", MODE="0660", TAG+="uaccess"
Did not work, in either the userdata directory or the etc directory.lsmod | grep uinput
did not return anything.modprobe uinput
runs successfully, however no uinput
is actually added an neither does it fix the problem.dmesg
output from Solus (tested connecting it in both a USB 3.0 and USB 2.0 port):
@Hew-ux try the latest build please
@AshSinc can you test v34 beta please?
Only 'official' Nintendo Switch controllers will work using the Nintendo driver in the Linux kernel. For the 8bitdo Pro 2, use D-Input mode (wired or bluetooth).
Update: Wired 3rd party switch controller still not working in the v34 beta.
@Hew-ux try adding the new hid_nintendo via modprobe. Alternatively blacklist it & reboot.
@dmanlfc Tried that, still no dice.
After running modprobe hid_nintendo
:
When plugging in controller the dmesg
spam still present and button inputs are still not being seen by evtest
:
What happens when you blacklist?
You'll have to provide instructions on how to do that, googling it has shown me many different methods and I'm not sure which is applicable to Batocera.
create a conf file in /etc/modprobe.d
the contents of which contains blacklist hid_nintendo
save the overlay & reboot
Still the same unfortunately.
Can you do a dmesg & upload to pastebin?
@dmanlfc SSH session was could not capture all events from the start as the IRQ spam is huge, but this should give you everything that's relevant to the event: dmesg output when connecting switch controller.txt
@Hew-ux please use the version here, from last night expanded Nintendo controller support has been added. Note: This MAY help with your PDP controller...
https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN
Nice, this works great. However I noticed on the PRs that this change got reverted for whatever reason, so I'll upgrade to the newest beta and let you know.
Just changes related to expanded SBC support which has settled down now.
Yep, it's no longer working in the latest beta (2022/07/19) again.
Any update on this?
I test this controller every once in a while, it's still broken. Technically, this is a regression, so I'd be hesitant to choose it in case other users begin to report the same regression.
Issue: Nintendo Switch controllers are not registering any inputs when connected via USB. They still work fine via Bluetooth. This is also affecting third-party Switch controllers as well, and across multiple platforms (x86_64, s905x3, etc.)
Logs: Running
evtest
shows that the controller itself is being detected, but after selecting it and going in, no events are being fired off when pressing buttons. This seems to be the direct cause.Using
evtest
to test the controller:No matter which buttons/sticks are pressed, this screen never changes. Nothing is detected.
sdl2-jstest --list
info:dmesg
output when the device is plugged in:The
usb 3-3: input irq status -75 received
keeps getting sent indefinitely for as long as the controller is plugged in. This is irrelevant of whether the controller is plugged into a USB 3.0 port or a USB 2.0 port.Additional info: This was working correctly in v32. I also noticed that in v33, the controller name seems to appear slightly corrupted when connected, and it takes about ten or so seconds to connect, whereas in v32 the name appeared fine and it connected instantly.
First connection (note the weird square and H at the end of the name):
Disconnect and reconnect (note how the name has changed now from when it was first connected):
Again, in v32 the name appeared correctly, without either the square and H or "fo" at the end of the name.