Xbox controller
This article guide you to connect Xbox Series S/X and Xbox One S/X controllers to your openSUSE system.
Update firmware
You can find many people complain on the internet that Xbox controllers cannot connect to Linux via Bluetooth unless you do complicate kernel module configuration. That is caused by problematic firmware. You could solve it by update the controller firmware. And nothing is needed to do with your openSUSE system.
To update firmware, you need a Windows 10/11 system with latest updates. You can also use VirtualBox if you know how to forward USB ports. Then you can follow this guide from Microsoft: Update your Xbox Wireless Controller.
Connect
Through USB cable
With a USB Type-C cable, the controller should work out-of-box. Wired connection is the fastest and most reliable method to connect. You don't need to buy batteries and wireless receivers.
Through Bluetooth
Bluetooth is the slowest and least reliable way to connect. However, it is still fast enough for most users and you don't need to buy a receiver if your PC already has Bluetooth.
To connect Xbox controller via Bluetooth, you need to install xpadneo driver (without the driver, some software doesn't work correctly):
# Tumbleweed sudo zypper install xpadneo # Leap <= 15.6 opi xpadneo
Steps to connect:
- Press and hold the tiny round button on the top (near USB Type-C port), until the Xbox button is light up and blink quickly (not slowly).
- Open Bluetooth settings on your openSUSE system, and add devices.
- Find the Xbox controller in discovered device list and connect.
- You can open System Settings -> Input Devices -> Gamepad to test if your controller is recognized and functioning.
If you have trouble to connect, try to #Update firmware, and retry. (You may need to forget the Bluetooth device if previous pairing doesn't work.)
Through Xbox wireless receiver
Xbox wireless receiver is expensive and you have to buy it separately. However, compared with Bluetooth, it has more stable connection, lower latency and enables the headphone jack on the controller. You can connect up to 8 controllers with one receiver.
To connect Xbox controller via wireless receiver, you need to install xone driver (without the driver, some software doesn't work correctly):
# Tumbleweed sudo zypper install xone-kmp-default # Leap <= 15.6 opi xone-kmp-default
Steps to connect:
- Plug the wireless receiver into your PC
- Press the button at the end of wireless receiver, until the the tiny LED blink.
- Press and hold the tiny round button on the top of the controller (near USB Type-C port), until the Xbox button is light up and blink slowly (not quickly).
- Wait the controller and receiver to connect and LEDs stop blinking.
- You can open System Settings -> Input Devices -> Gamepad to test if your controller is recognized and functioning.
Through WiFi
Not tested yet...
Trouble shooting
Steam keeps disconnect & reconnect controller
Currently no perfect work around, please use a Type-C cable.
Steam doesn't recognize controller after disconnect & reconnect
This is a known bug with Proton Experimental. Switch to Proton 9.0 or 8.0 can fix this.