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:
- Create a new file /etc/udev/rules.d/99-8bitdo-xinput.rules
- 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'"
- Run the following command in a terminal:
sudo udevadm control --reload
- 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
Debian 12 Bookworm
I am using the 8BitDo Ultimate C 2.4G Wireless Controller
working file:
/etc/udev/rules.d/99-8bitdo-xinput.rules
So I tried to blindly use the original post code shown below to see if I could get this working ..
and then trying to either reboot or running
udevadm control --reload
with disconnecting and reconnecting the device, and that worked ..however what I really want is this to work without hacky stuff .. so I tried what @Edwardius suggested, like so;
then I did a reboot and the whole
udevadm control --reload
with disconnecting and reconnecting the device .. didn't work .. so I did more research and after tryinglsusb
I found that my device is actually called out as2dc8:3016
. So how is it that the original setup works with the hacky stuff and the wrongidProduct
but the controller is not recognized inMODE="0666"
with the correctidProduct
? Any assistant is greatly appreciated :)side note: is it possible that by doing the hacky version first I've screwed up the native support ? how would I reverse that ?