Ubuntu – How to get an XBOX 360 controller working

gamepadxbox-360

I have a Microsoft XBOX 360 gamepad with the wireless adapter and I was wondering what I would have to install to use them with Ubuntu I do know that when using this on Windows I have to manually install the drivers for the wireless receiver (if that is relevant.)

Best Answer

If you find difficulties running your XBOX 360 controller, then this will help you install it on a computer running Ubuntu, and also show you how to configure it. These instructions are workable for both wired or wireless X-Box 360 controllers.

Getting Started

To be able to use your Xbox 360 wired/wireless controller under Ubuntu 12.04 (Precise Pangolin), you need first to install some required packages.

Open the terminal and run this command:

sudo apt-get install --install-recommends jstest* joystick xboxdrv

You also need to ensure that xpad is not getting loaded:

echo "blacklist xpad" | sudo tee -a /etc/modprobe.d/blacklist.conf
sudo rmmod xpad  # unload module if already loaded

Then run the xboxdrv:

xboxdrv --silent 

Configuring the pad

Connect now your game controller to your PC via USB (wired) or connect your XBOX 360 PC wireless gaming receiver for your wireless controller, then run this command to start the configuration:

jstest-gtk

In the window that shows up, select your controller (Microsoft X-Box 360 pad, Generic X-Box pad, etc.) and click Properties:

enter image description here

Note If your controller is not listed, try to click the "Refresh" button.

A new window will pop-up which will help you calibrate your gaming controller, remap the buttons of your game controller (changing the order of axis and buttons), etc. enter image description here

After you finish your configuration, save your new settings and close the window. You will be able now to use your Xbox 360 controller to play games under Ubuntu.

Configure xboxdrv to start at boot

If you're making a dedicated machine or want to ensure that xboxdrv is loaded on startup you can do this:

First create an upstart job:

sudoedit /etc/init/xboxdrv.conf

and in there add the following contents:

start on filesystem
exec xboxdrv -D
expect fork

This will ensure xboxdrv is started on boot.

Sources: