Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

XboxOne Gentoo


Según algunas webs de internet el kernel de Linux tiene soporte para xbox one a partir de la versión 4.5, a día de hoy Gentoo tiene como kernel estable 4.4.39, para poder conservar el kernel estable y disfrutar de nuestro gamepad compilaremos el módulo de forma independiente y lo cargaremos.

Nos bajamos la última versión del código del driver de Xpad y compilamos el módulo.

cd /usr/src/
git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4
cd xpad-0.4/
make

Hacemos una copia del módulo anterior, descargamos el módulo y lo recargamos.

mv /lib/modules/4.4.39-gentoo-kr0m-xbox/kernel/drivers/input/joystick/xpad.ko /lib/modules/4.4.39-gentoo-kr0m-xbox/kernel/drivers/input/joystick/xpad.ko.ori && cp xpad.ko /lib/modules/4.4.39-gentoo-kr0m-xbox/kernel/drivers/input/joystick/xpad.ko
rmmod xpad
modprobe xpad

Las librerías SDL disponene de unas herramientas muy útiles, nos bajamos el código fuente y las compilamos.

cd /usr/src
wget --no-check-certificate https://libsdl.org/release/SDL2-2.0.5.tar.gz
tar xvzf SDL2-2.0.5.tar.gz
cd SDL2-2.0.5/test
./configure
gcc -o testjoystick testjoystick.c -g -O2 -D_REENTRANT -I/usr/include/SDL2  -DHAVE_OPENGL -g -lSDL2_test -lSDL2
gcc -o controllermap controllermap.c -g -O2 -D_REENTRANT -I/usr/include/SDL2  -DHAVE_OPENGL -g -lSDL2_test -lSDL2

Consultamos el ID del gamepad y la versión de firmware.

./testjoystick
INFO: There are 1 joysticks attached
INFO: Joystick 0: Microsoft X-Box One pad (Firmware 2015)
INFO:        axes: 6
INFO:       balls: 0
INFO:        hats: 1
INFO:     buttons: 11
INFO: instance id: 0
INFO:        guid: 030000005e040000dd02000003020000

Lanzamos un asistente que nos permitirá obtener el mapping de botones de nuestro gamepad.

./controllermap 0
INFO: There are 1 joysticks attached
INFO: Joystick 0: Microsoft X-Box One pad (Firmware 2015)
INFO:        axes: 6
INFO:       balls: 0
INFO:        hats: 1
INFO:     buttons: 11
INFO: instance id: 0
INFO:        guid: 030000005e040000dd02000003020000
INFO: Watching joystick 0: (Microsoft X-Box One pad (Firmware 2015))
INFO: Joystick has 6 axes, 1 hats, 0 balls, and 11 buttons
INFO:

    ====================================================================================
    Press the buttons on your controller when indicated
    (Your controller may look different than the picture)
    If you want to correct a mistake, press backspace or the back button on your device
    To skip a button, press SPACE or click/touch the screen
    To exit, press ESC
    ====================================================================================
INFO: Mapping:

030000005e040000dd02000003020000,Microsoft X-Box One pad (Firmware 2015),platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,

Ahora tan solo debemos exportar la variable de entorno SDL_GAMECONTROLLERCONFIG con el mapeo y lanzar la aplicación que deseemos, en mi caso Steam, para que sea mas cómodo exportaremos la variable mediante el perfil de bash.

vi .bashrc
export SDL_GAMECONTROLLERCONFIG="030000005e040000dd02000003020000,Microsoft X-Box One pad (Firmware 2015),platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,"

Salimos de la shell y volvemos a entrar, ya podemos disfrutar de nuestro gamepad en Linux :)

En cuanto al modo inalámbrico hay muchas esperanzas en que funcione en un futuro próximo.


Autor: Kr0m -- 16/01/2017 01:01:31