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.

How To: Swap between Soundcards in Linux

Slap the following into a terminal:

asoundconf set-default-card [name of card]

But how do I find out the TRUE NAME of any soundcards are currently recognised so I can fully PWN them I hear you cry? Why that would be:

aplay -l [lower case “L”, not “1”]

And if you want to see what output formats are supported by all recognised cards (Stereo [2], 4.0, 4.1, 5.1 etc etc) use:

aplay -L

Just don’t forget that the new default card will only be used for things opened after you issue the command, so to swap and get sound in a browser already running you’d need to restart it.

Also, if you want to test your speakers, use the cryptically named command “speaker-test”, i.e.:

speaker-test -l1 -twav -c6

Switch descriptions (–help for more): 1 loop, use an inbuild sample of a lady saying “Front left, Front Right, Center” etc, and use 6 channels (i.e. 5.1 sound – front left/right, back left/right, center and subwoofer (LFE))

Happy days…

Update: GUI version? How about asoundconf-gtk.. Lovely job.