->
Actualización: El tutorial se va actualizando en el wiki, así que recomiendo su realización desde aquí.
Este tutorial que, tras varios días, he terminado está pensado para Ubuntu y para Macbooks (al menos los C2D), aunque puede ser funcional para cualquier otra distribución de GNU/Linux como Debian, Gentoo, … cambiando varios códigos en el archivo que adjunto en función de las teclas de vuestro mando a distancia.
Para los que no conozcan LIRC (Linux InfraRed Controller), esta utilidad consisten en un demonio que monitoriza un evento de /dev/input/eventX, cierra el acceso a él y ejecuta una serie de utilidades en función de lo que hayamos configurado y del programa que estemos ejecutando.
El grave problema de LIRC es que se consigue con muy pocos mandos a distancia en muy pocas capturadoras, y siempre surgen múltiples problemas, de hecho yo nunca lo he conseguido hacer funcionar.
Por estas razones, decidí hacer el tutorial partiendo de otra utilidad que no necesita de los ficheros de configuración de lircd.conf que se las traen, si no simplemente del fichero lircrc donde pones la configuración, ya que monitorea todos los eventos y no necesita un uso exclusivo.
En el caso de los macbooks, macmini… tenemos el grave problema de sólo disponer de 6 botones, no siendo funcional el botón de menú, al estar mapeado su código a la función KEY_BACK, y al no ser esta funcional.
- Lo primero es instalar el demonio inputlirc, lirc (lo necesitamos aunque no lo usemos).
sudo apt-get install inputlirc lirc lirc-x
/etc/init.d/inputlirc start
#### Cambiar modo (con 5 teclas no es viable) ####
## Si se consigue que el botón Menu (KEY_BACK) funcione podría usarse para cerrar aplicaciones y poder activar con ello los modos de arranque de programas pero no lo consigo ni mapeando ni modificando el input.h, si alguien lo consigue que lo notifique ##
#begin
# prog = irexec
# button = KEY_PLAYPAUSE
# mode = amarok
# config = echo "Modo amarok"
#end
#
#begin
# prog = irexec
# button = KEY_NEXTSONG
# mode = kaffeine
# config = echo "Modo kaffeine"
#end
#begin
# prog = irexec
# button = KEY_PREVIOUSSONG
# mode = mplayer
# config = echo "Modo mplayer"
#end
#### MPlayer ####
#begin mplayer
begin
prog = mplayer
button = KEY_PLAYPAUSE
config = pause
end
begin
prog = mplayer
button = KEY_PREVIOUSSONG
config = seek -10
repeat = 1
end
begin
prog = mplayer
button = KEY_NEXTSONG
config = seek +10
repeat = 1
end
begin
prog = mplayer
button = KEY_VOLUMEUP
config = volume 1
repeat = 1
end
begin
prog = mplayer
button = KEY_VOLUMEDOWN
config = volume -1
repeat = 1
end
#end mplayer
#### Kaffeine ####
#begin kaffeine
begin
prog = irexec
button =
config = dcop kaffeine MainApplication-Interface
end
begin
prog = irexec
button = KEY_PLAYPAUSE
config = if `dcop kaffeine KaffeineIface isPlaying`; then dcop kaffeine KaffeineIface pause; dcop kaffeine kaffeine_mainview hide; else dcop kaffeine KaffeineIface play; dcop kaffeine kaffeine_mainview hide; fi
end
begin
prog = irexec
button = KEY_NEXTSONG
repeat = 1
config = dcop kaffeine KaffeineIface posPlus
end
begin
prog = irexec
button = KEY_PREVIOUSSONG
repeat = 1
config = dcop kaffeine KaffeineIface posMinus
end
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
config = dcop kaffeine KaffeineIface volUp
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
config = dcop kaffeine KaffeineIface volDown
end
#end kaffeine
#### Amarok ####
#begin amarok
begin
prog = irexec
button = KEY_PLAYPAUSE
config = dcop amarok player playPause
end
begin
prog = irexec
button = KEY_BACK
config = dcop amarok player stop
end
begin
prog = irexec
button = KEY_NEXTSONG
config = dcop amarok player next
end
begin
prog = irexec
button = KEY_PREVIOUSSONG
config = dcop amarok player prev
end
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
config = dcop amarok player volumeUp
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
config = dcop amarok player volumeDown
end
#end amarok
#### TVTime ####
#begin tvtime
#begin
# prog = irexec
# button = source
# config = tvtime-command TOGGLE_INPUT
#end
#begin
# prog = irexec
# button = Info
# config = tvtime-command DISPLAY_INFO
# repeat = 1
#end
#begin
# prog = irexec
# button = Fullscreen
# config = tvtime-command TOGGLE_FULLSCREEN
#end
#begin
# prog = irexec
# button = CC
# config = tvtime-command TOGGLE_CC
#end
#
#begin
# prog = irexec
# button = Mute
# config = tvtime-command TOGGLE_MUTE
#end
#
### Menu navigation.
begin
prog = irexec
button = KEY_NEXTSONG
repeat = 1
config = tvtime-command UP
repeat = 1
end
begin
prog = irexec
button = KEY_PREVIOUSSONG
repeat = 1
config = tvtime-command DOWN
repeat = 1
end
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
config = tvtime-command RIGHT
repeat = 2
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
config = tvtime-command LEFT
repeat = 2
end
#begin
# prog = irexec
# button = middle
# config = tvtime-command CHANNEL_JUMP
# repeat = 1
#end
begin
prog = irexec
button = KEY_PLAYPAUSE
config = tvtime-command ENTER
end
#end tvtime
#### Subir y bajar el volumen con el mando (Activado por defecto en Feisty) ####
#begin
#prog = irexec
#button = KEY_VOLUMEUP
#config = amixer set PCM 9+ & #amixer set PCM 3%+ &
#repeat = 2
#end
#begin
#prog = irexec
#button = KEY_VOLUMEDOWN
#config = amixer set PCM 9- & #amixer set PCM 3%- &
#repeat = 2
#end
- Ahora ejecutamos el demonio irexec que es el que se encargará de que se ejecuten las anteriores acciones. Abridlo en otra terminal, ya que la de inputlirc sigue en uso.
- Es importante que añadáis irexec a las opciones de inicio de GNOME o de KDE. En GNOME es en Sistema/Preferencias/Sesiones
NOTAS IMPORTANTES:- Sólo he añadido soporte para kaffeine, amarok, mplayer y tvtime. Si queréis otros, es cuestión de tocar el archivo /etc/lircrc añadiendo el código de vuestro programa.
- Leed el archivo /etc/lircrc para más información.
- Todos los comandos se ejecutan a la vez, es decir, que si tenéis varias programas soportados abiertos simultáneamente, todos realizarán la función que ejecutemos. Para solucionar esto, habría que descomentar ciertas cosas que os he dejado preparado en el archivo, y necesitáis también reservar varios botones para elegir las aplicaciones que sólo funcionarán para eso. Y si ya tenemos sólo 6 botones y uno inservible… no os lo recomiendo.
- Si vuestro mando no está soportado o no funciona todo lo descrito, podéis comprobar cual es vuestro código para cada botón, haciendo uso de:
a) El comando xev
b) De la aplicación de GNOME /Sistema/Preferencias/Combinaciones de teclas y ahí buscad algún atajo de teclado que no esté soportado y grabar ese botón del mando a distancia. Una vez tengáis el código de ese botónUna vez tengáis el código HEXADECIMAL de ese botón (y no el del mapeo para xmodmap porque lirc e inputlirc trabajan en una capa por encima de xmodmap) váis al archivo /usr/include/linux/input.h y ahí buscáis ese código. Cuando le tengáis, el nombre que os aparecerá será vuestro código que es con el que manejaréis el evento en el archivo /etc/lircrcCon todo esto, ya tenéis todo lo necesario, ahora sólo queda que alguien consiga hacer funcionar el botón menu del apple remote (y no como tecla dentro de xmodmap que eso es sencillo pero no muy útil).
el 27 Junio 2007 a las 17:52
27 Junio 2007 a las 21:12
Guay Mario, eso estaba esperando…xD, aunque con lo que me dijiste conseguí sacar los códigos de las teclas, y hacerlo funcionar, pero el tutorial está mucho mejor….. Gracias de nuevo.
27 Junio 2007 a las 21:56
Pero tengo que currarme varios scripts
28 Junio 2007 a las 10:33
Excelente tutorial, está completísimo.
28 Junio 2007 a las 12:12
Muchas gracias, bueno lo de completísimo está en cuanto consiga lo que busco y ya sé cómo conseguirlo.
Por otro lado, todavía la tecla menu no consigo hacerla correr
22 Agosto 2007 a las 01:03
hola estoy intentando instalar todo esto y como soy muy novat , cuando dices
* A continuación añadimos este demonio al arranque. Para ello editamos el fichero /etc/rc.local (como superusuario) y añadimos al principio, la entrada:
a que linea te refieres exactamente
luego el archivo lircrc no lo encuentro
espero una ayuda , para poder continuar
saludos y gracias
22 Agosto 2007 a las 10:30
hola , una aclaración a mi pregunta anterior
en el otro manual pones
/etc/lirc/lircrc
este archivo hay que crearlo dentro de ***/lirc ?
creo que me falta eso que te pongo en los dos posts lo demás parece sencillo ( para mi , claro)
saludos
23 Agosto 2007 a las 00:15
Hola josefu. SIento el retraso pero estaba fuera.
Lo de añadir la línea /etc/init.d/inputlirc start dentro del archivo /etc/rc.local se haría en una terminal:
sudo gedit /etc/rc.local
Y ahí, al final del todo, pero antes de exit 0 añades:
/etc/init.d/inputlirc start
Los dos tutoriales están hecho de modo diferente aunque son similares, El archivo lircrc es mejor colocarle en la carpeta de tu usuario pero llamándole .lircrc
Quedaría algo como /home/tuusuario/.lircrc
Algunos programas como VLC buscan el archivo en esa ruta, o en /etc/lirc/lircrc, la que primero encuentren.
Espero que te sirva
23 Agosto 2007 a las 01:25
No te preocupes , que no has tardado mucho y cada uno tiene sus cosas,
la linea esta la añad{ia al principio , , yo entend{i esto , ahora est{a perfectamente explicado , no estar{ia mal que lo editaras para evitar malentendidos en novatos como yo,
e cuanto al archivo , como no lo encuentro entiendo que tengo que crearlo , no es asi ????
saludos y gracias
ya posteare resultados
23 Agosto 2007 a las 01:29
Exacto. Por cierto, buen navegador
23 Agosto 2007 a las 09:25
Por cierto, buen navegadorjaja, me alegra , yo no lo conozco ,
estaba escribiendo desde un live cd de una distro argentina " tuquito" para testearla ,
me la quería instalar en una particion al lado de ubuntu, pero este lo tengo instalado usando todo el disco ( el 2ºhd) y creo que no podré porque no me deja redimensionar..
saludos
23 Agosto 2007 a las 15:50
Iceweaseal es Firefox pero cambiado el icono y cuatro chorradas para ser completamente libre. Otra rallada de los Debianistas.
23 Agosto 2007 a las 23:54
en sesiones , me pide nombre y comando , yo le digo lircrc y le pongo los comandos , pero no se si seguir un manual u otro ya que es distinto
estoy confuso
siento ser tan novatillas
gracias por adelantado
saludos
24 Agosto 2007 a las 09:16
El nombre puedes poner el que quieras. Tendrás que poner que ejecute dos cosas:
Nombre: irxevent
Comando: irxevent -d
Nombre: irexec
COmando: irexec -d
Te queda claro ahora? El tutorial está claro, pero es normal que a los más novatillos os cuesté, pero poco a poco se aprende
24 Agosto 2007 a las 23:55
te pido mil disculpas
te he hecho perder el tiempo.. porque resulta que no tengo apple remote , me he dado cuenta ahora , estaba cegado con la idea que era más fácil de instalar el mando así que no instalando lirc . yo tengo un pc con ss2.
siento verguenza xd,
saludos ,
25 Agosto 2007 a las 08:50
Jajajaja, no te preocupes hombre. Esto te ha servido al menos para aprender.
Si tienes capturadora de televisión también se puede hacer, pero ya la cosa se complica. Yo me he tirado un año hasta conseguirlo
26 Agosto 2008 a las 21:13
http://magarto.com/blog/archivo/2007/06/27/howto-usar-apple-remote-de-los-macbooks-en-ubuntu-entre-otros-para-multiples-aplicaciones-sin-necesidad-de-lirc/
Hola, no se si esta entrada estará activa todavía…
Bueno, cuento un poco el estado actual y de lo que hice
Instalé lirc y lirc-x
Identifiqué y nombré todas las teclas del mando rm-fp de Avermedia con “irrecord” para hacer un lircd.conf, y con “irw” las reconoce sin problemas.
Tengo en “sesiones” los dos demonios, irexec -d e irxevent -d.
Edité una nueva regla para “udev”en /etc/udev/rules.d/10-local.rules para que al reiniciar no cambiara aleatoriamente de eventX con este contenido:
KERNEL==”event*”,SYSFS{vendor}==”0×1131″,SYMLINK=”input/irremote”
para después cambiar en el /etc/lirc/hardware.conf esta otra linea:
REMOTE_DEVICE=”/dev/input/irremote” en vez de */input/eventX
Lanzado el lirc con :
sudo /etc/init.d/lirc start
Añadida la linea /etc/init.d/inputlirc start en rc.local y, como root, lanzado desde la terminal.
Colocado el lircrc en /etc/lirc/lircrc y, por si acaso, en /home/usuario/ con este contenido:
begin
prog = irexec
button = EPG
mode = kaffeine
config = echo “Modo kaffeine”
end
# Configuración del mando a distancia para kaffeine
begin kaffeine
begin
prog = irexec
button =
config = dcop kaffeine MainApplication-Interface
end
begin
prog = irexec
button = record
config = dcop kaffeine KaffeineIface setRecord
end
Y algunas teclas más, claro.
Si lo quito de /home/usuario/ hace lo mismo.
¿Y que hace? pues subir y bajar el volumen de gnome y en la terminal escribir 1234 etc. y con la tecla power lanzar la pantalla de terminar sesión-apagar el equipo, pero de Kaffeine… nada, ni lo arranca ni, una vez arrancado a ratón, reconoce ninguna de las llamadas de DCOP. Solo en el menú donde se eligen las funciones, al estar numeradas, sí las activa, pero nada más.
En la salida de ps aux |grep lir hay un tal novody ¿? que se hace el dueño de inputlird:
nobody 5632 0.0 0.0 12272 420 ? Ss Aug24 0:01 /usr/sbin/inputlircd /dev/input/event0 /dev/input/event1 /dev/input/event2 /dev/input/event3 /dev/input/event4 /dev/input/event5 /dev/input/event6
Y el root para lirc:
root 19017 0.0 0.0 15828 544 ? Ss 20:22 0:00 /usr/sbin/lircd –driver=devinput –device=/dev/input/irremote
Pero nada de irxevent e irexec, aunque en Preferencias de sesión>>Sesión actual sí aparecen como activos.
Es como si por defecto leyera la configuración para gnome y se saltara el lircrc.
Si fueras tan amable de echarme un rayo de luz…
Saludos.