Configurar cualquier mando con XBMC sin comprar nada
Por si a alguien le interesa, he conseguido hacer funcionar el XBMC con el mismo mando a distancia del reproductor AV que tengo (yamaha), aunque funciona con cualquier mando que tengas por casa.
En mi caso tengo el intel NUC con linux (ubuntu) y la configuracion se hace mediante LIRC, algo complicado al principio pero funciona.
Si el pc tiene receptor de infrarojos no hace falta comprar ni enchufar nada, sirve con cualquier mando viejo que tengas por casa. O mejor aun, he aprovechado los botones de play, pause, arriba, abajo, seleccionar... del mismo receptor AV que uso para peliculas y musica, de forma que no hace falta un mando mas ni andar con el teclado en el sofa. Estaba a punto de comprarme un mando, pero con esto no hace falta y te ahorras un mando dando vueltas por el sofa.
No se si hay algun tutorial por ahi, pero si alguien esta interesado puedo explicar el proceso, es algo largo y requiere probar bastante y hacer que el lirc 'aprenda' las teclas que quieres mapear y luego asociarlas a acciones del XBMC. Algunos mandos ya estan preconfigurados.
Salu2
Re: Configurar cualquier mando con XBMC sin comprar nada
Cita:
Iniciado por
Gromit
Por si a alguien le interesa, he conseguido hacer funcionar el XBMC con el mismo mando a distancia del reproductor AV que tengo (yamaha), aunque funciona con cualquier mando que tengas por casa.
En mi caso tengo el intel NUC con linux (ubuntu) y la configuracion se hace mediante LIRC, algo complicado al principio pero funciona.
Si el pc tiene receptor de infrarojos no hace falta comprar ni enchufar nada, sirve con cualquier mando viejo que tengas por casa. O mejor aun, he aprovechado los botones de play, pause, arriba, abajo, seleccionar... del mismo receptor AV que uso para peliculas y musica, de forma que no hace falta un mando mas ni andar con el teclado en el sofa. Estaba a punto de comprarme un mando, pero con esto no hace falta y te ahorras un mando dando vueltas por el sofa.
No se si hay algun tutorial por ahi, pero si alguien esta interesado puedo explicar el proceso, es algo largo y requiere probar bastante y hacer que el lirc 'aprenda' las teclas que quieres mapear y luego asociarlas a acciones del XBMC. Algunos mandos ya estan preconfigurados.
Salu2
Hola Gromit,
Yo he usado algunos mandos que funcionan "de serie" tanto en Windows como en Linux, pero es cierto que con lirc puedes hacer que prácticamente cualquier mando te sirva, y si el equipo no lleva receptor IR se pueden comrpar aparte.
Yo la verdad que cada vez veo menos necesario el mando, teniendo el móvil se puede convertir en el mejor mando a distancia para el HTPC, con un gasto cero (todos tenemos móvil y wifi en la red de casa), pero por supuesto el mando sigue estando presente y es interesante para muchas personas.
Desde luego que estaría genial si hicieras un tutorial para el foro :)
Saludos
Re: Configurar cualquier mando con XBMC sin comprar nada
Bueno, la ventaja es que uso el mismo mando del receptor AV, que ese lo has de tener por ahi por narices para el volumen y demas.
El mio tiene en la parte de abajo los botones tipicos de play, pause, forward... que no se usan en el receptor. Solo he mapeado esos y los cuatro de direccion, seleccion, info, menu contextual y menu de opciones de apagado. De forma que ninguno interfiere con los que si que actuan en el receptor.
Algunos mandos si que pueden funcionar de serie, el mio no, pero aparte no podria usar directamente el mismo mando porque algunas funciones se pisarian y actuarian en los dos aparatos a la vez.
De esta manera lo manejo todo con un unico mando, parece como si el XBMC fuera parte del receptor yamaha, he he.
Preparare unas indicaciones y explicacion de como funciona, mas que tutorial. Cada linux cambia y no tengo como probar en otros. Es dificil que funcione a base de recetas sin romperse los cuernos para averiguar como va, como es normal en linux por desgracia.
Re: Configurar cualquier mando con XBMC sin comprar nada
Cita:
Iniciado por
Gromit
Es dificil que funcione a base de recetas sin romperse los cuernos para averiguar como va, como es normal en linux por desgracia.
Si, algo me suena, jejeej ;). Por cierto, que distro usas?
Un saludo
Re: Configurar cualquier mando con XBMC sin comprar nada
En el htpc tengo xbmcbuntu, para no complicarme la vida. Todo lo referente a linux lo manejo desde un portatil via terminal remoto ssh, o un pc en otra habitacion; el amule y demas cosas.
En la tv siempre esta el front-end de xbmc para que cualquiera pueda usarlo en cualquier momento, y ahora ya no necesito ni el teclado.
Tambien tengo un XServer remoto para poder lanzar aplicaciones graficas del htpc al portatil. Pero apenas lo uso, realmente no me hace falta, desde el terminal lo hago todo.
Re: Configurar cualquier mando con XBMC sin comprar nada
Cita:
Iniciado por
Gromit
En el htpc tengo xbmcbuntu, para no complicarme la vida. Todo lo referente a linux lo manejo desde un portatil via terminal remoto ssh, o un pc en otra habitacion; el amule y demas cosas.
En la tv siempre esta el front-end de xbmc para que cualquiera pueda usarlo en cualquier momento, y ahora ya no necesito ni el teclado.
Tambien tengo un XServer remoto para poder lanzar aplicaciones graficas del htpc al portatil. Pero apenas lo uso, realmente no me hace falta, desde el terminal lo hago todo.
Ok, gracias por la info,
Lo comentaba justo por los problemas que pueden surgir en XBMC si detrás hay un gestor de ventanas pesado, pero tanto XBMCbuntu como OpenElec solventan ese tema, jeje.
Un saludo
Re: Configurar cualquier mando con XBMC sin comprar nada
Un primer borrador, un poco tocho, sería:
Configurar cualquier mando para XBMC/Kodi sobre linux con LIRC.
Introducción.
El objetivo es poder configurar cualquier mando a distancia que tengamos por casa para manejar XBMC. Con esto podemos conseguir:
- ahorrarnos comprar otro mando que incremente la plaga de cacharros que pueblan el sofá, reutilizando un mando viejo, o mejor todavía:
- aprovechar algunos botones no usados del mismo mando de la tele o del recepto AV. De forma que con un solo mando manejamos tanto la TV como la XBMC mientras vemos peliculas. Así lo tengo yo y parece que el XBMC esté integrado en la misma TV o receptor. Un anillo para dominarlos a todos...
- consecuentemente podemos simplemente personalizar algunos botones con cualquier acción de la XBMC a nuestro gusto, dando nueva vida a los rebaños de inútiles botones que colocan los fabricantes en todos los mandos para que parezcan la sala de control de la enterprise (es bien sabido que la calidad de un aparato se conoce por la cantidad de botones que trae).
Por ejemplo: un botón para ir directamente a: peliculas/generos con un solo click. O para apagar el htpc sin pedir confirmación, shutdown directo, o para ponerlo en sleep, etc.
Requisitos:
- mmm… un mando a distancia! por infrarojos, casi cualquiera vale (con pilas).
- Un htpc (pc) que tenga lector de infrarojos (IR receiver), muchos ya tienen. O ponerle uno.
- XBMC. En mi caso corre sobre linux (ubuntu) y es lo que voy a explicar aquí. Para windows o mac la primera parte será diferente pero la configuración de XBMC debería ser igual.
- paciencia...
Resumen de los pasos:
- A- Comprobar que LIRC funciona y reconoce el mando.
LIRC es el “daemon” (servicio) de linux que se ocupa de leer las señales que llegan por el puerto de infrarojos. Lo primero es comprobar que funciona y que recibe algo cuando le das a un boton del mando.
-B- Buscar o crear el archivo de configuración de tu mando concreto para LIRC.
donde se apareja la señal de cada botón (un numeraco hexadecimal) con un ID del botón. Para muchos mandos la configuración ya está creada. Para el resto, como el mio, se puede crear mediante un programa de 'aprendizaje', que te pide ir dandole a los botoncitos y va creandolo.
-C- Mapearlos las pulsaciones de botones de LIRC con acciones de XBMC. (play, pause, stop, up, down, left, right, select, info...).
Pasos:
Previo: Lo primero sería decidir que mando vamos a usar. Esto no es un tema técnico sino de lógica. Puede ser el mando de algun aparato que esté apagado mientras vemos peliculas o bien usar los botones que no se usan de un aparato que si está en uso y en marcha, como la TV o el reproducto A/V. Pero de forma que no interfieran, logicamente. Por ejemplo, si mapeamos el botón 'power' del mando de la TV con el 'play' de XBMC vamos a tener problemas...
Muchos mandos tienen botones que no se usan o no tienen efecto en modo normal, algunos como el mio tienen justamente botones de play, pause, etc. que son perfectos justo para eso.
- A- Comprobar que LIRC funciona y reconoce el mando.
En muchas distribuciones LIRC ya viene y lo tendrás instalado. Sino tendreis que buscar como instalarlo en vuestra distribución, por ejemplo en las basadas en debian puede instalarse, junto las configuraciones, con el siguiente comando:
Código:
apt-get install ir-keytable lirc
Durante la instalación nos preguntará que mando tenemos, si no aparece el nuestro seleccionar cualquiera.
Una vez instalado LIRC yo empezaría por probar si el sistema recibe las señales de infrarojos de nuestro mando, osea si el hardware está funcionando y el sistema operativo se entera. Para ello y para las configuraciones posteriores necesitaremos averiguar dos cosas importantes:
- El “device” de infrarojos de nuestro sistema: /dev/XXXX (en mi caso /dev/lirc0)
- El driver. Puede ser que con “default” nos funcione. Si no se tendrá que investigar y buscar por ahí.
El device es una especie de directorio virtual donde el hardware deja las señales del puerto infrarojo. En mi caso, un intel NUC con una distribución basada en ubuntu (debian), el device es: /dev/lirc0
Si ya estubiera configurado en vuestro sistema tal vez podais encontrar los valores correctos en: /etc/lirc/hardware.conf
Con esto vamos a ver si el sistema recibe algo por el puerto IR. Pasamos a modo root, detenemos el daemon de lirc en caso de que este activo y volcamos el contenido del device en pantalla:
Código:
sudo -s
/etc/init.d/lirc stop (para otras distribuciones el comando puede variar)
cat /dev/lirc0 (o el device correspondiente de tu sistema)
Entonces si pulsamos cualquier botón del mando (de cualquier mando), deberían aparecer numeracos por el terminal, algo así:
Código:
6s?#~<+<y<+<y<y<y<y<+<y<+<y<+<+<+<+<y<+<y<y<y<y<+V_<y<y<+
<+VV<y<+VVA?)#VH?)#dVV_VpEV_V_V_<+V_VpEVVV<+V_V_VV_V_V_VVV_VV_VVp?V_
pEp?V91#VQ?K????!)#dVV_VV_V_V_V_VV_VpEVVVVV_VV_V_V_pEVVV_V_Vp?VhV_V_Vp'?
C#VH?u?)#d<+<y<+V_V_<y<yVV_<+V_p?
<+VVV_VVV_V_V_VVV_V_V_VVVV_V_Vp1#VQ??N)#dV_V_pEpEpEpEV_VpEVVhVVp?VV_VVV_VpEV
_VVpEV_VV_VVpEVJ?)#V@?^C
Cortamos con CTRL-C.
Eso significa que el puerto infrarojos funciona y recibe la señal del mando. Los carácteres anteriores son codificaciones “en crudo” de las pulsaciones (no son un script en perl, aunque lo parezcan al ojo inexperto).
Si esto no funciona, mal vamos. O no hay puerto de infrarojos o el sistema no lo ha reconocido, o ambos dos. Lo mejor sería buscar informacion sobre la instalacion de LIRC en tu distribucion. Por ejemplo para ubutu: https://help.ubuntu.com/community/LIRC . Y para tu hardware concreto.
Y que no te pase nada...
-B- Buscar o crear la configuración para LIRC.
Si lo anterior funciona lo siguiente es que LIRC reconozca nuestro modelo de mando.
Primero revisamos la configuración de LIRC, echamos un vistazo al archivo: /etc/lirc/hardware.conf
Ahí debería estar especificado el device, el driver y otras cosas. Si no lo está lo completais o directamente lo borrais todo y escribís lo siguiente:
Código:
REMOTE_DRIVER="default"
REMOTE_DEVICE="/dev/lirc0"
REMOTE_SOCKET="/var/run/lirc/lircd"
REMOTE_LIRCD_CONF="/etc/lircd/lircd.conf"
REMOTE_LIRCD_ARGS=""
START_LIRCD="true"
LOAD_MODULES="true"
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
Ajustando el driver y el device según vuestro sistema. De nuevo para otras distribuciones podría ser diferente, tendreis que investigar por google.
Y aseguraos que el archivo de configuración está en el lugar especificado: /etc/lircd/lircd.conf
Con eso debería bastar y el lirc arrancar y funcionar. Si no tendreis que buscar por google según vuestro modelo de HTPC y distribución, por ejemplo buscad en google: «lirc, redhat, hp-viejuno-XYZ»
Si tenemos suerte nuestro mando igual es uno de los que viene configurado por defecto.Podemos comprobarlo con el programa para testear LIRC, el irw, de la siguiente manera.
Pasamos a root, si no lo estamos ya, arrancamos el daemon LIRC de nuevo y lanzamos el irw:
Código:
sudo -s
/etc/init.d/lirc start
irw
Ahora si pulsamos teclas del mando deberían aparecer las pulsaciones en el terminal, algo así:
Código:
000000005ea1b946 00 Up MyRemote
000000005ea1b946 01 Up MyRemote
000000005ea17b84 00 Enter MyRemote
000000005ea17b84 01 Enter MyRemote
00000000fe8016e9 00 Play MyRemote
00000000fe8016e9 01 Play MyRemote
00000000fe80e619 00 Pause MyRemote
00000000fe80e619 01 Pause MyRemote
Cortamos con CTRL-C.
Si no sale nada por pantalla es normal, significa que vuestro mando no viene configurado por defecto. En caso de que si que funcione, podeis pasar a la parte -C-.
Sino, pues hay que buscar o crear la configuración de vuestro mando en concreto, como explicamos a continuación.
Lo primero sería buscar si aparece tu mando, por fabricante y modelo aquí: LIRC - Linux Infrared Remote Control (o un modelo similar).
Si está nos bajamos el conf, lo copiamos en /etc/lirc/ y lo renombramos como: lircd.conf
Reiniciamos el daemon:
Código:
/etc/init.d/lirc restart
y volvemos a probar con irw como en el paso anterior. Si funciona pasamos a -C-
Si no está nuestro mando es que nadie lo ha mapeado aun, tendrás la oportunidad de ser el primero! Usaremos un programa para que “aprenda” nuestras teclas:
Código:
cd /etc/lircd/
/etc/init.d/lirc stop
irrecord --driver=default --device=/dev/lirc0 --disable-namespace MyRemote (poniendo el driver y device correctos)
Este programa nos pedirá que vayamos pulsando teclas aleatoriamente y sin parar durante un rato, para identificar parametros generales del mando. Una vez hecho esto nos pedirá que pongamos el nombre de una tecla, escribimos por ejemplo “play”,le damos al enter y nos dirá que dejemos pulsada la tecla “play” un segundo o dos. Luego lo mismo con otra tecla y asi sucesivamente hasta que registremos todas las teclas que necesitemos.
Cuando acabemos nos dejará un archivo: MyRemote.conf que tendremos que renombrar a lircd.conf Todo esto en el directorio /etc/lircd/ en el que estamos.
Reiniciamos el daemon y volvemos a probar con irw. Ahora al pulsar las teclas que hemos registrado deberían aparecer en pantalla con los nombres que les hemos puesto.
-C- Mapear las pulsaciones registradas en LIRC con acciones de XBMC.
Para ello salimos de root y vamos al directorio ~/.xbmc/userdata/ de la home de nuestro usuario. Allí necesitaremos tener un archivo Lircmap.xml . Si no está lo copiamos de /usr/share/xbmc/system/
Antes de nada volvemos a echar un vistazo al archivo: /etc/lirc/lircd.conf Debería ser algo así:
Código:
begin remote
name MyRemote
bits 32
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 8984 4466
one 578 1650
zero 578 548
ptrail 579
repeat 8986 2228
gap 107554
toggle_bit_mask 0x0
begin codes
Play 0xFE8016E9
Pause 0xFE80E619
Stop 0xFE809669
... (mas codigos)
end codes
end remote
Nos fijamos en el nombre del mando en “name”, que si no lo hemos cambiado será: MyRemote Y en la sección de los codigos estarán los que hemos mapeado con los nombres que les hayamos puesto.
A continuación editamos el archivo Lircmap.xml para echar un vistazo. Después de algunos comentarios y morralla vemos algo como lo siguiente:
Código:
<lircmap>
<remote device="mceusb">
<play>Play</play>
<pause>Pause</pause>
<stop>Stop</stop>
...
El nombre del device en este caso es “mceusb”, un mando tipo MCE que supongo que no es el nuestro. Lo que tenemos que hacer es cambiarle el nombre o bien crear una seccion igual con el nombre del nuestro, que es el que aparece en /etc/lirc/lircd.conf y que si no lo hemos cambiado sera “MyRemote”. Lo ajustamos de forma que tengamos una sección que empieze asi:
Código:
<lircmap>
<remote device="MyRemote">
<play>Play</play>
<pause>Pause</pause>
<stop>Stop</stop>
...
Y las siguientes lineas definen las acciones de XBMC contra las pulsaciones definidas en /etc/lirc/lircd.conf (ojo con las mayusculas).
Las de arriba son evidentes, la que esta en mayusculas en medio es la pulsación definida en /etc/lirc/lircd.conf.
Por ejemplo, yo tengo definido que la tecla “Display” de mi mando me muestre la info de la película en XBMC.
Con lo cual en /etc/lirc/lircd.conf tengo una linea en la sección de los códigos:
Código:
Display 0xFE8006F9
Y en el Lircmap.xml tengo otra:
Código:
<info>Display</info>
En este caso “Display” es el botón mapeado en LIRC y “info” es la acción de XBMC que hemos mapeado.
Y así con todos los botones que hayamos definido. También podemos cambiar acciones por defecto para ajustarlas a nuestras preferencias. O bien eliminar mapeos de botones para que no interfieran con el aparato. Solo hemos de asegurarnos que los nombres coinciden en ambos archivos, no hay duplicados y todo cuadra.
Arrancamos el daemon: /etc/init.d/lirc start , reiniciamos XBMC y ya debería obedecer a nuestro mando! Voilà! o como dicen los franceses: bualá.
Con esto ya estaría, solo quedaría eventualmente afinar la configuración de los botones como realmente nos vaya mejor según probemos.
El resto de secciones <remote ...> del Lircmap.xml definen otros mandos, nos los podemos cargar todos menos el nuestro, o dejarlos ahi que tampoco molestan.
La mayoria de acciones disponibles las podemos ver en las otras secciones que nos acabamos de cargar. O buscarlas por ahí.
De hecho las acciones realmente se definen en otro sitio, en un archivo remote.xml que podemos colocar en la subcarpeta “keymaps”. Esto solo es necesario si queremos definir acciones mas avanzadas que no están definidas por defecto. Por ejemplo podemos definir acciones como:
Código:
<mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
<power>ActivateWindow(shutdownmenu)</power>
<clear>XBMC.ActivateWindow(Weather)</clear>
etc.
Pero la mayoría de las habituales ya vienen definidas. Los diferentes keymaps para ver que acciones hay o copiarnoslos al directorio ~/.xbmc/userdata/keymaps/ del usuario podemos encontrarlos en: /usr/share/xbmc/system/keymaps/
Espero que sirva de ayuda, si alguien consigue aclarase con el follón de explicación. De hecho las indicaciones están muy basadas en mi configuración concreta que es la única que he podido probar. En otras máquinas o distribuciones de linux el tema puede variar bastante, pero al menos espero que esto ayude a entender un poco el montaje general.
Re: Configurar cualquier mando con XBMC sin comprar nada
No se si pensais que vale la poner la explicacion en algun sitio, o alguna correccion o mejora. Tal vez se podria extener con el metodo para windows, yo ya no tengo ninguno en casa para probar 8-)
Re: Configurar cualquier mando con XBMC sin comprar nada
Muchas gracias crack, menudo curro, de verdad se agradece y a mas de uno le viene bien
Re: Configurar cualquier mando con XBMC sin comprar nada
Estupenda información, Gromit :)
Gracias por el curro.
Saludos
Re: Configurar cualquier mando con XBMC sin comprar nada
Hola,
una pregunta, que receptor de infrarrojos tienes? Sirve cualquiera que encuentre por internet o han de ser de algún tipo en concreto?
He visto adaptadores usb/irda pero he leído en algún que otro foro en ingles que no sirve porque no es compatible con LIRC y WINLIRC, esto es así?
Mi mando también es de un Av yamaha.