Table of Contents
![[linux-penguin-xbox-steam.webp]](/categories/linux/xbox-controllers-on-fedora-linux/linux-penguin-xbox-steam.webp)
New Post: Xbox Controllers on Fedora Linux 2
Now that Fedora 43 is close to being released, I remembered a problem I had when upgrading to Fedora 42 = my Xbox controller (exact name: Xbox Core Wireless Gaming Controller) stopped working entirely after the upgrade.
The system could detect the device (udevadm monitor showed the connection) but Steam didn’t recognize any input from the controller.
The Problem
Following a major Fedora system upgrade, the Xbox controller became non-functional despite being properly detected to the computer (and yes, it was working like a charm before, nothing was done on my part to break it).
Symptoms:
- Controller pairs successfully via Bluetooth or USB.
udevadm monitorsees the device connecting and disconnecting.- Steam shows no controller input whatsoever.
- No obvious error messages in system logs.
Understanding The Issue
Xbox controllers on Linux require the xpad kernel module (provided by the kernel-modules-extra package) to function. This module acts as the driver that translates hardware input from the controller into events that applications can understand.
During Major Distro Upgrades:
During major Fedora version upgrades, if you previously installed xpad support and it’s missing immeditely after, the most likely cause is Fedora’s package management:
- Each kernel version maintains its own
kernel-modules-extrapackage. - If
xpadwas installed as an optional package rather than as a dependency of another package, dependency resolution during the upgrade may not automatically reinstall it. - The system boots successfully because
xpadisn’t essential for core functionality (it only affects Xbox controller availability).
The Fix
Check for the Module
- First, verify if the
xpadmodule is currently loaded. - If the command returns nothing, the module isn’t loaded and needs to be installed.
lsmod | grep xpad
Install Missing Kernel Module
- The
xpadmodule is included in thekernel-modules-extrapackage. - Install this package if not already.
sudo dnf install kernel-modules-extra
Verify the Fix
- After the package is installed, reconnect your Xbox controller to your computer (via Bluetooth or USB) and check if the module loaded automatically:
lsmod | grep xpad
# Expected output:
xpad 32768 0
ff_memless 20480 1 xpad
The Xbox controller should now work immediately in Steam and other applications. If not, load the module manually and try again.
# Manually load the module
sudo modprobe xpad
# Make sure the module load automatically on boot
sudo bash -c 'echo "xpad" > /etc/modules-load.d/xpad.conf'