Pad de Xbox360 en Linux

Muchos tenemos el famoso Pad de la Microsoft, el Pad del 360. Pero muy pocos usuarios sabemos como instalarlo y hacer que funcione, y pues yo me incluyo entre ellos.

Para los que han comprado este pad o piensan hacerlo les hago la siguiente guía, la cual funciona para los siguientes controles:

- Pad Xbox360 alámbrico.
- Pad Xbox360 Inalámbrico, conectado con adaptador wireless.
- Pad Xbox360 Inalámbrico, conectado con kit de carga.
- Pad Xbox alámbrico adaptado por USB al PC.

Nota: también adapte el pad inalámbrico del Xbox (el negro), y si funciona, pero note que perdia señal a cortas distancias y no respondia muy bien que se diga. No se si sera por mala configuración del driver o que la modificación de ese control no va bien.

...:::Instalando JSCalibrator:::...

Podemos buscarlo e instalarlo desde "Aplicaciones>Añadir o quitar..." o desde una terminal:
$ sudo apt-get install jscalibrator
Primer Método

Nuestra primera opción es descargar los drivers y compilarlos, para no tenerlos desordenados, lo mejor es meterlos en una carpeta aparte:
$ mkdir xpad
$ cd xpad
$ wget "http://xbox-linux.cvs.sourceforge.net/*checkout*/xbox-linux/kernel-2.6/drivers/usb/input/xpad.c" "http://xbox-linux.cvs.sourceforge.net/*checkout*/xbox-linux/kernel-2.6/drivers/usb/input/xpad.h"
$ sudo gedit makefile
Luego de esto deberia abrirse un editor, en el cual colocamos lo siguiente:
KERNEL_DIR?=/usr/src/linux-headers-2.6.20-12-generic
obj-m := xpad.o
EXTRA_CFLAGS= -I$(shell pwd)
all:
$(MAKE) modules -C $(KERNEL_DIR) SUBDIRS=$(shell pwd)
Nota: lo que va despues de "linux-headers" puede variar según el kernel que utilicemos, para saber cual estamos usando escribimos:
$ uname -r
Y ahora procedemos a compilar y comprobar si no hay errores:
$ sudo make
$ sudo cp /home/TU_USUARIO/xpad/*.ko /lib/modules/$(uname -r)/kernel/drivers/usb/input
$ sudo depmod -a
$ sudo modprobe xpad

Segundo Método

Este es el que me funciono en Intrepid Ibex y Hardy Heron. Primero verificamos si se ha montado el pad o no. Para ello hacemos lo siguiente:
$ xinput list
Esto nos mostrara un listado con todos los dispositivos conectados a nuestro ordenador, en el buscamos nuestro pad, como se muestra en la foto:


Si aparece hacemos lo siguiente:
$ xinput set-int-prop ID_DEL_PAD 'Device Enabled' 32 0
Y con esto ya podemos configurar y calibrar normalmente nuestro pad con "jscalibrator".