I have an 8BitDo Pro 2 controller I’ve used a bunch without issue on Windows, now I’m moving to Linux (Mint specifically) and I’m having trouble getting the controller to work. It’s supposed to work with Linux, but I can’t get it to work. Steam doesn’t detect the controller in its settings.
Check out this repo for udev rules: https://codeberg.org/fabiscafe/game-devices-udev
Instructions copied from repo:
- Download the archive.
- Extract the archive.
- Copy all the rule files to /etc/udev/rules.d.
- Create another file: /etc/modules-load.d/uinput.conf.
- Put uinput into that file.
- Reboot.
I did all that, but it’s still no different than before. It still only works by cable.
The last thing I can suggest are the last two comments on the steam-devices repo: https://github.com/ValveSoftware/steam-devices/issues/64#issuecomment-3092449971
Try adding these to a file such as
/etc/udev/rules.d/71-8bitdo-pro-2.rules
# 8bitdo pro 2 bluetooth hidraw ACTION!="remove", KERNEL=="hidraw*", KERNELS=="*2DC8:6006*", MODE="0660", TAG+="uaccess"
and/or
ACTION!="remove", KERNEL=="hidraw*", KERNELS=="*2DC8:6012*", MODE="0660", TAG+="uaccess"
The reason I added
ACTION!="remove"
is due to a recent change with systemd.ACLs for device nodes requested by “uaccess” udev tag are now always applied/updated by systemd-udevd through “uaccess” udev builtin, and systemd-logind no longer applies/updates ACLs but triggers “change” uevents to make systemd-udevd apply/update ACLs. Hence, the “uaccess” udev tag should be set not only on “add” action but also on “change” action, and it is highly recommended that the rule is applied all actions except for “remove” action.
Recommended example:
ACTION!=“remove”, SUBSYSTEM==“hidraw”, TAG+=“uaccess”
The following example does not work since v258:
ACTION==“add”, SUBSYSTEM==“hidraw”, TAG+=“uaccess”
I’m not sure I’m quite technical enough for this, what exactly is the uinput I need to put into the file from step 4?
Its literally just the word
uinput
.So you can do
sudo echo 'uinput' > /etc/modules-load.d/uinput.conf
Which just tells your system to load the uinput module on startup.
Just to tag on to this, I only needed to enable the
uinput
module to fix my issue (steam suddenly stopped seeing my 8BitDo controller when it previously could). Didn’t have to do anything with udev rules.
Are you using the flatpak version of Steam, and if so does it require a bit of permission-fiddling to see controllers?
No, and it has no issues finding the controller if I connect it physically
Perhaps this will help
https://github.com/bluez/bluez/issues/673#issuecomment-1849132576
Mine work perfectly with Bazzite
Same.
No issues with Bluetooth on my X870E board.
Not using dongle.
Mine works on PopOS which is also Debian/Ubuntu like Mint. There are some instructions here that may help. https://www.8bitdo.com/steam/#pro2-popup
The only thing in that guide that worked was the tip to connect it by cable
Does the controller show up in your Bluetooth panel? Is it pairing successfully?
Yeah, I can pair it with no issue.
Are you using the dongle that came with the controller? Bluetooth via direct connection doesn’t work for these controllers, you have to use the dongle. The Bluetooth direct (no dongle) only works for mobile devices.
I don’t recall getting a dongle with it, I used Bluetooth before I think
If it’s the Pro2 the dongle should be in the charging base under a little flap. When I get home I can take a pic if needed. To be clear: I am not running Linux but I had this issue attempting to use the controller Bluetooth without using the dongle.
EDIT: I am using the Ultimate 2, not the Pro2, this may not apply. I apologize.
Yeah, I was gonna say. I use the Pro2 with Bazzite via Bluetooth. There is no dongle, it’s just a Bluetooth controller.
I use an 8bit duo2 with Bluetooth in Windows, but am planning on switching to Linux by the end of the year after doing a proper data backup.
Just to be clear, the Bluetooth in Linux doesn’t work with these controllers and requires the dongle?
~~TBH I am not using Linux and am using a Pro 2 like OP, however I was attempting to connect to my laptop (Win 10) via Bluetooth only, and it wouldn’t work.
That’s when I discovered Bluetooth to Bluetooth only works with mobile, and to connect to a PC you have to have the USB dongle that came with it. If OP is saying it works fine direct connection I’m recommending they try the dongle.~~
EDIT: I am using the Ultimate 2, not the Pro2, this may not apply. I apologize.
I have been using my 8bitdo pro2 with the Bluetooth built into my Win11 desktop PC motherboard for at least a year. Mine didn’t come with a dangle, but I could have purchased it separately. It was the old chunky style dangle iirc.
Dongle is a good suggestion though as that should work out of the box.
That’s odd. I’ve used a variety of 8BitDo controllers on a few distros through the years with no issues. I don’t have specifically the Pro 2 though.
I use the Ultimate 2.4Ghz on Debian and it was plug and play for me.
Do you use DInput? I also had some issues with XInput and Steam.
I tried both, they don’t work.
I use a pro 2 on Fedora and it works. I had to install steam from the distributor though, nothing worked via flatpaks
I’ve had an issue with controllers before because Steam’s udev rules straight up give the wrong permissions to the device files they create. Check Steam logs, there’s one specifically for controllers if I remember correctly (or maybe it was a generic “console” log) and it should be very clear if this is the issue because there will be a permission error recorded.
Where are those logs?
Should be
Steam/logs
, withSteam
your Steam folder where e.g.steamapps
is.
What mode are you using? I’ve found D-input works better than X-input.
Got the Ultimate 2 Wireless (both the Switch and the XBox version), connecting through Bluetooth.
I just connected it and it worked right out of the box, however every now and again it will “hang” and the joysticks stop working. The only thing that helps is switching it to 2.4 GHz mode, wait a couple of seconds, switch back to BT and wait for it to reconnect.
Steam finds it just fine, installed through Pacman.
I’m on Garuda Linux (Arch-based).
I have Pop! OS and I’ve never had any problems with my 8BitDo controller
I use the arcade stick, pro and pro 2 controller, all of them are 8Bitdo and everything is okay. Which linux groups is you user in? I had a similar problem because my user wasn’t in input group in void linux
Edit: I can play both wired and wireless with bluetooth