You are not logged in.
Hello,
I've recently purchased a wired XBOX ONE controller clone and it does not work out of the box
This controller is detected and it works well on a WIN10 machine and all my packages are up-to-date.
The device is (I assume correctly) listed in lsusb
$ lsusb -v -s 1:3
Bus 001 Device 003: ID 045e:02d1 Microsoft Corp. Xbox One 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 0x045e Microsoft Corp.
idProduct 0x02d1 Xbox One Controller
bcdDevice 1.01
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0020
bNumInterfaces 1
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 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 10
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 8By using dmesg I gathered more information, in particular that the manufacturer is a company called ShanWan
[ 348.182719] usb 1-4: New USB device found, idVendor=045e, idProduct=02d1, bcdDevice= 1.01
[ 348.182721] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 348.182722] usb 1-4: Product: Controller
[ 348.182723] usb 1-4: Manufacturer: ShanWan
[ 348.182724] usb 1-4: SerialNumber: 00008EED983A挷ᠵ࠸挴
[ 348.190496] input: Microsoft X-Box One pad as /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-4/1-4:1.0/input/input22As you can see, the device is at least detected.
The problem is that no input is actually registered and/or recognized, unlike some other controllers I have hanging around. Therefore I started to have a look at this wiki page on the Gamepads
1) As suggested by the Wiki page I tried to test my configuration with
cat /dev/input/by-id/usb-ShanWan_Controller-event-joystick and no key-strokes were indeed detected / shown.
2) Similar results by testing the Joystick API and the evdev API.
3) I tried to install the SteamOS xpad to replace the default xpad kernel module, same results.
4) Tried everything listed under the xboxdrv section, same result.
5) I also tried what specified in the Using generic/clone controllers sub-section, although I don't think it could help me as the I think this device tries to mimic the original XBOX ONE controller ID, unlike other clones.
I whish I hade the knowledge to "spoof" the communication between the controller Windows10, maybe I could discover and correct some initialization difference, similarly to what described in the Using generic/clone controllers sub-section. Maybe someone could tell me if this is a good idea worth pursuing?
Any help would be greatly appreciated, even pointing me out some more appropriate places where this questions should be posted.
Offline
An update, as I think I found some kind of fix: if I use this patched version of xpad.c and I manually load the newly compiled module then I can finally detect events generated by the controller.
So now the question is: should this patched version of be taken into account by upstream or by archlinux? Or should I take other actions? if the former option is (as I think) the more appropriate then I would mark this issue as solved.
Offline