[Debian] Joystick USB, reconocido pero no anda hasta que...

Consultas y dudas acerca de los Sistemas Linux y Unix

Moderadores: Colaboradores Computacion, Moderadores Sistemas Linux

[Debian] Joystick USB, reconocido pero no anda hasta que...

Notapor Sir Gon el Mar Dic 25, 2007 1:05 pm

El kernel crea el dispositivo /dev/input/js0

pero el joystick no funciona hasta que:

1) entro al centro de control de KDE y lo calibro o...
2) hago jstest /dev/input/js0

Como podría hacer que "se prenda" en forma automática al enchufarlo?
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am

Notapor GriZmio el Mar Dic 25, 2007 11:42 pm

y si lo pones en rc.local ? jstest /dev/input/js0
no es una solucion bonita, pero podria funcar
[GriZmio]--
Avatar de Usuario
GriZmio
Por culpa del foro, no vivo ni pienso
Por culpa del foro, no vivo ni pienso
 
Mensajes: 1576
Registrado: Jue Jun 05, 2003 1:11 am

Notapor Sir Gon el Mar Dic 25, 2007 11:52 pm

si, pero eso funca si booteo con la cosa enchufada, pero si ya arranque y luego conecto eñ joystick tengo q volver a "activarlo".

si pudiera poner ese comando en algun archivo que dispare eventos (hal?) lo tendría solucionado.
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am

Notapor Kropotkinix el Mié Dic 26, 2007 12:14 am

se me ocurre que puede ser con udev.

a mi en gentoo l creacion de los dipositvos js0 me sale en el siguiente archivo y de la siguiente forma

50-udev-default.rules
Código: Seleccionar todo
KERNEL=="js[0-9]*",               NAME="input/%k", MODE="0644", SYMLINK+="%k"


la cual podrias dejar de la siguiente forma

Código: Seleccionar todo
KERNEL=="js[0-9]*",               NAME="input/%k", MODE="0644", SYMLINK+="%k"  RUN+="jstest /dev/input/js0"


no se si se podra poner como jstest /dev/input/%k, seria cosa de intentar, pero si conectas siempre un solo joistik con js0 bastara..

creo yo..


Saludos.
Avatar de Usuario
Kropotkinix
Foro rq!! dejame vivir!!!
Foro rq!! dejame vivir!!!
 
Mensajes: 1964
Registrado: Lun Ene 30, 2006 4:29 am

Notapor GriZmio el Mié Dic 26, 2007 12:34 am

con udev buena
en RUN+="jstest /dev/input/js0"
podria ser uns cript con:
#/bin/bash
for i in `seq 0 9`; do
jstest /dev/input/js${i}
done
#no se sial linea de abajo sea necesaria
exit 0

perdon la falta de escritura pero me corte unos dedos cocinando :cry:
[GriZmio]--
Avatar de Usuario
GriZmio
Por culpa del foro, no vivo ni pienso
Por culpa del foro, no vivo ni pienso
 
Mensajes: 1576
Registrado: Jue Jun 05, 2003 1:11 am

Notapor Kropotkinix el Mié Dic 26, 2007 12:46 am

GriZmio escribió:con udev buena
en RUN+="jstest /dev/input/js0"
podria ser uns cript con:
#/bin/bash
for i in `seq 0 9`; do
jstest /dev/input/js${i}
done
#no se sial linea de abajo sea necesaria
exit 0

perdon la falta de escritura pero me corte unos dedos cocinando :cry:


por otras lineas mas que vi en archivos de udev andaria bien simplemente con un

Código: Seleccionar todo
RUN+="jstest /dev/input/%k"


:)
Avatar de Usuario
Kropotkinix
Foro rq!! dejame vivir!!!
Foro rq!! dejame vivir!!!
 
Mensajes: 1964
Registrado: Lun Ene 30, 2006 4:29 am

Notapor GriZmio el Mié Dic 26, 2007 1:09 am

wena Kropotkinix, creo q lo voya anotar en ~/tips.help
:lol:
[GriZmio]--
Avatar de Usuario
GriZmio
Por culpa del foro, no vivo ni pienso
Por culpa del foro, no vivo ni pienso
 
Mensajes: 1576
Registrado: Jue Jun 05, 2003 1:11 am

Notapor Sir Gon el Mié Dic 26, 2007 2:59 am

he estado probando en varios archivos de /etc/udev/rules.d/ pero no noto ningún cambio.

hay logs de udev en algun lado? si escribi mal algo, que eventos se estan disparando etc,... (por si tengo algo mal escrito, repetido, mal comentado, etc...)
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am

Notapor Blaxdemir el Mié Dic 26, 2007 3:08 am

Que tipo de joystick es????
Blaxdemir
Foro rq!! dejame vivir!!!
Foro rq!! dejame vivir!!!
 
Mensajes: 1825
Registrado: Sab Jul 23, 2005 2:15 am

Notapor Kropotkinix el Mié Dic 26, 2007 7:07 am

ponele un "RUN+="echo "hola" > /home/user/test_udev"
tambien podrias borrar /dev/js0 y /dev/input/js0 para ver si se crea nuevamente, entonses si se crea pero no te aparece el hola, no esta ejecutando el comando RUN+ e leido varia veces que es medio porfiado udev algunas veces con ejecutar el RUN+

y ahi ves si corrio el comando o no :wink:
Avatar de Usuario
Kropotkinix
Foro rq!! dejame vivir!!!
Foro rq!! dejame vivir!!!
 
Mensajes: 1964
Registrado: Lun Ene 30, 2006 4:29 am

Notapor Sir Gon el Mié Dic 26, 2007 9:43 pm

dmesg

Código: Seleccionar todo
input: DragonRise Inc.   Generic   USB  Joystick   as /class/input/input5
input: USB HID v1.10 Joystick [DragonRise Inc.   Generic   USB  Joystick  ] on usb-0000:00:0b.0-3
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am

Notapor Sir Gon el Jue Dic 27, 2007 1:51 am

algo esta pasando, porque las reglasfuncionan, pero el comando no lo pesca ni por si acaso.
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am

Notapor janitux el Jue Dic 27, 2007 2:06 am

al fin lo logre XD
KERNEL=="js[0-9]*", NAME="input/%k", MODE="0644", SYMLINK+="%k", RUN+="/usr/local/bin/joympcstart" linea 31 de /etc/udev/rules.d/20-names


y /usr/local/bin/joympcstart contiene esto:
#!/bin/bash

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mpcstick


al fin, ahora conecto el joy y se lanza mpcstick, y desconecto el joy y se muere :D
Avatar de Usuario
janitux
Soy esclav@ del foro
Soy esclav@ del foro
 
Mensajes: 2757
Registrado: Vie Ago 05, 2005 2:13 pm

Notapor janitux el Jue Dic 27, 2007 2:17 am

aunque hubiese sido mas facil poner la ruta completa a mpcstick en RUN
Avatar de Usuario
janitux
Soy esclav@ del foro
Soy esclav@ del foro
 
Mensajes: 2757
Registrado: Vie Ago 05, 2005 2:13 pm

Notapor Sir Gon el Jue Dic 27, 2007 2:55 am

yo creo que el problema, es que en debian están terriblemente desparramadas las reglas en los archivos /etc/udev/rules.d/*.rules

hasta las reglas en ubuntu son más claras.

EDIT:

Encontré el f*uckin file.

Código: Seleccionar todo
/etc/udev/rules.d/udev.rules


Reemplaze:

Código: Seleccionar todo
KERNEL=="js[0-9]*",      NAME="input/%k"


por:

Código: Seleccionar todo
KERNEL=="js[0-9]*",      NAME="input/%k", MODE="0644", SYMLINK+="%k", RUN+="/usr/bin/jstest /dev/input/%k"


Como decía Janitux, no pesca las variables de entorno, por lo tanto es necesario llamar a los ejecutables con la ruta completa.

Voy a preparar un review de esto 8)
Muchas gracias :D
Avatar de Usuario
Sir Gon
[ Moderador Linux ]
[ Moderador Linux ]
 
Mensajes: 12231
Registrado: Dom Sep 15, 2002 3:27 am


Volver a Linux y Unix

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot], Raks y 1 invitado