Configure Hyperkin X91 XBox Controller?

Hello everyone. I am trying to configure a Hyperkin X91 XBox controller in Lakka OS. The OS does not recognize the controller, nor can I manually map the buttons. (It’s also unrecognized on my Ubuntu laptop so… I guess it doesn’t have linux support?) Huge bummer because I just wanted a plug-and-play controller for both steam and Lakka. My XBox 360 wired controller crapped out on me and I thought this, with its retro feel, would be the perfect solution, plug and play just like the regular 360 controller. I’ve learned the hard way that “officially licensed” is not equal to “100% compatible.”

Product info is here: https://www.hyperkin.com/x91-wired-controller-for-xbox-one-windows-10-black-hyperkin.html

I found this post by a guy in RetroPie’s github who knows more than me: https://github.com/RetroPie/RetroPie-Setup/issues/1906

It looks helpful but I don’t know enough to know how to use this info. He says, “The VID is 2E24 and the PID is 1688.”

Is this something I can configure myself? Or does anyone have any suggestions for a plug-and-play, well-built controller that works on both Lakka and Linux Steam?

Maybe because vid/pid are not integrated in xpad module source.

Can you try to type cat /proc/bus/input/devices and get the block for your controller. You should get something like (Check the N: for the name)

I: Bus=0003 Vendor=054c Product=0268 Version=8111
N: Name="Gasia Co.,Ltd PS(R) Gamepad"
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/0003:054C:0268.0005/input/input13
U: Uniq=00:26:5c:00:77:f6
H: Handlers=js1 **event12** 
B: PROP=0
B: EV=20001b
B: KEY=f00000000 0 0 0 7fdb000000000000 0 0 0 0
B: ABS=3f
B: MSC=10
B: FF=107030000 0 

Then get the eventXX from H: line and please provide the output of

udevadm info --name=input/eventXX

Thank you.

Hello gouchi. Thank you very much for your help. I did as you said, but I see no “input” block for this controller. I am not sure Lakka (or my linux laptop) even recognizes it as an input device.

Here is the entire output of the cat command, but I’m not sure if it will be useful to you.

Lakka:~ # cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0003 Vendor=046d Product=4024 Version=0111
N: Name="Logitech K400"
P: Phys=usb-0000:00:14.0-3:1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.2/0003:046D:C52B.0003/0003:046D:4024.0004/input/input3
U: Uniq=
H: Handlers=sysrq kbd leds mouse0 event3 
B: PROP=0
B: EV=12001f
B: KEY=3007f 0 0 483ffff17aff32d bf54444600000000 ffff0001 130f938b17c007 ffff7bfad9415fff febeffdfffefffff fffffffffffffffe
B: REL=1c3
B: ABS=100000000
B: MSC=10
B: LED=1f

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input4
U: Uniq=
H: Handlers=event4 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input5
U: Uniq=
H: Handlers=event5 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0001 Vendor=10ec Product=0283 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card1/codec#0/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input6
U: Uniq=
H: Handlers=kbd event6 
B: PROP=0
B: EV=40001
B: SND=6

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input7
U: Uniq=
H: Handlers=event7 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input8
U: Uniq=
H: Handlers=event8 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0019 Vendor=1050 Product=00c3 Version=0033
N: Name="Nuvoton w836x7hg Infrared Remote Transceiver"
P: Phys=nuvoton/cir0
S: Sysfs=/devices/pnp0/00:05/rc/rc0/input9
U: Uniq=
H: Handlers=kbd event9 
B: PROP=0
B: EV=100013
B: KEY=fff 0 200108fc32e 237605100000000 0 700158000 419200004001 8e968000000000 10000000
B: MSC=10

Please let me know if you have any further suggestions. Thank you again.

Yes we don’t see it…

What is the ouput of dmesg after plugging your controller and try to enter udevadm monitor then plug your controller.

Thank you.

The output of dmesg was very long, too long to post here.

When I started udevadm monitor, the gamepad was already plugged in. I unplugged it. Then I plugged it in again. Then I unplugged it. The output is:

KERNEL[411.236389] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
KERNEL[411.236463] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
KERNEL[411.236509] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
KERNEL[411.236730] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
UDEV  [411.237314] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
UDEV  [411.237452] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
UDEV  [411.237658] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
UDEV  [411.237810] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
KERNEL[416.739356] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
KERNEL[416.739674] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
KERNEL[416.739779] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
KERNEL[416.739828] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
UDEV  [416.740977] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
UDEV  [416.741714] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
UDEV  [416.742046] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
UDEV  [416.742245] add      /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
KERNEL[420.166434] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
KERNEL[420.166497] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
KERNEL[420.166534] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
KERNEL[420.166838] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)
UDEV  [420.167466] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb)
UDEV  [420.167674] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.1 (usb)
UDEV  [420.167859] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 (usb)
UDEV  [420.167993] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb)

Please let me know if you have any further suggestions.

If dmesg log is too long please paste it on hastebin. Otherwise, type journactl -f and plug your controller.

Thank you.