¿Cómo hago funcionar el control remoto de la Compro Videomate M1F en Ubuntu?

En una conferencia de prensa en el Palacio de Gobierno, Juan Perón explica cómo en los años aciagos fue posible conducir remotamente el Movimiento desde Madrid, y cómo hacer funcionar el control remotor de la sintonizador Compro VideoMate M1F en Ubuntu.

¡Trabajadores!

No es ningún secreto que durante los años en los que se extendió la prohibición del peronismo -  decretada tontamente por una camarilla gorila, cipaya y servil a los intereses extranjeros - el Movimiento pudo sobrevivir y contrarrestrar mediante la persuasión y la acción decidida a todos quienes se le oponían.

Esto fue así porque el Peronismo no era una fuerza venida del extranjero, o un escuadrón de paracaidistas checoslovacos, sino que representa un componente vital de la Patria misma, y como la Patria no muere, tampoco lo hará su núcleo motor: El Justicialismo.

Muchos dijeron que yo tenía una especial manera de Conducir el Movimiento a  a la distancia; y hacerlo gravitar como la opción política más trascendente de la República, y todo ello desde mi residencia en Madrid. Decían que tenía un "control remoto". Y si, eso era verdad.
Vean señores, ustedes conocen más que yo que la sintonizadora Compro VideoMate Vista M1F funciona en Ubuntu, y se suministra con un control remoto infrarrojo de 51 botones denominado "V100".
Ahora bien, el mismo se haya certificado para su uso en el sistema operativo oligárquico Window$ Vi$ta y superiores (utiliza el protocolo RC-6). Se trata de un control de buena calidad, con un LED azul de funcionamiento, alimentado a través de un par de pilas AAA. Para transmitir las órdenes al equipo, debe apuntarse al diodo del receptor IR conectado a la sintonizadora M1F (se trata de un cable miniplug con un diodo IR en la punta)


Ustedes me preguntan si este control remoto y el dispositivo infrarrojo asociado pueden utilizarse también en Ubuntu, y la respuesta es totalmente afirmativa. Han de saber que para emplear este tipo de controles remotos, los sistemas GNU con Linux cuentan con un programa de interfaz especial: el LIRC. Este paquete permite recibir, decodificar - y en ciertos casos - enviar información a través de dispositivos de luz infrarroja invisible.

Normalmente este paquete LIRC puede configurarse con una serie de opciones prearmadas para los dispositivos o controles remotos más utilizados. Sin embargo, para el caso del emisor V100 que acompaña a la sintonizadora Compro VideoMate M1F, habremos de configurarlo manualmente. Específicamente, habremos de modificar tres archivos de configuración.

Un Movimiento como el Justicialismo debe por tanto adaptarse a todos los tipos de Conducción: desde la minigestiva, la del piloto automático, la del piloto de tormentas, y la del Control Remoto. Por ello, como primer medida, nos notificaremos si el módulo IR de la placa ha sido al menos detectado y aceptado por el sistema. Abrimos una Terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de organización:

cat /proc/bus/input/devices

El sistema debería devolver una información similar a la siguiente:

I: Bus=0001 Vendor=185b Product=c900 Version=0001
N: Name="saa7134 IR (Compro VideoMate Vi"
P: Phys=pci-0000:07:01.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:07:01.0/rc/rc0/input6
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=100013
B: KEY=400 0 108fc216 9d004900000000 0 2108000 200080c4000001 9e168000000000 10004ffc
B: MSC=10

Es importante tomar nota de la línea que indica el número de evento de manipulación (handler, en este caso, event6). Tengamos presente que este número de evento variará de acuerdo a la cantidad de dispositivos de entrada conectados o instalados en nuestro equipo. Incluso, podría variar si desconectamos algún dispositivo y reiniciamos el mismo. Por ello en el caso del uso de la interfaz para control remoto en Linux, LIRC, es muy importante conocer cuál es el nuestro para su correcto funcionamiento.

Una vez que sabemos cual es el número de evento de nuestro receptor de control remoto, podremos instalar LIRC y configurarlo en consecuencia. Si deseamos hacerlo desde la Terminal, ingresamos el siguiente Comando de Organización:

sudo apt-get install lirc

Durante su instalación, el LIRC cuenta con una rutina de configuración para nuestro control remoto. Lamentablemente, como ya saben en dicha lista no cuenta con el control remoto V100 de la Compro M1F.  Podríamos optar por usar "Windows Media Center Trasceivers/Remotes (all)", pero con la misma no funcionarán todas las teclas.

Para que el control remoto de la Compro VideoMate M1F responda adecuadamente a la presión de sus teclas en Ubuntu, habremos de editar manualmente dos archivos de configuración localizados en la carpeta /etc/lirc: los archivos hardware.conf y lircd.conf.

Afortunadamente, el trabajo de identificación de los códigos hexadecimales de cada tecla y de programación del botón ya ha sido realizado, y gracias a la bondad que propicia el software libre, os las daré para que su uso sea como coser y cantar.

Primero editaremos en el editor Gedit la configuración de botones para el control remoto V100. Lo podremos disparar desde la consola con:

sudo nano /etc/lirc/lircd.conf

Esto abrirá un archivo de configuración más o menos en blanco. Lo modificaremos pegándole el siguiente texto de configuración:

### Compro VideoMate Vista M1F ###
# Creator: gThumb <aton77 <at> mail.ru>
# Please make this file available to others
# by sending it to <[email protected]>
#
# this config file was automatically generated
# using lirc-0.8.6(devinput) on Mon Sep 20 19:42:46 2010
#
# contributed by
#
# brand:                       /etc/lirc/lircd.conf
# model no. of remote control: RC6 ir
# devices being controlled by this remote: Compro VideoMate M1F
#

begin remote

 name  /etc/lirc/lircd.conf
 bits           16
 eps            30
 aeps          100

 one             0     0
 zero            0     0
 pre_data_bits   16
 pre_data       0x8001
 gap          322401
 toggle_bit_mask 0x0

     begin codes
         KEY_POWER                0x0074
         KEY_TUNER                0x00D4
         KEY_VIDEO                0x0181
         KEY_RADIO                0x0189
         KEY_CAMERA               0x0182
         KEY_NEW                  0x00B5
         KEY_CYCLEWINDOWS         0x009A
         KEY_ANGLE                0x0173
         KEY_LANGUAGE             0x0170
         KEY_SEARCH               0x00D9
         KEY_UP                   0x0067
         KEY_LEFT                 0x0069
         KEY_OK                   0x0160
         KEY_RIGHT                0x006A
         KEY_DOWN                 0x006C
         KEY_BACKSPACE            0x000E
         KEY_ZOOM                 0x0174
         KEY_INFO                 0x0166
         KEY_VOLUMEUP             0x0073
         KEY_MUTE                 0x0071
         KEY_CHANNELUP            0x0192
         KEY_VOLUMEDOWN           0x0072
         KEY_CHANNELDOWN          0x0193
         KEY_RECORD               0x00A7
         KEY_STOP                 0x0080
         KEY_BACK                 0x009E
         KEY_PLAY                 0x00CF
         KEY_FORWARD              0x009F
         KEY_PREVIOUS             0x019C
         KEY_PAUSE                0x0077
         KEY_NEXT                 0x0197
         KEY_1                    0x0002
         KEY_2                    0x0003
         KEY_3                    0x0004
         KEY_4                    0x0005
         KEY_5                    0x0006
         KEY_6                    0x0007
         KEY_7                    0x0008
         KEY_8                    0x0009
         KEY_9                    0x000A
         KEY_N                    0x020A
         KEY_0                    0x000B
         KEY_SUBTITLE             0x0172
         KEY_CLEAR                0x0163
         KEY_SCREEN               0x0177
         KEY_ENTER                0x001C
         KEY_RED                  0x018E
         KEY_GREEN                0x018F
         KEY_YELLOW               0x0190
         KEY_BLUE                 0x0191
         KEY_TEXT                 0x0184
     end codes

end remote


#Quitado:
#Configuración para los remotos/receptores Windows Media Center:
#include "/usr/share/lirc/remotes/mceusb/lircd.conf.mceusb"

Guardamos (ctrl+o) y cerramos el editor Nano (ctrl+x).

Acto seguido, procedemos a editar el fichero hardware.conf:

sudo nano /etc/lirc/hardware.conf

Hemos de modificarlo para que quede así:

#Chosen Remote Control
REMOTE=""
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/event6"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Cómo determino nro. de evento?
#En la terminal ejecuto: $ cat /proc/bus/input/devices
#Creador: gThumb <aton77 <at> mail.ru>

Naturalmente, en donde dice dev/input/event6 debemos indicar el evento del que tomamos nota anteriormente. Una vez completado esto, nos aseguramos de guardar el archivo y salir del Nano.

Ahora debemos agregar el archivo oculto .lircrc en nuestra carpeta de usuario, que programa el uso de las teclas:

Para ello abrimos el edit con el siguiente comando:

sudo nano ~/.lircrc

..y en la página en blando del editor le pegamos el siguiente texto:

#Compro VideoMate Vista M1F#
#File ~/.lircrc
#Author: gThumb <aton77 <at> mail.ru>
#/home/user/.lircrc

###SHUTDOWN###
begin
   prog = irexec
   button = KEY_POWER
   config = gnome-session-save --shutdown-dialog
end

### tvtime ###
begin
   prog = irexec
   button = KEY_CAMERA
   config = tvtime &
   config = tvtime-command QUIT
end
begin
   prog = irexec
   button = KEY_CLEAR
   config = tvtime-command QUIT
end
begin
   prog = irexec
   button = KEY_OK
   config = tvtime-command TOGGLE_FULLSCREEN
end
begin
   prog = irexec
   button = KEY_ZOOM
   config = tvtime-command TOGGLE_FULLSCREEN
end
begin
   prog = irexec
   button = KEY_SCREEN
   config = tvtime-command TOGGLE_FULLSCREEN
end
begin
   prog = irexec
   button = KEY_MUTE
   config = tvtime-command TOGGLE_MUTE
end
begin
   prog = irexec
   button = KEY_CHANNELUP
   config = tvtime-command UP
end
begin
   prog = irexec
   button = KEY_CHANNELDOWN
   config = tvtime-command DOWN
end
begin
   prog = irexec
   button = KEY_UP
   config = tvtime-command UP
end
begin
   prog = irexec
   button = KEY_DOWN
   config = tvtime-command DOWN
end
#begin
#    prog = irexec
#    button = KEY_VOLUMEUP
#    config = tvtime-command RIGHT
#end
#begin
#    prog = irexec
#    button = KEY_VOLUMEDOWN
#    config = tvtime-command LEFT
#end
#begin
#    prog = irexec
#    button = KEY_RIGHT
#    config = tvtime-command RIGHT
#end
#begin
#    prog = irexec
#    button = KEY_LEFT
#    config = tvtime-command LEFT
#end
begin
   prog   = irexec
   button = KEY_1
   config = tvtime-command CHANNEL_1
end
begin
   prog   = irexec
   button = KEY_2
   config = tvtime-command CHANNEL_2
end
begin
   prog   = irexec
   button = KEY_3
   config = tvtime-command CHANNEL_3
end
begin
   prog   = irexec
   button = KEY_4
   config = tvtime-command CHANNEL_4
end
begin
   prog   = irexec
   button = KEY_5
   config = tvtime-command CHANNEL_5
end
begin
   prog   = irexec
   button = KEY_6
   config = tvtime-command CHANNEL_6
end
begin
   prog   = irexec
   button = KEY_7
   config = tvtime-command CHANNEL_7
end
begin
   prog   = irexec
   button = KEY_8
   config = tvtime-command CHANNEL_8
end
begin
   prog   = irexec
   button = KEY_9
   config = tvtime-command CHANNEL_9
end
begin
   prog   = irexec
   button = KEY_0
   config = tvtime-command CHANNEL_0
end
begin
   prog = irexec
   button = KEY_ENTER
   config = tvtime-command ENTER
end
begin
   prog = irexec
   button = KEY_INFO
   config = tvtime-command ENTER
end
begin
prog= irexec
button = KEY_NEW
config = tvtime-command SCREENSHOT
mode = tvtime
end

### GNOMERADIO ###
begin
prog = irexec
button = KEY_RADIO
config = gnomeradio &
config = killall -HUP gnomeradio
#mode = gnomeradio
end

begin
    prog = gnomeradio
    button = KEY_CLEAR
    config = QUIT
    flags = mode
end

#begin
#prog = gnomeradio
#button = KEY_VOLUMEUP
#config = volume up
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_VOLUMEDOWN
#config = volume down
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_RIGHT
#config = volume up
#mode = gnomeradio
#end

#begin
#prog = gnomeradio
#button = KEY_LEFT
#config = volume down
#mode = gnomeradio
#end

begin
prog = gnomeradio
button = KEY_CHANNELUP
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_CHANNELDOWN
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_UP
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_DOWN
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_FORWARD
repeat = 0
config = preset up
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_BACK
repeat = 0
config = preset down
mode = gnomeradio
end

begin
prog = gnomeradio
button = KEY_MUTE
config = mute
mode = gnomeradio
end

###VLC###
begin
   prog = irexec
   button = KEY_VIDEO
   config = vlc &
   config = killall -HUP vlc
end
begin
prog = vlc
button = KEY_CLEAR
config = key-quit
end

begin
prog = vlc
button = KEY_SEARCH
config = key-audio-track
end

begin
prog = vlc
button = KEY_1
config = key-incr-scalefactor
end
begin
prog = vlc
button = KEY_ENTER
config = key-incr-scalefactor
end
begin
prog = vlc
button = KEY_4
config = key-decr-scalefactor
end
begin
prog = vlc
button = KEY_0
config = key-decr-scalefactor
end
begin
prog = vlc
button = KEY_2
config = key-zoom-double
end
begin
prog = vlc
button = KEY_5
config = key-zoom-original
end

begin
   prog = vlc
   button = KEY_OK
   config = key-toggle-fullscreen
end
begin
   prog = vlc
   button = KEY_ZOOM
   config = key-toggle-fullscreen
end
begin
   prog = vlc
   button = KEY_SCREEN
   config = key-toggle-fullscreen
end
begin
prog = vlc
button = KEY_CHANNELUP
config = key-next
end
begin
prog = vlc
button = KEY_CHANNELDOWN
config = key-prev
end
begin
prog = vlc
button = KEY_UP
config = key-next
end
begin
prog = vlc
button = KEY_DOWN
config = key-prev
end
#begin
# prog = vlc
# button = KEY_VOLUMEUP
# config = key-vol-up
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_VOLUMEDOWN
# config = key-vol-down
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_RIGHT
# config = key-vol-up
# repeat = 10
#end
#begin
# prog = vlc
# button = KEY_LEFT
# config = key-vol-down
# repeat = 10
#end
begin
prog = vlc
button = KEY_MUTE
config = key-vol-mute
end
begin
prog = vlc
button = KEY_RECORD
config = key-record
end
begin
prog = vlc
button = KEY_STOP
config = key-record
end
### TOTEM ###
begin
prog = irexec
button = KEY_TUNER
config = totem &
config = killall -HUP totem
mode = totem
end

begin
prog = totem
button = KEY_CLEAR
config = quit
mode = totem
end

begin
prog = totem
button = KEY_SCREEN
config = fullscreen
mode = totem
end

begin
prog = totem
button = KEY_OK
config = fullscreen
mode = totem
end
begin
prog = totem
button = KEY_ZOOM
config = fullscreen
mode = totem
end
begin
prog = totem
button = KEY_PLAY
config = play_pause
mode = totem
end

begin
prog = totem
button = KEY_PAUSE
config = play_pause
mode = totem
end

#begin
#prog = totem
#button = KEY_VOLUMEUP
#config = volume_up
#mode = totem
#end

#begin
#prog = totem
#button = KEY_VOLUMEDOWN
#config = volume_down
#mode = totem
#end

begin
prog = totem
button = KEY_MUTE
config = mute
mode = totem
end

begin
prog = totem
button = KEY_NEXT
config = next
mode = totem
end
begin
prog = totem
button = KEY_PREVIOUS
config = previous
mode = totem
end
begin
prog = totem
button = KEY_BACK
config = seek_backward
repeat = 1
end
begin
prog = totem
button = KEY_FORWARD
config = seek_forward
repeat = 1
end

###Sound###
begin
   prog = irexec
   button = KEY_VOLUMEUP
   config = amixer  -- sset Master  2%+
end
begin
   prog = irexec
   button = KEY_VOLUMEDOWN
   config = amixer  -- sset Master  2%-
end
begin
   prog = irexec
   button = KEY_RIGHT
   config = amixer  -- sset Master  2%+
end
begin
   prog = irexec
   button = KEY_LEFT
   config = amixer  -- sset Master  2%-
end
#Author: gThumb <aton77 <at> mail.ru>

Guardamos y salimos (ctrl+o y ctrl+x). Finalmente reiniciamos el equipo. Podremos hacerlo desde la Terminal con:

sudo reboot

Al reiniciar, ya será funcional nuestro control remoto. Naturalmente, conviene poner el cable de recepción de infrarrojos en algún lugar cómodo cercano al monitor, donde podamos apuntarle con facilidad con el control remoto V100.

Como corolario final, han de saber que muchas funciones convencionales asignadas en los teclados multimedia funcionarán también con su control remoto: subir y bajar volúmen, función "mute", botón de apagar el sistema, las flechas de desplazamiento, el botón de búsqueda, el botón de pantalla completa para los videos, los de salto y retroceso pausa y reproducción para nuestros MP3 y videos, el uso de Gnome Ratio, TV Time, etc.

Sin embargo, en VLC y Totem debemos asegurarnos de activar el complemento de compatibilidad para controles remotos infrarrojos para obtener la máxima funcionalidad.

Por ejemplo, en el reproductor de películas Totem vamos a Editar / Complementos y tildamos el complemento "Control Remoto por infrarrojos" para luego reiniciar el reproductor.