Despite the dominance of Windows, Linux is an excellent gaming platform. Developers are increasingly offering native Linux support. Major titles including Alien: Isolation are cross-platform compatible. Valve further promoted Linux gaming with its Linux-based SteamOS. Plus, the likes of The Linux Gamer on YouTube prove that gaming on Linux is far from an oxymoron.

On the contrary, Linux boasts support for 16-bit and 32-bit games, which remain difficult (if not impossible) to run on 64-bit Windows operating systems. This widespread compatibility is bolstered with gaming using Wine as well as the Wine front-end PlayOnLinux. Along with the rise of Linux gaming, there's a proliferation of gamepad support in games.

Linux boasts several means to play old DOS and Windows games. This either comes via native support or from key mappers. But occasionally issues pop up. Game controllers not working on Linux? Try these tips.

When Your Game Controllers Don't Work on Linux

xbox playstation game controllers

It's pretty simple to get your gamepads running in Linux. You may even use WiiCan to transform your WiiMote into a Linux game controller. But most Linux users know that hardware occasionally fails to function.

When making the foray into Linux gaming, here's a bit of what you can and cannot expect. Although I do own a Windows 10 PC which I game on, I really enjoy the Linux gaming experience. Unlike Windows, Ubuntu and Wine plus the PlayOnLinux frontend allowed me to play that $0.25 copy of the 1997 Westworld Blade Runner PC game I found at a yard sale.

1. Troubleshooting 101

troubleshooting-101
Image Credit: annca via Pixabay

If your game controllers are not working in Linux, it's often a driver issue. But before opening up the terminal, try a few basic troubleshooting steps. By basic troubleshooting, I mean let's go through the gamepad equivalent of "unplug your router and plug it back in." Using a wireless gamepad? Check that your controller or battery is charged. Also, ensure that your game controller is connected.

If it's a Bluetooth gamepad, confirm that Bluetooth is enabled, and your pad is synced. Or if you're using a Bluetooth dongle, ensure that it's plugged in. For wired gamepads, make sure the USB cable is securely plugged in. Provided all is in order with these basic first checks, proceed to the more complex troubleshooting. Using the Debian-based RetroPie, my wireless Xbox 360 controller kept flashing. I tried driver fixes and toiled for about 30 minutes before realizing it was simply dying batteries. Learn from my mistakes and try a few simple fixes first.

2. Check for Bluetooth

bluetooth service fail

Troubleshooting 101 calls for checking the easy fixes first. If you're using a Bluetooth gamepad, check whether Bluetooth is installed. Because most desktops and laptops include Bluetooth built-in, you should simply ensure it's enabled. But you can check if Bluetooth installed.

If you're using a USB Bluetooth radio, open a terminal and run:

        lsusb
    

Then to install Bluetooth, enter the following in a command line:

        sudo apt-get install Bluetooth
    

Once installation is complete, check if Bluetooth is running:

        /etc/init.d/bluetooth status
    

If it's not running, open a terminal and enter:

        /etc/init.d/bluetooth start

Sorting Bluetooth issues can be time consuming. If you're planning a big gaming session, perhaps with friends, make sure you've got Bluetooth running before they arrive!

3. Use the Xbox 360 Driver

xbox 360 game controller

Although many gamepads are available, the Xbox 360 controller is among the most popular. It's compatible with both PC and Xbox 360 consoles. Additionally, you can use your Xbox 360 controller with Raspberry Pi devices running RetroPie or RecalBox.

To use an Xbox 360 controller on Linux, you should install the xboxdrv package. You can accomplish this with the following command:

        sudo apt-get install xboxdrv
    

Initially using the my Xbox 360 wireless controller using RecalBox, a Debian-based Linux operating system for retro gaming. Enabling xboxdrv fixed the problem.

4. Use Ubuntu xboxdrv

The xboxdrv package which functions with an array of gamepads. However, if you experience problems, you can also try the ubuntu-xboxdrv package. Reportedly, this is fairly bug-free. Installation is pretty simple. But you'll first need to add the proper repository:

        sudo apt-add-repository -y ppa:rael-gc/ubuntu-xboxdrv
    

Once you've accomplished that, run an update and install the ubuntu-xboxdrv driver:

        sudo apt-get update

sudo apt-get install ubuntu-xboxdrv

This should ensure your Xbox 360 controller runs on Linux.

5. Sixaxis Bluetooth Drivers for PS3 Gamepad Support

playstation 3 game controller

Whereas the Xbox 360 wireless controller comes with its own USB hub, the PlayStation 3 controller does not. But since PS3 gamepads sport Bluetooth connectivity, you can still use these for Linux gaming. However, you'll need to add its drivers.

First, add the proper repositories:

        sudo add-apt-repository ppa:falk-t-j/qtsixa
    

Next, perform an update and grab the Sixaxis package:

        sudoapt-get update

sudo apt-get install qtsixa

Once installed, your PS3 controller should work. Take the time to open the utility and configure your controller for enhanced results.

6. Use Xpad

Some users report better compatibility with the Xpad Linux kernel driver. Not to be confused with the text editor, xPad. This driver functions with Xbox, Xbox 360, and Xbox One controllers. On certain forums, community members cite Xpad as less buggy than the original xboxdrv. Additionally, it's more versatile. For instance, Xpad includes an option to recognize the triggers as buttons on the Debian-based RetroPie retro gaming Linux operating system.

To install the Xpad Linux kernel driver, open a terminal and run:

        sudo git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4

sudo dkms install -m xpad -v 0.4

If you need to update Xpad, simply enter the following into your command line:

        cd /usr/src/xpad-0.4

sudo git fetch

sudo git checkout origin/master

sudo dkms remove -m xpad -v 0.4 --all

sudo dkms install -m xpad -v 0.4

If you've had trouble so far, or want a bit more from your game controller, try Xpad.

Get a Grip!

Usually, when your gamepads fail to work in Linux it's a driver issue. It may be a simple fix such as charging your batteries, making sure your dongle is connected, or Bluetooth is enabled. Or you may require a driver installation. If one driver isn't working, you may have better luck with another driver. Looking for another neat Linux gaming project? Try building a game server on Linux or try video game live streaming on Linux. You can even transform a Raspberry Pi running a Linux operating system into a DIY Steam box for gamestreaming.

Luckily, most gamepads work on Linux out of the box. I use my Xbox 360 wireless controller with Linux on my Ubuntu 16.04 machine for gaming in Steam and playing titles from GOG. From the onset, I never even had to install drivers. I've also had great success using my wireless Xbox 360 gamepad with RetroPie and Recalbox. The latter, however, did require a driver tweak purely to alleviate an annoying flashing Xbox center button issue.

What troubleshooting steps do you suggest to get gamepads working in Linux?