Your controller was working fine on Windows, and now on Linux Mint it sits there doing absolutely nothing. No inputs, no detection — just silence. You are not alone. Controller support on Linux Mint has improved dramatically, but between conflicting kernel modules, missing udev rules, and Steam Input quirks, getting a gamepad to work still requires some deliberate troubleshooting.
This 2026 guide walks you through every layer of the fix — from confirming hardware detection all the way to advanced driver cleanup — so you can get back to gaming fast.
Why Controllers Fail on Linux Mint (Drivers, udev Rules, and Kernel Modules)
Linux Mint handles controller input through a stack of interconnected components. When any layer misbehaves, your gamepad stops responding:
- Kernel modules — the low-level drivers that translate USB/Bluetooth signals into Linux input events. Xbox controllers use
xpadorxone; PlayStation controllers rely onhid-sonyorhid-playstation. - udev rules — rules that give userspace applications (like Steam) permission to access the input device. Without correct udev rules, even a detected controller may appear read-only or invisible to games.
- Conflicting drivers — the old
xboxdrvpackage clashes with the newer in-kernelxpaddriver and is a very common culprit for Xbox controllers silently failing. - Steam Input — Steam's own controller remapping layer must be enabled for the correct controller type, otherwise it passes nothing to the game.
- Kernel version — some controllers (particularly Xbox Series X/S and PS5 DualSense) need kernel 5.12 or later. Linux Mint 21.x ships with a 5.15 LTS kernel, and Mint 22 uses kernel 6.8 — both are generally sufficient, but an older Mint install may need a kernel upgrade.
Start by working through the steps in order. Most users fix the problem at Step 1 or Step 4.
Step 1: Verify the Controller Is Detected by the System (lsusb & jstest-gtk)
Before touching any drivers, confirm whether Linux Mint even sees your controller at the hardware level.
Check USB detection
Plug the controller in via USB and run:
lsusb
Look for entries like Xbox Controller, Sony DualSense, or Generic Gamepad. If nothing appears, try a different USB port or cable — hardware is the problem, not drivers.
Check kernel event devices
ls /dev/input/js*
ls /dev/input/event*
A detected controller will create a js0 (or js1) device. If no js* device appears even though lsusb shows the controller, the kernel module is not loading.
Test inputs visually
sudo apt install jstest-gtk -y
jstest-gtk
Open jstest-gtk, select your controller, and press buttons / move sticks. If the axes and buttons respond here, the controller works at the OS level and your issue is in Steam or the game itself — jump straight to Step 4.
Step 2: Install the Correct Kernel Modules (xone, xpad-noone, hid-sony)
Xbox One / Series controllers (USB)
The default xpad module works for most wired Xbox controllers. Check it is loaded:
lsmod | grep xpad
If the output is empty, load it manually:
sudo modprobe xpad
Xbox One / Series controllers (wireless USB dongle)
Wireless Xbox controllers using Microsoft's USB dongle require the xone driver, which is not in the default Mint repositories. Install it via DKMS:
sudo apt install dkms cabextract git -y
git clone https://github.com/medusalix/xone
cd xone
sudo ./install.sh --release
After installation, plug in the dongle and press the controller's connect button. The LED should stop blinking and stay solid.
PS4 / PS5 DualSense controllers
Mint 21+ includes hid-playstation (for PS5 DualSense, kernel 5.12+) and hid-sony (for DS4). Confirm the module loads when you plug in via USB:
dmesg | tail -20 | grep -i sony
dmesg | tail -20 | grep -i playstation
If you see hid-playstation: registered new device, the kernel driver is active. If Mint is running an older kernel (below 5.12), upgrade it via Update Manager → View → Linux Kernels and select the latest 6.x LTS kernel.
Generic / third-party controllers
sudo modprobe joydev
echo "joydev" | sudo tee -a /etc/modules
Step 3: Fix Bluetooth Controller Pairing Issues in Linux Mint
Bluetooth gamepads — especially Xbox Series, PS4 DS4, and PS5 DualSense — frequently fail to pair due to missing firmware or incomplete pairing state. Follow these steps carefully.
Check Bluetooth service is running
systemctl status bluetooth
sudo systemctl enable --now bluetooth
Install firmware for Xbox Bluetooth
sudo apt install firmware-atheros firmware-iwlwifi -y
sudo update-initramfs -u
Pair using bluetoothctl
bluetoothctl
power on
agent on
scan on
Put your controller into pairing mode (hold the Share + PS button for PS5; hold the Pair button on Xbox for 3 seconds until the logo flashes fast). Wait for the MAC address to appear in the scan output, then:
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX
quit
Persistent reconnection
If the controller pairs but disconnects on every reboot, mark it trusted (done above) and ensure the Bluetooth service auto-starts. Some users also need to disable LE (Low Energy) mode for older controllers:
sudo nano /etc/bluetooth/main.conf
Find and set: FastConnectable = true and AutoEnable = true, then restart:
sudo systemctl restart bluetooth
Step 4: Enable and Configure Steam Input for Your Gamepad
Even when the OS detects your controller perfectly, Steam can still pass nothing to games if Steam Input is misconfigured.
Global controller settings
- Open Steam → Settings → Controller
- Under General Controller Settings, enable the toggle matching your controller:
- Xbox Configuration Support — for Xbox One, Series, and most generic USB controllers
- PlayStation Configuration Support — for DS4 and DualSense
- Generic Gamepad Configuration Support — as a fallback for unrecognized devices
- Click the controller name that appears to confirm it is listed and active
Per-game override
If a specific game ignores the controller even with global settings enabled:
- Right-click the game in your library → Properties
- Click the Controller tab
- Set the override dropdown to Enable Steam Input
udev rules for Steam
Steam ships its own udev rules file. If it is missing (common after manual Steam installs), recreate it:
sudo cp ~/.steam/steam/steamstatic/sdk_content/linux/steam_devices/60-steam-input.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
Then unplug and replug the controller. Alternatively, install the steam package from the official Mint repo which places these rules automatically.
Step 5: Resolve Conflicts from Previously Installed Drivers (xboxdrv cleanup)
The xboxdrv userspace driver was popular years ago but is now obsolete and actively conflicts with the modern in-kernel xpad driver. If you installed it at any point, remove it completely:
sudo apt remove --purge xboxdrv -y
sudo rmmod xboxdrv 2>/dev/null
sudo modprobe xpad
Remove duplicate udev rules
Check for stale rules files that may be blocking input:
ls /etc/udev/rules.d/ | grep -i xbox
ls /etc/udev/rules.d/ | grep -i game
Remove any files with very old dates that reference xboxdrv, then reload:
sudo udevadm control --reload-rules
sudo udevadm trigger
Blacklist conflicting modules
If xpad and another module keep fighting at boot, blacklist the unwanted one:
echo "blacklist xboxdrv" | sudo tee /etc/modprobe.d/blacklist-xboxdrv.conf
sudo update-initramfs -u
sudo reboot
Still Not Working? Advanced Fixes and When to Get Expert Help
Upgrade the kernel
If you are on Linux Mint 20.x or an older kernel (below 5.15), many modern controllers simply lack driver support. Open Update Manager → View → Linux Kernels and install the latest recommended kernel. A kernel 6.8 or 6.12 build dramatically expands out-of-the-box controller support.
Check for duplicate input devices
cat /proc/bus/input/devices | grep -A 5 "Xbox\|Sony\|Game"
If you see the same device listed twice under different handlers, two modules are fighting. The output will show which module is bound — blacklist the unwanted one as shown in Step 5.
Verify Proton version in Steam
For Windows games running through Proton, DualSense issues sometimes trace back to a specific Proton Experimental build. Right-click the game → Properties → Compatibility → force a specific Proton version (Proton 9.0 is generally more stable for controller pass-through than Proton Experimental).
Test outside Steam with a native Linux game
Install gamepad-viewer or open a native Linux game that supports controllers. If the controller works outside Steam but not inside, the issue is isolated to Steam Input configuration and the udev rules in Step 4 should resolve it.
Get expert help
If you have worked through every step above and the controller is still not functioning — or if you are managing multiple Linux Mint desktops and need a reliable fix deployed quickly — CloudHouse Pay-Per-Ticket Support connects you with Linux technicians who specialise in desktop hardware and gaming configuration. No subscription, no monthly fee — pay only for the help you need.
Frequently Asked Questions
Why is my controller not working on Linux Mint?
The most common causes are missing or conflicting kernel modules (xpad, hid-sony, hid-playstation), a leftover xboxdrv installation, Bluetooth pairing that did not complete fully, or Steam Input not being enabled for the correct controller type. Start with lsusb to confirm hardware detection, then work through the steps above in order.
How do I install Xbox controller drivers on Linux Mint?
For wired Xbox One/Series controllers the built-in xpad module is usually sufficient — run sudo modprobe xpad if it is not auto-loading. For wireless Xbox controllers using Microsoft's USB dongle, install the xone driver: sudo apt install dkms cabextract git -y && git clone https://github.com/medusalix/xone && cd xone && sudo ./install.sh --release
How do I fix PS5 DualSense on Linux Mint?
Connect via USB first — the hid-playstation module (present in kernel 5.12+) should auto-load. For Bluetooth: open bluetoothctl, run power on → scan on, put the DualSense into pairing mode (hold Share + PS), then pair, trust, and connect the MAC address. In Steam, enable PlayStation Configuration Support under Settings → Controller.
Controller detected by Linux but not working in games — why?
This is almost always a Steam Input configuration issue. Go to Steam → Settings → Controller → General Controller Settings and enable the toggle for your controller type. If the problem is per-game, right-click the game → Properties → Controller → set override to Enable Steam Input.
How do I test if a controller works on Linux Mint?
Install and run jstest-gtk (sudo apt install jstest-gtk -y). Select your controller in the window and press buttons — you should see axes and button indicators respond in real time. If inputs register here but not in games, the issue is at the Steam/game layer, not the driver layer.
