Skip to content

Instantly share code, notes, and snippets.

@michaelspiss
Last active January 6, 2026 22:12
Show Gist options
  • Select an option

  • Save michaelspiss/d2e36ffa687a9b5a6d1901e6b2b48ed2 to your computer and use it in GitHub Desktop.

Select an option

Save michaelspiss/d2e36ffa687a9b5a6d1901e6b2b48ed2 to your computer and use it in GitHub Desktop.
Connect (multiple) EasySMX controller(s) on linux

This simple setup enables a plug-and-play experience for EasySMX controllers on linux. It is based on Florian Gast's solution on amazon, but has been modified to enable force feedback and work with multiple controllers.

Install xboxdrv

Place connect-easysmx-controller.sh in a location of your choosing

If your controller does not support force feedback, remove --force-feedback.

Place easysmxcontroller@.service in /etc/systemd/system

Replace <path_to_script> with the actual path to connect-easysmx-controller.sh.

Place easysmx-controller.rules in /etc/udev/rules.d

You may need to edit idVendor and idProduct values if your model differs from mine:

Run lsusb which should return a list of devices. By running it before and after plugging in the receiver, you can figure out which line it corresponds to. Mine looks like this:

Bus 001 Device 053: ID 2f24:0091    GAME FOR WINDOWS 1.02

2f24 would be the vendor, 0091 the product id.

#! /bin/bash
IFS=: read -r busnum devnum <<< "$1"
busnum=$(printf "%03i" $busnum)
devnum=$(printf "%03i" $devnum)
xboxdrv --device-by-path ${busnum}:${devnum} --type xbox360 --silent --force-feedback
ACTION=="bind", ATTRS{idVendor}=="2f24", ATTRS{idProduct}=="0091", TAG+="systemd", ENV{SYSTEMD_WANTS}="easysmxcontroller@%s{busnum}:%s{devnum}"
[Unit]
Description=Connect EasySMX controller with path %i
[Service]
Type=simple
ExecStart=<path_to_script>/connect-easysmx-controller.sh %i
@onlybacon
Copy link

It's possible my device is broken, my x10 controller was working wirelessly but no longer. The connection is made as indicated by the solid blue light but is unresponsive. I tried this script, hoping it would fix something, I suspected it was caused by a recent update. When I run ./connect-easysmx-controller.sh, this is what I get

` ./connect-easysmx-controller.sh  ✔
xboxdrv 0.8.14
Copyright © 2008-2011 Ingo Ruhnke grumbel@gmail.com
Licensed under GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions; see the file
COPYING for details.

-- [ ERROR ] ------------------------------------------------------
USBSubsystem::find_controller(): couldn't find device 000:000
`

@NullifyDev
Copy link

It's possible my device is broken, my x10 controller was working wirelessly but no longer. The connection is made as indicated by the solid blue light but is unresponsive. I tried this script, hoping it would fix something, I suspected it was caused by a recent update. When I run ./connect-easysmx-controller.sh, this is what I get

` ./connect-easysmx-controller.sh  ✔ xboxdrv 0.8.14 Copyright © 2008-2011 Ingo Ruhnke grumbel@gmail.com Licensed under GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.

-- [ ERROR ] ------------------------------------------------------ USBSubsystem::find_controller(): couldn't find device 000:000 `

To manually run the connection script, you can find the Bus and Device ID via lsusb.
For example, my output of it contains this line: Bus 001 Device 061: ID a1b2:c3d4 Microsoft Corp. Xbox360 Controller
What you are looking for is Bus AAA Device BBB or in my case Bus 001 Device 061. which turns into 001:061 which should be the argument.

If by any chance it errors the same way but gives you a different BUS:ID than what you gave it, then shorten it to something like 001:61.

It's temporary while you wait for a fix or something

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment