LIRC en Archlinux

Hola a todos, hace unos días descubrí que mi computador (acer 4520), tenia un infrarrojo receptor, para usarlo con un control remoto, tras saber eso me propuse configurarlo en archlinux y me encontré con varios inconvenientes. Bueno lo primero es saber si tenemos un receptor infrarrojo, pueden ver la lista de hardware compatible aquí. En mi caso el CIR es un “Winbond 8769L”, en caso de tener el mismo CIR lo pueden verificar con

hal-device | grep WEC

Si la salida es algo como esto, continuamos.

81: udi = ‘/org/freedesktop/Hal/devices/pnp_WEC1020’
pnp.id = ‘WEC1020’  (string)
info.product = ‘PnP Device (WEC1020)’  (string)
info.udi = ‘/org/freedesktop/Hal/devices/pnp_WEC1020’  (string)

Instalamos Lirc con

sudo pacman -S lirc lirc-utils

Luego debemos cargar los modulos correspondientes a nuestro receptor, podemos ver lo modulos necesarios aquí en la columna “Required LIRC kernel modules”, en mi caso los modulos son “lirc_dev” y “lirc_wpc8769l”, para cargarlos tecleamos

sudo modprobe lirc_dev

sudo modprobe lirc_wpc8769l

Si queremos que se carguen al inicio, los agregamos en “MODULES” en nuestro “rc.conf”.

Tras esto comprobamos que nuestro receptor capta las pulsaciones del control remoto que usaremos (puede ser cualquiera), esto lo vemos tecleando en un terminal

sudo mode2 -d /dev/lirc0

Si al presionar un boton del control remoto vemos en el terminal algo como lo siguiente, continuamos.

pulse 350
space 200
pulse 300
space 500
pulse 600
space 450
pulse 400
space 200
pulse 300

En mi caso, por algo que aún desconozco, al iniciar el notebook e intentar captar las pulsaciones no funciona, pero al suspender y volver de la suspensión, funciona todo correctamente y muestra una salida como la anterior. Si no les resulta en un comienzo pueden probar suspender; si alguien tiene alguna idea de como solucionarlo agradecería que me lo dijera :).

EDITO: Desde el kernel 2.6.34 funciona desde un comienzo 🙂 así que lo anterior esta solucionado.

Continuando, si nuestro CIR recibe las pulsaciones, solo nos queda configurar LIRC para nuestro control remoto, tenemos dos opciones para hacer esto, la primera es buscar si ya existe un archivo de configuración para nuestro control remoto en el sitio de lirc, o crear nuestro propio archivo de configuración.

Para crear el archivo de configuracion ponemos en un terminal

sudo irrecord -d /dev/lirc0 NOMBRECONTROLREMOTO

remplazando “NOMBRECONTROLREMOTO” por el nombre de nuestro control remoto (pueden poner el nombre que quieran), el programa nos mostrara algo así

Presionamos enter para continuar

Acá nos dice que debemos presionar distintos botos del control remoto, hasta que se completen dos filas de 80 puntos cada una, presionamos enter y comenzamos a pulsar botones hasta completar la primera columna y luego repetimos lo mismo para la segunda.

Tras esto, nos pide ingresar el nombre para el primer boton, la lista de nombres validos la pueden ver poniendo en un terminal

irrecord -l

Ingresamos el nombre del botón, presionamos enter y luego pulsamos el botón. Esto lo repetimos hasta terminar de ingresar todos los botones de nuestro control remoto, para finalizar el irrecord presionamos enter, dejando el nombre del botón en blanco (sin nada). Esto nos creara un archivo con la configuración de nuestro control remoto, el cual copiamos a “/etc/lircd.conf”, con

sudo cp NOMBRECONTROLREMOTO /etc/lircd.conf

Remplazando NOMBRECONTROLREMOTO por el nombre que pusimos al iniciar irrecord. Finalmente modificamos el archivo “/etc/conf.d/lircd.conf” con

sudo nano /etc/conf.d/lircd.conf

Y dejándolo de esta forma

Luego para que todo funcione desde un comienzo, agregamos el demonio “lircd” a nuestro “/etc/rc.conf”. Luego para hacer algo util con el control remoto, podemos configurarlo para que realice ciertas acciones.

Podemos ver si la configuración quedo bien, con el comando “irw” el cual muestra el nombre asignado a cada botón al presionarlo.

Lirc en xbmc

Xbmc es un mediacenter muy completo y el mejor de los que he probado, ademas es multiplataforma, para instalarlo en archlinux lo puden hacer con

sudo pacman -S xbmc

Luego lo pueden ejecutar desde un terminal con el comando “xbmc” o desde el menú (gnome, xfce, kde, etc…). Para configurar nuestro control remoto en xbmc editamos el archivo “Lircmap.xml” con

sudo nano /usr/share/xbmc/system/Lircmap.xml

Podemos agregar una configuración o modificar una existente, yo modifique el primero “mceusb”; en el comienzo

<remote device="mceusb">

Remplazamos mceusb por el nombre de nuestro control remoto, ademas en cada acción (play, stop, etc…) ponemos el nombre del botón (que definimos en irrecord), dejo mi “Lircmap.xml” como ejemplo. Con la configuración lista al abrir xbmc funcionara el control remoto.

Lirc en exaile

Exaile es un reproductor de audio simple y similar a amarok pero escrito en GTK, gracias a un plugin que encontré en una entrada de este blog, podemos configurarlo de manera sencilla para que funcione con lirc, simplemente descargamos el plugin desde aquí, lo instalamos y activamos en las preferencias de exaile. Y luego creamos el archivo “.lircrc” en nuestro home con

nano ~/.lircrc

En donde agregamoslos las acciones que queremos realice exaile al pulsar un botón, un ejemplo de la configuración de “.lircrc” la encontramos aquí, en donde solo debemos remplazar los nombres de los botones según corresponda y el nombre de nuestro control remoto.

Lirc en nuestro escritorio

Lirc trae una utilidad para asignarle un comando especifico a cada botón, para usar esto debomos modificar nuestro “.lircrc” y agregar lineas del tipo

begin
prog = irexec
remote = tv
button = KEY_GOTO
config = xdotool key s &
repeat = 0
end

En la primera linea “prog” dejamos irexec ya que es la utilidad que permite ejecutar distintos comandos al presionar un botón.

En “remote” ponemos el nombre de nuestro control remoto (el cual asignamos en irrecord); en “button” ponemos el nombre del botón (el cual podemos ver con “irw”) al cual queremos asignar una
acción.

En “config” ponemos el comando que queremos que ejecuta, en este caso use “xdotool” para hacer se presionara la tecla “s”.

En “repeat” ponemos si queremos que la pulsación de control remoto se repita al mantenerlo presionado, si queremos que sea asi le asignamos “1” en caso contrario “0”.

Con esto pueden construir su configuración para usar un control remoto en Archlinux y en Gnu/Linux en general. Bueno espero les sea útil, agradecimientos a este post en un foro de ubuntu que me ayudo bastante en un comienzo, para mas info pueden ver la wiki de archlinux. Saludos a todos y hasta pronto.

XaBz

Anuncios
    • Marcia
    • 2/04/10

    Hola. Tu comentario es lo más parecido a lo que estoy buscando. Tengo un infrarrojo en el nb que funcionaba bien cuando tenía Win, pero le instalé el ubuntu y no lo puedo hacer andar, lo que me gustaría mucho. Lei atentamente tus explicaciones pero no sé como hacer para saber cual es el “driver adecuado” para mi notebook. Si me pudieras ayudar te agradecerìa mucho. Saludos

    • Hola, es un poco complicado saber cual es el modulo que se debe cargar para tu infrarrojo, creo que la forma mas sencilla es buscar los drivers de windows que usabas y ver el nombre del infrarrojo, también puedes verlo en el manual del computador. Tras tener el nombre búscalo en la lista que existe en lirc.org de hardware compatible http://www.lirc.org/html/table.html si encuentras el mismo nombre que el de tu infrarrojo o uno similar usa los módulos que salen en la columna “Required LIRC kernel modules”, en ubuntu no recuerdo como cargarlos al inicio, pero puedes cargarlo escribiendo en un terminal
      sudo modprobe lirc_dev
      sudo modprobe lirc_xxx

      Espero te sirva y si tienes otra dudo o no te funciona no dudes en preguntar. Saludos y suerte.

    • Marcia
    • 14/04/10

    Gracias por tu tiempo, pero no tuve suerte… En el manual solo dice IR, no aclara marca ni nada, y el cd de drivers tiene un montón y como no sé cual es… es lo mismo que la nada, entonces desistí, tal vez uno de estos días tenga más paciencia para intentarlo nuevamente. Gracias de nuevo.

    • Lo otro que puedes hacer es instalar lirc en ubuntu

      sudo apt-get install lirc inputlirc

      Y cargar en un inicio “lirc_dev” y tal vez con udev reconozca el modulo correspondiente. Para cargarlo al inicio modifica el archivo “/etc/modules” y al final agrega una linea que diga “lirc_dev”, luego reinicia, y ejecuta “sudo mode2 -d /dev/lirc0” si no lanza ningún error intenta presionar un control remoto señalando al pc, si muestra alguna salida como la que se ve en la entrada, continua configurándolo; en caso de que no de un error pero no muestre nada al presionar los botones del control remoto, suspende el equipo y vuelve a probar. Espero te funcione, saludos.

    • Anak
    • 8/02/11

    Me pasa algo parecido a lo tuyo… lo de que solo funciona cuando suspendes. A mi lo que me pasa es que funciona a veces, sin tocar NADA, a veces va y otras no. incluso $irw no devuelve NADA, y el mando funciona.
    ¿Has conseguido resolverlo?

    Saludos

    • Hola, desde el kernel 2.6.34 funciono bien, pero en el 2.6.36 dejo de funcionar, carga el modulo y lo reconoce, pero no funciona… No he probado con el ultimo kernel y la verdad no se si se debe a la nueva versión de LIRC o al kernel…

        • Anak
        • 8/02/11

        Pues… nos tocará esperar, porqué creo que es cosa del kernel, en kde, no necesitas instalar lirc, ya viene con el paquete kdeutils-kremotecontrol.

        Gracias por tu respuesta.

        Saludos

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: