¿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 <lirc@bartelmus.de>
#
# 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.