Controlador de Xbox 360 en Debian

By | 6 noviembre, 2017

Recientemente adquirí el que para mi es el mejor controlador (joystick, gamepad) para juegos multipropósito, el de la consola Xbox 360. La idea no es debatir cual es el mejor controlador ya que hay muy diversas opiniones, pero cuando digo “multipropósito” me refiero a uso con juegos diversos, ya que en mi cortísima carrera jugando cosas “modernas” he probado otros y he de decir que algunos se adaptan mejor a juegos de carreras o peleas (entre ellos recuerdo algún Logitech y el mismísimo competidor directo del Xbox 360 Controller: Dualshock 3), pero al momento de jugar juegos variados viene siendo el que mejor se adapta a mis manos. Eso sí, para juegos retro y de plataformas tengo unos preciosos controladores de SNES con entrada USB comprados en Gearbest.

Imagen tomada de Wikicommons

Controlador de Xbox 360 en color negro.

Dejando de lado lo anterior, los controladores de Xbox 360 son muy compatibles con PCs, vienen con un cable USB e inclusive un instalador para Microsoft Windows. Anteriormente había usado alguno en GNU/Linux y no recordaba haber realizado ningún procedimiento especial para que funcionara, así que lo conecté, abrí un juego y me dispuse a probarlo. Al momento de navegar por los menús no tuve inconveniente alguno, pero una vez iniciada la partida el controlador parecía tener siempre un botón de dirección pulsado y se volvía inusable, no dejaba de moverse sin sentido.

Instalación del controlador

Investigando brevemente encontré que el problema es bastante común y se debe a que el sistema reconoce el controlador como un dispositivo de entrada levemente distinto y carga un controlador no apropiado. Entonces lo que haremos será bloquear el uso del controlador inapropiado e instalar el apropiado.

Lo primero es instalar el paquete xboxdrv que está en los repositorios de Debian 9:

sudo apt install xboxdrv

Luego vamos a deshabilitar temporalmente el módulo xpad que es el que ocasiona el funcionamiento erróneo:

sudo modprobe -r xpad

Y en este punto si teníamos desconectado el controlador lo conectamos, y ejecutamos lo siguiente (el parámetro silent es para que se mantenga en segundo plano):

sudo xboxdrv --silent

Nos va a devolver algo así:

➜ ~ sudo xboxdrv --silent
xboxdrv 0.8.8 - http://pingus.seul.org/~grumbel/xboxdrv/ 
Copyright © 2008-2011 Ingo Ruhnke <grumbel@gmail.com> 
Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This program comes with ABSOLUTELY NO WARRANTY. 
This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.

Controller: Microsoft X-Box 360 pad
Vendor/Product: 045e:028e
USB Path: 001:006
Controller Type: Xbox360

Your Xbox/Xbox360 controller should now be available as:
 /dev/input/js0
 /dev/input/event16

Y con esto ya debemos poder jugar con normalidad usando el controlador de Xbox 360 en GNU/Linux. Aunque para evitar problemas a futuro recomiendo deshabilitar permanentemente el módulo xpad creando un archivo /etc/modprobe.d/xpad-blacklist.conf que contenga blacklist xpad, así:

➜ ~ cat /etc/modprobe.d/xpad-blacklist.conf 
blacklist xpad

Deja un comentario