Skip to content

Instantly share code, notes, and snippets.

@ammuench
Last active July 12, 2025 08:43
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

@barraIhsan
Copy link

It still doesn't work for me. I give up messing with this controller. It's been a waste of time. How difficult is it to make a controller that uses xinput and that shows up as a xbox 360 controller? I went back to using my $12.00 2.4ghz wireless controller since it works on everything. It's not great, but it works ootb and it shows up as a xbox 360 controller device.

It is XInput on dongle and wired mode. Or am I missing something here?

@Khyretos
Copy link

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idProduct}=="6012", ATTRS{idVendor}=="2dc8", MODE="0660", TAG+="uaccess", TAG+="udev-acl"

Hey i have a wireless ultimate 2 and i would like to try the DInput, do i just need to add this line to my rules?
for example this is my current rule for the controller:

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

do i just need to add that line below it?

@barraIhsan
Copy link

yes, you can add multiple rules into one file.

For example, 1st party and some of the 3rd party controller are also included in steam input. You can find it on /usr/lib/udev/rules.d/60-steam-input.rules

Huh, your udev rule is for the XInput right? I don't think it's needed anymore, but it doesn't hurt to just include that anyway.

@Khyretos
Copy link

yes, you can add multiple rules into one file.

For example, 1st party and some of the 3rd party controller are also included in steam input. You can find it on /usr/lib/udev/rules.d/60-steam-input.rules

Huh, your udev rule is for the XInput right? I don't think it's needed anymore, but it doesn't hurt to just include that anyway.

i had the controller before steam supported it and i had to add the rule.
i updated the controllers firmware and the nintendo switch mode works perfectly with Gyro but i cant make it detect gyro with the direct input mode (Power on + B). steam does detect and the additional buttons options appear but for some reason its very buggy, i turn it on and it inmeadeatly untoggles when i close it.

image

@barraIhsan
Copy link

i had the controller before steam supported it and i had to add the rule.

it was actually the linux kernel that updated to support the XInput on this controller.

steam does detect and the additional buttons options appear but for some reason its very buggy, i turn it on and it inmeadeatly untoggles when i close it.

huh, did you try clicking the edit layout instead? and assign the button manually?
Oh, for now, to correctly display 8bitdo's additional button, you have to use steam beta
image

@Khyretos
Copy link

i had the controller before steam supported it and i had to add the rule.

it was actually the linux kernel that updated to support the XInput on this controller.

steam does detect and the additional buttons options appear but for some reason its very buggy, i turn it on and it inmeadeatly untoggles when i close it.

huh, did you try clicking the edit layout instead? and assign the button manually? Oh, for now, to correctly display 8bitdo's additional button, you have to use steam beta image

Yes, i did that and unfortunatly the settings just keep resetting ill just wait until they iron out the bugs.

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