miércoles, 10 de junio de 2009

Moovida + Lirc Ubuntu Media Center

Hace unos meses instalábamos en Intrepid Elisa Media Center y lo configuramos para manejarse por control remoto. Ahora Elisa pasa a ser Moovida y como no podía ser menos vamos a instalarlo y configurarlo esta vez desde Jaunty, la version 9.04 de Ubuntu.

Vuelvo a recordad que en mi caso usare el contro RM-900 de Creative por que es el que tengo más a mano, pero se podrían usar infinidad de controles, mas adelante se incluye un enlace a los mandos compatibles con Lirc.

Empecemos la instalación y configuración:

Configurar el soporte IR en el Núcleo

En mi caso concreto dado que el dispositivo esta incluido en el rack de mi Sound Blaster Audigy lo primero es hacer que en los módulos del kernel se cargue el control del dispositivo IR (Infra-Red).
Para ello tuve que añadir un parámetro para que cargase el driver de sonido con el IR activado (snd-emu10k1 en mi caso) . Para eso tuve que editar el fichero /etc/modprobe.d/options:
sudo nano /etc/modprobe.d/options
Y añadir la opción para el modulo de sonido al final del fichero:
options snd-emu10k1 enable_ir=1
es decir --> options (nombre del modulo) (parámetro)=(opción del parámetro)
Para volver a cargar el módulo de sonido tan solo reinicié mi computadora.

NOTA
: Los mandos de tipo MediaCenterEdition (MCE) que venden en las tiendas actualmente no necesitan ninguna activación como esta, solo conectar y listo!

Instalar y configurar Lirc

Instalad Lirc desde los repositorios oficiales:
sudo aptitude install lirc
Durante la instalación nos hará dos preguntas; a la primera respondemos el nombre del control remoto, por ejemplo un mando Media Center, de ATI o bien el de alguna sintonizadora como Pinnacle, Avermedia, Hauppauge... (En el caso del RM-900, me funcionó eligiendo Creative LiveDrive sequencer).
A la segunda pregunta lo normal es elegir none (ninguno). Esto se puede modificar mas tarde manualmente, pero si no os queréis complicar podéis hacer que os vuelva a hacer las dos preguntas con este comando:
sudo dpkg-reconfigure lirc
NOTA: El comando dpkg-reconfigure sirve para reconfigurar cualquier paquete/programa.

Tras finalizar se crearan nuevos dispositivos (/dev/lircd) y ficheros de configuración (/etc/lirc/lircd.conf y /etc/lirc/hardware.conf).... Para el caso concreto de mi mando seguía sin funcionar, así que fui a la web de Lirc (www.lirc.org) y busqué el enlace a config files for supported remote controls o "ficheros de configuración para controles remotos soportados" (http://lirc.sourceforge.net/remotes/), allí localice el fichero acorde a mi control en creative/RM-900 y lo descargué (si os fijáis esta perfectamente ordenado por nombre de fabricante). Después solo tuve que substituir el contenido de /etc/lirc/lircd.conf por el de RM-900:
wget http://lirc.sourceforge.net/remotes/creative/RM-900
sudo cp /etc/lirc/lircd.conf /etc/lirc/lircd.conf.old
sudo mv RM-900 /etc/lirc/lircd.conf
sudo /etc/init.d/lirc restart <--- Reinicia Lirc y carga el nuevo lircd.conf
Repito que estos 4 comandos son "especiales" para mi control remoto, puede que no tengais que hacerlos o que tengáis que usar otro fichero de configuración....

En fin... como sabemos que el mando funciona? para eso esta el comando irw (viene con Lirc). Simplemente ejecutadlo en consola y apuntando al receptor pulsad algún botón, si irw recibe alguna pulsación lo notificara.


Si veis algo parecido ya tenemos el Lirc correctamente configurado con el control remoto, genial! Finalizad la aplicación con la combinación <Ctrl + C>.

Esto (el irw) nos permitirá configurar el mando para usarse con muchos programas dado que nos informa del nombre de cada tecla para así poder usarlo y asignarle opciones a las teclas para varios programas... veremos al menos un par de ejemplos aplicados a Moovida ;)

Instalar Moovida y configurar su uso con Lirc

La versión que hay en los repositorios de ubuntu es del antiguo poyecto de Elisa , así que para instalar el nuevo Moovida añadí a mis repositorios los PPA de launchpad del proyecto. Muy bien, vamos por pasos:

Editamos el fichero de los repositorios:
sudo gedit /etc/apt/sources.list
y añadimos estas lineas al final del fichero:
deb http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu jaunty main
De usar una versión distinta de Jaunty cambiad donde pone jaunty por intrepid o la versión de Ubuntu que estés usando. Este repositorio requiere una clave, que añadiremos de este modo:
gpg --keyserver keyserver.ubuntu.com --recv 26C2E075 && \
gpg --export --armor 26C2E075 | sudo apt-key add - && \
sudo aptitude update
Ahora, instalamos la ultima versión de Moovida Media Center con un simple:
sudo aptitude install moovida
Lo podéis ejecutar desde el menú de Aplicaciones -> Sonido y Vídeo -> Moovida Media Center o desde la terminal escribiendo:
moovida
Vamos a configurar el control a través del Lirc, primero nos movemos a la ruta del plugin para Lirc de Moovida:
cd /usr/share/pyshared/elisa/plugins/lirc/
Y ejecutamos el script para cree el fichero con el mapeado de teclas del mando:
python setup_lirc.py map_files/remotename.map
Al ejecutarlo te pedirá que vayas pulsando una serie de teclas del mando, la tecla que quieres usar para mover a derecha, a la izquierda, el play, etc... Cuando no te queden mas teclas que pulsar en el control, solo pulsa de nuevo la tecla OK del mando y la aplicación finalizara creando el fichero remotename.map en la carpeta map_files.

Y ahora solo falta configurar el fichero de configuración de Elisa:
sudo gedit ~/moovida/moovida.conf
Buscamos la sección: [lirc.lirc_input:LircInput] y deberemos dejarla más o menos así:
[lirc.lirc_input:LircInput]
device = '/dev/lircd'
input_map = '/usr/share/pyshared/elisa/plugins/lirc/map_files/remotename.map'
repeat_delay = '0.6'
Ya esta!! Esto es todo... Inicia el Moovida Media Center (cierralo antes si lo tenias abierto) y disfruta manejándote con el mando, escucha tu musica, ve tus vídeos e imágenes, mira vídeos de youtube y otros, las imágenes de Flikr, incluso las emisoras de radio de shoutcast y yes.fm... y todo desde el sofá con el mando ;)

Configuración avanzada de Moovida y Lirc

Si configurasteis una tecla del mando para la opción "Exit" al pulsar dicha tecla puedes salir del programa (Moovida). Solo faltaría que se abriese el programa pulsando una tecla del mando a distancia, así que vamos a hacerlo también para que no quede nada en el tintero. Crearemos primero el fichero ~/.lircrc:
gedit ~/.lircrc
Añadiremos algo como esto:
include ~/.lirc/moovida
Cierra gedit y ahora crearemos la carpeta oculta .lirc/ y dentro el fichero moovida. Esto nos va a permitir más adelante crear otros ficheros para controlar otros programas, pero centrémonos en lo que nos ocupa:

mkdir ~/.lirc
gedit ~/.lirc/moovida
En el fichero añadid el siguiente texto:
begin
prog = irexec
button = eax
config = exec moovida
end
Habreis de substituir eax por el nombre de la tecla que queréis que inicie el programa. Y como saber el nombre de cada tecla del mando? Pues como dije antes con el programa irw. Ejecutáis irw en consola y pulsáis la tecla del mando que queréis usar para arrancar el Media Center. Debería salir una linea del tipo:
0000000083228c73 00 eax Creative_RM900
El tercer campo es el nombre de la tecla y el cuarto el nombre del control remoto. El primero también hace referencia al nombre de la tecla pero en formato numérico y el segundo ni idea jeje. Resumiendo, cambiad lo que os salga a vosotros como nombre de la tecla por donde yo puse eax en el fichero moovida, y guardad los cambios.

Para que esto funcione el programa irexec debe estar funcionando, asi que ejecutalo en una consola:
irexec --> Se ejecuta ocupando la terminal.
o bien:
irexec -d --> Se ejecuta en segundo plano, dejando libre la terminal

Cerrad el Media Center (si lo teníais abierto) y reiniciad el servicio de Lirc:
sudo /etc/init.d/lirc restart
Ahora apuntad bien al receptor de infrarrojos, pulsad la tecla mágica y esperar que se inicie moovida.

Consejos:
Añade el programa irexec en Sistema -> Preferencias -> Aplicaciones al inicio para que se inicie cada vez que inicies sesión en Gnome. Si lo añades de esta forma no es necesario añadir el parámetro -d.

También puedes cambiar la forma en que se inicia Moovida (fullscreen o windowed) cambiando el valor del parámetro start_fullscreen del fichero ~/.moovida/moovida.conf

Puedes alternar entre modo ventana y pantalla completa pulsando la tecla f. Para poder cambiar de fullscreen a windowed desde el control, solo edita el fichero remote.map:
sudo nano /usr/share/pyshared/elisa/plugins/lirc/map_files/remotename.map
La idea es añadir al final una linea igual que las demás, pero el código numérico lo cambiamos por el que nos devuelva irw en el primer campo, al pulsar la tecla que queremos que haga la función. Y también habría que cambiar donde dice KEY_algo por KEY_f. Para que este cambio tenga efecto solo hemos de reiniciar Moovida.

Un Saludo!

15 comentarios:

  1. Me parece increible que nadie te haya dado las gracias por el artículo. Llevo algún tiempo con la idea de utilizar un mando de una Avermedia 203 de forma decente, pero por lo costoso de configurarlo todo sólo probé con el Mplayer.

    Ahora con el cambio a Jaunty ha dejado de funcionar, pero un artículo de este tipo es lo que necesitaba para volver a la carga. Lo dicho, gracias por el aporte.

    Saludos!

    ResponderEliminar
  2. Me alegro que te sirva. Estaría bien que comentases el camino para el mando de esa avermedia, para contrastar y eso, jeje

    ResponderEliminar
  3. Saludos DuKKoN.

    He estado algo liado y hasta hoy no me he puesto con la configuración de Moovida. Ahora ya lo tengo todo listo, gracias a este artículo que me hizo rescatar el mando de nuevo.

    Llevaba algún tiempo prometiendome que lo haría y bueno, ya esta!

    En cuando a la configuración para el mando de la Avermedia Studio 203 que tengo, no se aleja prácticamente en nada de lo expuesto en tu post. Ahí arriba puse que dejó de funcionar el mando, pero realmente lo que ha dejado de funcionar son las teclas numéricas, pero para moverme por los menús del mediacenter no me hace falta más xD.

    No estaría nada mal que habaras en el blog de la configuración del mando desde cero, ya que la parte del irexec creo que es la que más juego puede dar a la hora de utilizarlo. Yo tengo en el blog un post sobre la configuración para la tarjeta utilizando TvTime, pero dejé de lado esa parte también.

    Un saludo, nos leemos por aquí.

    Un saludo

    ResponderEliminar
  4. interesante men, disculpa esto es otro hilko pero sabes mas o menos como puedo hacer reconocer el control remoto de mi laptop HP DV4 1220us,bajo linux Ubuntu 9.04 64 bit, busque por todo lado y no puedo ojala tu puedas darme una pauta

    ResponderEliminar
  5. No te funciona instalando lirc? Es un Pavilion, no? En la web de lirc tienen configuraciones para controles de hp.
    Si el control no esta soportado por lirc, creo que no te queda otra que esperar

    ResponderEliminar
  6. he seguido tu tutorial pero hay algo en lo que no caigo, tengo mi mando perfectamente configurado y funcionando en el resto de programas asi que descartemos que sea un fallo del lirc,el dispositivo lo capta en /dev/usb/hiddev0 , el caso es que a la hora de hacer la configuracion de los botones en python 'ok,play,menu' recibe las señales y las guarda correctamente , pero luego en configuracion le ponlo la ruta correcta y le cambio tb la ruta del dispoitivo y nada, alguna idea?

    ResponderEliminar
  7. 2 minutos mas tarde nadie sabe porque pero ya funciona ;) ya no hace falta nada mas un saludo.

    ResponderEliminar
  8. Gracias a JMengual (unos comentarios más arriba) he sabido que con irxevent puedes programar puslaciones de teclas,
    igual que con irexec programas ejecuciones. Puedes pasar del configurador de lirc incluido en moovida y hacerte un archivo manual de configuracion, haciendo que el control remoto imite al teclado. Un ejemplo lo puedes encontrar (aplicado a XMBC) aquí:
    http://jmengual.blogspot.com/2009/07/lirc-y-el-control-distancia.html
    Un Saludo!

    ResponderEliminar
  9. Bueno, incialmente felicidades por este tutorial, estuve buscando como instalar lir y la verdad no habia nada desente, bueno arriba estuve leyendo un problema identico al mio, solo que yo les doy mas luces de lo que hize, mi laptop es:

    Hp pavilion DV4 1220us, al ser de 64 bits, esta con el Juanty, bueno el control que tiene es igual a este:

    http://clasipar.paraguay.com/control_remoto_notebook_hp_pavilion_421923.html

    solo que el mio es color plateado,

    en fin, le instale el lirc, como indicas en el tutorial, en las dos opciones
    para escoger en la instalacion en la primera escogi Hp,comp (creo que era asi, pero decia Hp)
    y en la segunda: none,y la VERDAD creo que aqui es donde radica el problema, no se cual opcion escoger de tantas
    bueno escogi,las que les dije despues de la intalacion limpia, trate de hacer la prueba y nada, entonces acedi a:


    http://lirc.sourceforge.net/remotes/

    en donde desarge de la cateforia que dice:

    hp/

    aqui hay tres archivos, cuyo contenido en cuanto a comandos el que mas se asemeja es:

    DV6331

    pero baje los tres: DV6331, Pavilion_m7682.fr, RC180491206

    en estos tres casos remplaze todo el contenido de:

    /etc/lirc/lircd.conf

    ya que en su interior decia algo como que todo esta configurado automaticamenete, (antes
    de remplazar este contenido hice la prueba ni bien instale y nada), con ninguno de los tres me resulta, y sigo los pasos
    que indicas, al finalizar

    sudo /etc/init.d/lirc restart

    para reinicar lirc.

    pero nada ni luces de su respuesta con el comando irw

    Entonces mi pregunta es que deberia hacer, o que opcion escoger al momento de la instalacion, y si alguien ya configuro este control adecuadamente....

    Gracias por su ayuda saludos

    Ah una cosa mas, quizas este mal en esto, espero que no por que seria una burrada, dentro de los archivos
    para descargar de lirc hay:


    lirc-0.8.5.tar.bz2 - 700 kB
    released: 21-May-2009
    supported kernels: 2.6.29

    lirc-0.8.5.tar.gz - 952 kB
    released: 21-May-2009

    lirc-0.8.4a.tar.bz2 - 680 kB
    released: 12-Oct-2008
    supported kernels: 2.6.27

    lirc-0.8.4a.tar.gz - 931 kB
    released: 12-Oct-2008

    lircrc_config-0.1.1.tar.gz - 238 kB
    released: 09-Mar-2002

    xrc-0.6.5.tar.gz - 232 kB
    released: 17-May-2007

    xrc-0.6.4.tar.bz2 - 188 kB
    released: 29-Jan-2003

    xirw-0.4.2.tar.bz2 - 46 kB
    released: 26-Jan-2003

    xirw-0.4.1.tar.gz - 38 kB
    released: 04-Mar-2001

    remotes.tar.bz2
    all supported config files


    cual debo descargar para mi equipo, yo descargue el del 2009, y para que sirven los ultimos?...

    Gracias nuevamente


    Un saludo

    ResponderEliminar
  10. Puede pasar dos cosas, que no este soportado sencillamente, o que funcione por radio en lugar de infrarrojos.
    De todas formas aquí he encontrado una solución para el mando de la serie dv5, puedes probar...

    http://ubuntuforums.org/showthread.php?t=897241

    Un saludo

    ResponderEliminar
  11. nuevamente yo, para replantear mi duda, desde ya muchas gracias por su ayuda, estuve fijandome bien mis archivos, y los que instale fueron los paquetes DEB de la version 8.0.4
    y estos son del año pasado, ahora bien recien quise instalar el que pense que instale el 8.0.5 del 2009 que este debe tener las caracteristicas
    para mi laptop, pero cuando intente instalar de manera tradicional, me tira el siguiente error en el terminal

    fernando@fernando-laptop:~$ sudo su
    [sudo] password for fernando:
    root@fernando-laptop:/home/fernando# cd lirc-0.8.5
    root@fernando-laptop:/home/fernando/lirc-0.8.5# ./configure
    dialog not found!
    Please read the documentation!!!
    root@fernando-laptop:/home/fernando/lirc-0.8.5# make
    make: *** No se especificó ningún objetivo y no se encontró ningún makefile. Alto.
    root@fernando-laptop:/home/fernando/lirc-0.8.5# sudo make install
    make: *** No hay ninguna regla para construir el objetivo `install'. Alto.
    root@fernando-laptop:/home/fernando/lirc-0.8.5#


    es como si no existiera estas variables para su instalacion, como deberia instalar este arcivo manualmenete, ya que no cuento
    con internet para conectarme a los repositorios, estuve revisando material de LIRC como compilarlo pero como pateo en el ingles no entendi casi nada, me podrian explicar como instalar/compilar manualmente

    una cosa mas.... descarge estos archivos..

    lirc-0.8.5.tar.bz2
    lirc-0.8.5.tar.gz

    cual debo instalarlos dos son lo mismo verdad


    Bueno muchas gracias espero puedas ayudarme, que creo que aqui es el unico lugar donde se habla de este tema, pero de una manera adecuada


    Un saludo

    ResponderEliminar
  12. Mmmm, vamos por pasos.
    A- No uses sudo para configurar o compilar, solo es necesario para instalar (el make install).

    B-Cuando haces el ./configure te advierte que leas la documentación por que no encuentra a "dialog".
    Dialog es una aplicación para dibujar interfaces (mas o menos, mas info en la wikipedia :P) y por el aviso imagino que la configuración dependerá de dicho programa.
    Vamos que necesitas instalar primero dialog. Te sugiero que pases de esto y busques la web del repositorio de ubuntu
    http://packages.ubuntu.com/es/jaunty/lirc
    Abajo están los enlaces al paquete deb en ambas arquitecturas.

    Los archivos con el punto rojo que hay en el enlace son las dependencias de lirc que deberás bajar e instalar también.

    C- Si los dos archivos son la misma versión del mismo programa con diferente tipo de compresión (bz2 y gz respectivamente). Si los has bajado del mismo servidor ambos tienen el mismo contenido.

    No se si se me entiende del todo bien, pero ahí queda eso.
    Un saludo!

    ResponderEliminar
  13. Comprendo muy bien lo que me acabas de explicar, lo que pasa es que esa version que me indicas en:
    http://packages.ubuntu.com/es/jaunty/lirc

    es lirc 0.8.4a, del 2008 y la que deseo instalar es la 0.8.5 del 2009, la que me indicas ya la baje e instale sin ningun problema, pero no me reconoce el control, por eso deseo instalar la nueva version manualmente en base a los archivos que ya te mencione, el problema es que no se como instalarlos ni como compilarlos, espero puedas ayudarme a como instalar este archivo

    un saludo

    ResponderEliminar
  14. Pues en la carpeta del código fuente hay una sub-carpeta doc/html/index.html con ayuda para la instalación y demás. De todas formas como ya te dije más arriba el problema es que te falta el paquete dialog para poder instalar lirc. Buscalo en el repositorio de Ubuntu (el dialog) y cuando lo tengas ya instalas el lirc 0.8.5.
    Una cosa. Según el manual de lirc tan solo tienes que ejecutar el archivo setup.sh el cual se encargara de configurarlo. Y despues del setup.sh ya lo compilas con make y lo instalas con el sudo make install.

    Confirma que no te devuelva ningún mensaje de error en cada paso, pues no servirían los siguientes pasos para nada si uno anterior falla.

    Eso si, también te aviso que según la web, esa versión de lirc solo ha sido probada en kernel 2.6.29 y en Ubuntu seguimos, de momento por el 2.6.28. También he leído que en algunas distros (ej. Mandrake 8.2) da problemas el compilar.

    Poco mas te puedo decir.
    Un saludo y espero que puedas resolverlo

    ResponderEliminar
  15. Bueno DuKKoN, muchas gracias por tu ayuda y paciencia, segun lo que dices sobre el kernel, tienes razon, no me fije en ese pequeño detalle, ya que mi ubuntu tiene el kernel 2.6.28, es una pena ya que con el lirc 0.8.4 no pude hacer reconocer el control, ni cambiando las caracteristicas al lircd.conf , hardware.conf, ni modo seguire buscando y probando opciones, si lo consigo lo posteo como lo hice, y si no, espero que alguno que tenga un HP dv4 1220us lo haga reconocer y comente....

    Un saludo y muchas gracias, excelente material el publicado

    Saludos

    ResponderEliminar