No input detected from Xbox controller

I recently purchased a USB Xbox Series X|S controller (PowerA Spectra Infinity) with the intention of connecting it to Steam specifically to play GTA V. Upon running lsusb, the controller does appear:

Bus 001 Device 005: ID 20d6:4002 PowerA XBX Spectra Enhanced Wired Controller

lsusb -v provides this entry:

Bus 001 Device 005: ID 20d6:4002 PowerA XBX Spectra Enhanced Wired Controller
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass        71 
  bDeviceProtocol       208 
  bMaxPacketSize0        64
  idVendor           0x20d6 
  idProduct          0x4002 
  bcdDevice            1.01
  iManufacturer           1 PowerA
  iProduct                2 XBX Spectra Enhanced Wired Controller
  iSerial                 3 00000120E177F020
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0040
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71 
      bInterfaceProtocol    208 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
      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               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71 
      bInterfaceProtocol    208 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71 
      bInterfaceProtocol    208 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x08  EP 8 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x00e4  1x 228 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x87  EP 7 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

However, if I pull up input devices under system settings nothing is detected. The only time I’ve gotten this to change was by enabling xboxdrv which gives two inputs for device: Xbox Gamepad (userspace driver) (/dev/input/js0) and Xbox Gamepad (userspace driver) #2 (/dev/input/js1). But these new devices appear regardless of whether or not the controller is plugged in, and the values for the buttons and joysticks never change so this still doesn’t appear to be responding to the controller beyond initial detection.
I’ve tried experimenting with a couple other things as well at the suggestion of the internet. I tried using xone, xpad, and xpadneo which had no visible results. It did seem that xone is mostly for wireless controllers anyways though, and mine is USB only. I have tried each USB port on the PC and have switched the wire as well. Any possible solutions would be much appreciated, or suggestions for a different controller that will work with Manjaro/Steam without such a headache.


Moderator edit: In the future, please use proper formatting: [HowTo] Post command output and file content as formatted text

This is not advice, but just letting you know that it’s working on my system with what I have installed. I have AUR package xpadneo-dkms-git installed, and that seems to allow my Xbox and Xbox-like gamepads to work correctly on my system. I see in your post that you’ve said you’ve tried it and it didn’t work, but I’m posting just to let you know that it is possible. I’m not sure how my system differs from yours.

Sometimes gamepads fail to register after an update until I reboot my system though. Rebooting might be useful if that also affects you.

That being said, my gamepad doesn’t seem to work at all while plugged in via USB unless I’ve already connected it via bluetooth while unplugged first, then plugged it in. It’s a bizarre situation, since traditionally that would be reversed, where plugging it in is the only way for it to get it to register. I’m not sure why it’s so flaky compared to Windows in this way.

After a couple days of troubleshooting I finally got it working. It’s not perfect cause there doesn’t appear to be a driver that works with some of the extra buttons on the controller, but I’m not worried about that. My solution ended up being a couple of steps. I started by changing my kernel version to a more current branch, this didn’t appear to anything at first but the next day the controller was suddenly recognized the controller. Then, since the update broke the game itself, I had to force proton version 7.0-6. Finally, I had to fully disable steam input which solved the remaining issues.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.