lunes, 7 de febrero de 2011

Configurar controles (gamepads) para juegos en GNU/Linux

Si ya eres usuario de GNU/Linux y ya estás a gusto con los juegos disponibles pero te resulta muy incómodo utilizar el teclado para jugar (realmente es muy incómodo jugar SuperTuxKart de a dos o tres en un teclado), hoy veremos cómo configurar rápidamente esos controles (gamepad) USB. En general casi cualquier gamepad USB debería funcionar al conectarlo a nuestro sistema (plug and play), pero en este tutorial yo utilicé unos Logitech Dual Action.

Lo primero que debemos hacer después de conectar nuestro control es verificar que han sido reconocidos como dispositivos de entrada por nuestro sistema, esto lo haremos con el comando lsusb conjuntamente dando un vistazo a /dev/input/.


fraterneo@rainbow2:~$ lsusb | grep Logi
Bus 004 Device 003: ID 046d:c216 Logitech, Inc. Dual Action Gamepad
Bus 004 Device 002: ID 046d:c216 Logitech, Inc. Dual Action Gamepad
Bus 002 Device 002: ID 046d:c03d Logitech, Inc. M-BT96a Pilot Optical Mouse

fraterneo@rainbow2:~$ ls -l /dev/input/ | grep js
crw-rw-r--+ 1 root root 13,  0 2011-02-06 17:21 js0
crw-rw-r--+ 1 root root 13,  1 2011-02-06 17:21 js1

Como podemos observar los dos gamepads fueron detectados por el sistema correctamente.

Probablemente ahora solo necesitemos configurar cada juego en particular para que reconozca las entradas desde nuestro gampad y no desde el teclado. Por ejemplo, en TORCS podemos hacerlo según este tutorial de su página oficial, y así para cada juego que tenga soporte para gamepads.

En caso de ser necesario lo podemos configurar de manera global con la herramienta joystick dentro de la cual viene la utilidad jscal, para calibrar nuestro gamepad:


En Debian/Ubuntu:

fraterneo@rainbow2:~$ sudo apt-get install joystick



En Fedora:
fraterneo@rainbow3:~$ su -c 'yum install joystick'

fraterneo@rainbow2:~$ jscal -c /dev/input/js0 
Joystick has 6 axes and 12 buttons.
Correction for axis 0 is broken line, precision is 0.
Coeficients are: 112, 142, 5534751, 5534751
Correction for axis 1 is broken line, precision is 0.
Coeficients are: 112, 142, 5534751, 5534751
Correction for axis 2 is broken line, precision is 0.
Coeficients are: 112, 142, 5534751, 5534751
Correction for axis 3 is broken line, precision is 0.
Coeficients are: 112, 142, 5534751, 5534751
Correction for axis 4 is broken line, precision is 0.
Coeficients are: 0, 0, 536870912, 536870912
Correction for axis 5 is broken line, precision is 0.
Coeficients are: 0, 0, 536870912, 536870912

Calibrating precision: wait and don't touch the joystick.
Axis 0:  128,  128 Axis 1:  128,  128 Axis 2:  128,  128 Axis 3:  128,  128 Axis
Axis 0:  128,  128 Axis 1:  128,  128 Axis 2:  128,  128 Axis 3:  128,  128 Axis
Axis 0:  128,  128 Axis 1:  128,  128 Axis 2:  128,  128 Axis 3:  128,  128 Axis
Axis 0:  128,  128 Axis 1:  128,  128 Axis 2:  128,  128 Axis 3:  128,  128 Axis
......
......
......
AxisDone. Precision is:                                             
Axis: 0:     0
Axis: 1:     0
Axis: 2:     0
Axis: 3:     0
Axis: 4:     0
Axis: 5:     0

Move axis 0 to minimum position and push any button.

Seguimos cada paso del proceso de calibración como nos lo va indicado jscal. Una vez completad, procederemos a dar los permisos adecuados para que los juegos tengan acceso a los gamepads.

fraterneo@rainbow2:~$ sudo chmod 666 /dev/input/js0 
fraterneo@rainbow2:~$ sudo chmod 666 /dev/input/js1


Todo listo! A disfrutar de nuestros juegos favoritos en GNU/Linux!


Artículos relacionados



Widget by Hoctro | Jack Book

3 comentarios:

  1. saludos,he intentado configurar mi attack3 de logitech con la herramienta joystick (en fedora) le doy la dirección del joystick y me dice:

    jscal: error getting version: Invalid argument

    ResponderEliminar
  2. primero tienes que instalarlo poniendo sudo apt-get install joystick

    ResponderEliminar
  3. Exccelente!! ya lo pude configurar.

    ResponderEliminar