epespad

Instalar Twin USB Gamepad en Linux (Kit 2 en 1 usb)

Recientemente adquirí un kit de controles, para un proyecto de Arcade con un equipo viejo.

(Es un Kit de 2 controles mediante 1 solo USB)

Instalar Twin USB Gamepad en Linux (Kit 2 en 1 usb)

En Windows, evidentemente al conectarlo, detecto los 2 mandos sin problema. Pero en Arch me lleve la sorpresa que lo detecto como un solo control de 20 botones xD.

¿Como Solucionarlo?
Utilizando el controlador adecuado y no el generico, del siguiente modo:


sudo rmmod usbhid && sudo modprobe usbhid quirks=0x0810:0xe301:0x00000040


Donde:

Vendor:0810
ProdID :0xe301
define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */


(Más abajo, se explica de donde salen.)

 
sudo nano /etc/modprobe.d/usbhid.config
options usbhid quirks=0x0810:0xe301:0x00000040



(Lo anterior no me funciono en Arch ;(, pero por servicio SI)

UTILERIAS:


yaourt -S joystick
yaourt -S jstest-gtk-git




El siguiente comando nos sirve para conocer el Vendor y ProdID


sudo cat /sys/kernel/debug/usb/devices | grep -E "^([TSPD]:.*|)$"


T:  Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=1.5  MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0810 ProdID=e301 Rev= 1.06
S:  Product=Twin USB Gamepad




dmesg | grep Joystick

[    1.776843] hid-generic 0003:0810:E301.0003: input,hidraw2: USB HID v1.10 Joystick [Twin USB Gamepad      ] on usb-0000:00:1d.2-1/input0
[  320.913216] hid-generic 0003:0810:E301.0008: input,hidraw2: USB HID v1.10 Joystick [Twin USB Gamepad      ] on usb-0000:00:1d.2-1/input0
[  351.507953] hid-generic 0003:0810:E301.000D: input,hidraw2: USB HID v1.10 Joystick [Twin USB Gamepad      ] on usb-0000:00:1d.2-1/input0



Problemas con modprobe.d Arch.

Al reiniciar pierde los cambios aún configurado en modprobe.d.


Solución temporal


nano /usr/bin/hackusb.sh

Pegar lo siguiente en el archivo creado "hackusb.sh"

#!/bin/bash
rmmod usbhid
modprobe usbhid quirks=0x0810:0xe301:0x00000040



nano /etc/systemd/system/hackusb.service




[Unit]
Description=JoyhackTwinJoypads

[Service]
ExecStart=/usr/bin/hackusb.sh

[Install]
WantedBy=multi-user.target 






sudo chmod 755 /usr/bin/hackusb.sh

sudo systemctl enable hackusb.service

sudo systemctl daemon-reload

sudo systemctl start hackusb.service

3 comentarios - Instalar Twin USB Gamepad en Linux (Kit 2 en 1 usb)

Arg0s1080 +1
Buen trabajo!

Se echan de menos más post como éste

Por cierto explicas muy bien cómo obtener el "Vendor" y el "ProductID" pero en "quirks" se pasa un tercer parámetro "0x00000040 " .. sabes cómo se obtiene?
Arg0s1080 +1
Puedes responder aquí?.. soy incapaz de ver lo que escribiste

mira lo que aparece!!!
attract
16.777.212 respuestas!! eso debe haber superado algún tipo de récord

No me deja abrir el comentario, así que no puedo leer lo que se respondió

Salu2