Playstation 3 controller not connecting wired on new Pi4 RetroPie build
-
Same issue here with a new "JAMSWALL" branded PS3 controller off Amazon.
I tried various kernels 4.19, 5.4, 5.10. (I even tried Linux, same thing, 4 slow blink, 2 middle, then back to 4)
Worked fine on Windows 10 though.
I tried with the drivers Sixaxis, PS3Controller, and CustomHIDSony, none of them worked.
The controller wouldn't work cabled in, and couldn't be paired via Bluetooth.
I also tried it on a PI3, and the USB2 and USB3 ports on my Pi4.
I even tried blacklisting the hid-sony module.Bus 001 Device 027: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x054c Sony Corp. idProduct 0x0268 Batoh Device / PlayStation 3 Controller bcdDevice 5.72 iManufacturer 0 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 148 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 [ 16.077838] Bluetooth: Core ver 2.22 [ 16.077927] NET: Registered protocol family 31 [ 16.077939] Bluetooth: HCI device and connection manager initialized [ 16.078024] Bluetooth: HCI socket layer initialized [ 16.078048] Bluetooth: L2CAP socket layer initialized [ 16.078078] Bluetooth: SCO socket layer initialized [ 16.083707] Bluetooth: HCI UART driver ver 2.3 [ 16.083716] Bluetooth: HCI UART protocol H4 registered [ 16.083752] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 16.083893] Bluetooth: HCI UART protocol Broadcom registered [ 16.248570] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 16.248577] Bluetooth: BNEP filters: protocol multicast [ 16.248590] Bluetooth: BNEP socket layer initialized [ 64.655323] usb 1-1.3: USB disconnect, device number 5 [ 71.094313] usb 1-1.3: new full-speed USB device number 6 using xhci_hcd [ 71.232931] usb 1-1.3: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 0.01 [ 71.232951] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 71.232967] usb 1-1.3: Product: PS3 Controller [ 71.245636] usbhid 1-1.3:1.0: can't add hid device: -32 [ 71.245719] usbhid: probe of 1-1.3:1.0 failed with error -32 [ 71.312237] usb 1-1.3: USB disconnect, device number 6 [ 71.854308] usb 1-1.3: new full-speed USB device number 7 using xhci_hcd [ 71.992536] usb 1-1.3: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72 [ 71.992553] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 71.992567] usb 1-1.3: Product: PS3 Controller [ 72.002411] sony 0003:054C:0268.0004: failed to retrieve feature report 0xf2 with the Sixaxis MAC address [ 72.002789] sony 0003:054C:0268.0004: hiddev97,hidraw2: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:01:00.0-1.3/input0 [ 72.002804] sony 0003:054C:0268.0004: failed to claim input
I didn't try using a powered USB hub ( I remember seeing somewhere that that can make a difference), but I tried everything else.
I'm sure someone with driver/coding skills will eventually update the "hid-sony" driver in Linux and that will trickle down to the Raspberry Pi but I had to give up and return it.
-
@doug said in Playstation 3 controller not connecting wired on new Pi4 RetroPie build:
#define SIXAXIS_REPORT_0xF2_SIZE 64
#define SIXAXIS_REPORT_0xF5_SIZE 64I join the question. Where do I need to enter the cherished lines?
-
-
I've 2 type of third-party controller.
And one has apparently the same issue on 2 different version of the Pi:- Raspberry Pi 3 Model B Plus Rev 1.3 - kernel 5.10.17-v7+
- Raspberry Pi 4 Model B Rev 1.4 - kernel 5.4.83-v7l+
One is working:
[ 1924.940819] usb 1-1.1.2: new full-speed USB device number 18 using dwc_otg [ 1925.074303] usb 1-1.1.2: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 1.00 [ 1925.074321] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1925.074332] usb 1-1.1.2: Product: PS3 GamePad [ 1925.074339] usb 1-1.1.2: Manufacturer: SHANWAN [ 1925.083996] input: SHANWAN PS3 GamePad Motion Sensors as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:054C:0268.0009/input/input11 [ 1925.161004] input: SHANWAN PS3 GamePad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:054C:0268.0009/input/input10 [ 1925.161595] sony 0003:054C:0268.0009: input,hiddev97,hidraw2: USB HID v81.10 Joystick [SHANWAN PS3 GamePad] on usb-3f980000.usb-1.1.2/input0
Bus 001 Device 018: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x054c Sony Corp. idProduct 0x0268 Batoh Device / PlayStation 3 Controller bcdDevice 1.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 148 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1
And the other not:
[ 1473.303339] usb 1-1.1.2: new full-speed USB device number 17 using dwc_otg [ 1473.442361] usb 1-1.1.2: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72 [ 1473.442380] usb 1-1.1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 1473.442390] usb 1-1.1.2: Product: PS3 Controller [ 1473.450851] sony 0003:054C:0268.0008: failed to retrieve feature report 0xf2 with the Sixaxis MAC address [ 1473.451312] sony 0003:054C:0268.0008: hiddev97,hidraw2: USB HID v81.11 Joystick [PS3 Controller] on usb-3f980000.usb-1.1.2/input0 [ 1473.451328] sony 0003:054C:0268.0008: failed to claim input
Bus 001 Device 017: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x054c Sony Corp. idProduct 0x0268 Batoh Device / PlayStation 3 Controller bcdDevice 5.72 iManufacturer 0 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 148 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1
I've no clue how to go from there, but I've noticed this diff from the USB listing:
< bcdUSB 1.10 --- > bcdUSB 2.00 12,13c12,13 < bcdDevice 1.00 < iManufacturer 1 --- > bcdDevice 5.72 > iManufacturer 0 40c40 < bcdHID 1.10 --- > bcdHID 1.11 60c60 < bEndpointAddress 0x81 EP 1 IN --- > bEndpointAddress 0x82 EP 2 IN
I'm willing to test some patched hid_sony module, but I'll need some guidance to compile...
-
Following this document, I've managed to compile the hid-sony module with the defined values as proposed by @doug. And the related error is indeed gone.
Here is the output I have now:
[10679.024496] usb 2-1.1: new full-speed USB device number 10 using ehci-pci [10679.137551] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 0.01 [10679.137560] usb 2-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [10679.137564] usb 2-1.1: Product: PS3 Controller [10679.139987] usbhid 2-1.1:1.0: can't add hid device: -32 [10679.140029] usbhid: probe of 2-1.1:1.0 failed with error -32 [10679.350272] usb 2-1.1: USB disconnect, device number 10 [10679.644500] usb 2-1.1: new full-speed USB device number 11 using ehci-pci [10679.761543] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72 [10679.761551] usb 2-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [10679.761555] usb 2-1.1: Product: PS3 Controller [10679.770223] input: PS3 Controller Motion Sensors as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0268.000B/input/input60 [10679.828566] input: PS3 Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0268.000B/input/input59 [10679.828908] sony 0003:054C:0268.000B: input,hiddev1,hidraw5: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:00:1d.0-1.1/input0
I'll upload my little contribution in Github later, in case someone else want to try.
-
-
@b3n said in Playstation 3 controller not connecting wired on new Pi4 RetroPie build:
Here is the modest repo.
Thank you very much for your participation and your response!
@doug wrote that the values should be
#define SIXAXIS_REPORT_0xF2_SIZE 64
#define SIXAXIS_REPORT_0xF5_SIZE 64
And you write that
#define SIXAXIS_REPORT_0xF2_SIZE 17
#define SIXAXIS_REPORT_0xF5_SIZE 8
What does this difference depend on?
May I have other values that differ from both yours and @doug? -
@maksim Sorry for the confusion: I've kept the original code in the
main
branch and set the ones from @doug in thedevel
branch.
It's just the way I'm used to work, most people work directly in themain
branch...
And this particular case, I guess I should keep anuptream
branch inline with the current code from the linux kernel repo.Anyway: once you've cloned the repo, you can checkout the
devel
branch withgit checkout devel
.I'd like to make the change proposed by @doug a bit more 'smart' before merging it the
main
branch because this single change is likely breaking the use of other PS3 controller (I'll test this later).
We may find a way to add some logic to handle both cases...In addition, if the USB part works in the
devel
branch, the Bluetooth is still not working... -
I've never worked on Linux module before, but I suspect one needs to make the hid-sony more smart about those 3rd party controller by altering the logic of sixaxis_set_operational_usb().
Likely to try first the original defined values (17 and 8), then the alternative (64,64) in case the first have failed!?
It seems to me that is already what the authors are doing by using the second report (0xF5) or even later for the SHANWAN_PAD.What I miss the most in this code is some debug log (only hid_err and hid_info are used here).
Maybe because it is a bad idea to debug too much in such piece of code...Nevertheless, I've found some other functions I'll try to use in this repo:
#define hid_err(hid, fmt, ...) \ dev_err(&(hid)->dev, fmt, ##__VA_ARGS__) #define hid_notice(hid, fmt, ...) \ dev_notice(&(hid)->dev, fmt, ##__VA_ARGS__) #define hid_warn(hid, fmt, ...) \ dev_warn(&(hid)->dev, fmt, ##__VA_ARGS__) #define hid_info(hid, fmt, ...) \ dev_info(&(hid)->dev, fmt, ##__VA_ARGS__) #define hid_dbg(hid, fmt, ...) \ dev_dbg(&(hid)->dev, fmt, ##__VA_ARGS__)
-
Hello guys
Anyone has a solution for this issue?
I've been digging a lot into internet, but couldn't make any progress :(
Aug 6 20:39:56 retropie kernel: [ 1261.102497] usb 1-1.3: new full-speed USB device number 9 using xhci_hcd
Aug 6 20:39:56 retropie kernel: [ 1261.240776] usb 1-1.3: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72
Aug 6 20:39:56 retropie kernel: [ 1261.240796] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
Aug 6 20:39:56 retropie kernel: [ 1261.240813] usb 1-1.3: Product: PS3 Controller
Aug 6 20:39:56 retropie kernel: [ 1261.252296] sony 0003:054C:0268.0004: hiddev96,hidraw1: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:01:00.0-1.3/input0
Aug 6 20:39:56 retropie mtp-probe: checking bus 1, device 9: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
Aug 6 20:39:56 retropie mtp-probe: bus: 1, device: 9 was not an MTP device
Aug 6 20:39:56 retropie mtp-probe: checking bus 1, device 9: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
Aug 6 20:39:56 retropie mtp-probe: bus: 1, device: 9 was not an MTP deviceRegards
-
Reading the replies from @doug and @b3n, I've managed to implement the fix by giving a change to the report when the controller is connected.
[48361.273580] usb 1-2.4: USB disconnect, device number 25 [48366.681972] usb 1-2.4: new full-speed USB device number 26 using xhci_hcd [48366.883070] usb 1-2.4: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 0.01 [48366.883092] usb 1-2.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [48366.883102] usb 1-2.4: Product: PS3 Controller [48366.890323] usbhid 1-2.4:1.0: can't add hid device: -32 [48366.890366] usbhid: probe of 1-2.4:1.0 failed with error -32 [48366.905149] usb 1-2.4: USB disconnect, device number 26 [48367.449946] usb 1-2.4: new full-speed USB device number 27 using xhci_hcd [48367.643118] usb 1-2.4: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72 [48367.643141] usb 1-2.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [48367.643150] usb 1-2.4: Product: PS3 Controller [48367.654388] input: PS3 Controller Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:054C:0268.0014/input/input47 [48367.706730] input: PS3 Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:054C:0268.0014/input/input46 [48367.707515] sony 0003:054C:0268.0014: input,hiddev98,hidraw6: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:00:14.0-2.4/input0
Good: The driver works even with the latest driver available. It just change the report of the given controller, so, other controllers will remain functional.
Bad: The controller only works with the cable and the player's count LEDs turn on in a weird way.
TODO: I still want to make this driver actually doable. Any help will be very welcome.
GitHub: https://github.com/KanuX-14/GeneriKit
Edit: The original driver will be kept. It can be enabled again by deleting the line 'blacklist hid-sony' in
/etc/modprobe.d/generikit.conf
.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.