How To: Use a Wired XBox 360 controller in Linux

Just in-case ya wanna, and because it took me ages to get it working the other week….

To check if the driver is there when you plug the controller in use:

If the device is detected you’ll see something like:
info.product = ‘Microsoft X-Box 360 pad’  (string)
input.product = ‘Microsoft X-Box 360 pad’  (string)


Now… The left analog stick will grab the mouse cursor – it’s a known bug. Excellent thread on it (where I eventually found solution):

If you’re using KDE, you can look in System Settings | Joystick (sudo apt-get install joystick if that option isn’t available) to see if you can get input/move stuff, if you can only move cursor w/ left analogue but buttons don’t register (joystick should be /dev/input/js0 btw) then you need to grab: sudo apt-get install xserver-xorg-input-joystick

In Gnome, there isn’t a joystick app available with the default install, so just run jstest (part the above installed joystick package) from the command line to see if the joystick’s registering.

To stop the mouse cursor being grabbed by the joystick, edit /etc/X11/xorg.conf and add the following lines near the beginning:

Section “ServerFlags”
Option “AutoAddDevices” “False”

Also, for calibration don’t use jscalibrator or jstest – they just frack things up (in my experience) – use the kde system settings one. This obviously assumes you have KDE installed, which I do… so good stuff ;)

MAME on! =D

Bonus xmame hint: If a game will run close to full speed and you want to give it a bit off a boost – turn off automatically adjust frameskip and set it to 0 to speed things up – should hit full whack. Those frameskip adjusting algorithms are cpu intensive.

Update: I’ve switched from KDE to Gnome, and in Jaunty 9.04 64-Bit you can just plug the controller in and it’ll work without grabbing the mouse cursor and knackering stuff to the point you need to tweak your xorg.conf. Jolly good.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.