Skip to content

Instantly share code, notes, and snippets.

@ammuench
Last active August 16, 2025 19:59
Show Gist options
  • Save ammuench/0dcf14faf4e3b000020992612a2711e2 to your computer and use it in GitHub Desktop.
Save ammuench/0dcf14faf4e3b000020992612a2711e2 to your computer and use it in GitHub Desktop.
8BitDo Ultimate 2.4GHz wifi working in linux

FROM https://www.reddit.com/r/Fedora/comments/zmvkdj/8bitdo_ultimate_bluetooth_controller_working_in/


I've bought this new controller from 8BitDo and wished to use on linux, to my sadness the controller didn't work out of the box, neither by cable, the 2.4G dongle or bluetooth.

So I've tried a number of solutions and this one from u/GodOfEmus over in the 8bitdo community was the one to work for me:

  1. Create a new file /etc/udev/rules.d/99-8bitdo-xinput.rules
  2. Paste this udev rule in there, then save and exit the file:
  ACTION=="add", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="3106", RUN+="/sbin/modprobe xpad", RUN+="/bin/sh -c 'echo 2dc8 3106 > /sys/bus/usb/drivers/xpad/new_id'"
  1. Run the following command in a terminal: sudo udevadm control --reload
  2. Unplug and replug the controller if it was already plugged in, it might take a second if you have the bluetooth version

It will basically "cheat" the OS to see the controller as an generic xbox device, so sadly no bluetooth nor gyro control if you care about that, but the rumbling is working for me.

Link to the original post: https://www.reddit.com/r/8bitdo/comments/ykdsmv/ultimate_24_ghz_model_right_analog_not_working_in/

And link to the comment of u/GodOfEmus with the solution: https://www.reddit.com/r/8bitdo/comments/ykdsmv/comment/iv48s4k/?utm_source=share&utm_medium=web2x&context=3

Sharing this solution here to spread the word in our community

@lutzky
Copy link

lutzky commented Aug 12, 2025

Thank you all for this wonderful thread! I had my 8bitdo Ultime 2c Wireless since October 2024, and it worked great... and today, after not using it for a few weeks, suddenly support went super-weird: Steam itself was fine, specific games were fine (e.g. Celeste), but others were not (e.g. THPS1+2). I happen to have an old XBox clone controller as well, so I found a few things:

XBox clone controller - works fine, games show up as "Supports your Xbox Controller" or "Mostly Playable With Your Controller".

8bitdo without the fix - shows up as "Device support unknown", game doesn't even detect a controller (e.g. THPS1+2 shows keyboard buttons instead of controller buttons on-screen). Works fine in Steam itself and some games (e.g. Celeste)

8bitdo with above fix - still shows up as "Device support unknown", but seems to work fine in all games, including rumble.

@YannWe
Copy link

YannWe commented Aug 15, 2025

@njanirudh or anyone else with the 8bitDo Ultimate 2c Wireless Controller:

Have you tried upgrading the dongle firmware to 1.03 and if so what were your result?

On my end:

  • Upgrading the dongle firmware caused the controller to only be recognised as keyboard and mouse devices. Additionally instead of the expected prodID of 301c its coming up with 310a. Switching between X and DInput also no longer works when starting the controller with Home + X or B.
  • Obviously being recognised as keyboard and mouse, the device is not recognised by Steam/ jstest etc.
  • I can downgrade the dongle firmware again, allowing the device to function. However, since I have not gotten the rumble to work regardless of firmware version (device or dongle), I was hoping this might do the trick.
  • Running Fedora 42 KDE (6.15.9-201)
[  969.324318] input: 8BitDo 8BitDo Ultimate 2C Wireless Controller Mouse as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1.2/1-1.2:1.1/0003:2DC8:310A.000F/input/input34
[  969.324456] hid-generic 0003:2DC8:310A.000F: input,hidraw0: USB HID v1.11 Keyboard [8BitDo 8BitDo Ultimate 2C Wireless Controller] on usb-0000:02:00.0-1.2/input1
[  969.357989] hid-generic 0003:2DC8:310A.0010: hiddev96,hidraw6: USB HID v1.11 Device [8BitDo 8BitDo Ultimate 2C Wireless Controller] on usb-0000:02:00.0-1.2/input2

Any further thoughts on getting rumble to work with this device would be very welcome (already tried various udev rule versions i've found to no avail).

Thanks!

@inhabitworker
Copy link

Just to add ... on my Debian 12 install with kernel 6.1.0-30-amd64, for an 8bitdo Ultimate 2C wireless controller connected via the 2.4G dongle I created /etc/udev/rules.d/99-8bitdo-xinput.rules with content:

ACTION=="add", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="310a", RUN+="/sbin/modprobe xpad", RUN+="/bin/sh -c 'echo 2dc8 310a > /sys/bus/usb/drivers/xpad/new_id'"
ACTION=="add", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="310a", MODE="0666"

Then did:

sudo udevadm control --reload-rules

Controller is now picked up in evtest and responds to input.

On my other Debian 12 machine with kernel 6.12.9-1-amd64 installed from backports the 8bitdo Ultimate 2C wireless controllers connected via the 2.4G dongle worked out of the box.

Simply delightful fix for my anbernic device. Thanks a lot.

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