Sistema empleado:
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
AVerMedia TV Hybrid+FM A16AR
Maxtor (250 GB, 7200 RPM,SATA-II)
Ubuntu 8.04- 64 bits Kernel 2.6.24-18-generic
1ª parte, respecto a la tarjeta.Lo primero decir que en Ubuntu 8.04 ya se le da soporte, con lo que no hay que descargarse ningún tipo de drivers.Y que podéis seguir el tutorial de redbuo en :
http://www.ubuntu-es.org/index.php?q=node/648731º
Para comprobar que modelo es exactamente, pues Avermedia la monta de varias maneras , en concreto hay dos modelos la A16AR:
http://www.avermedia.com/docs/productimage/avertvHybridPCI_b.jpghttp://www.avermedia.com/cgi-bin/products_digitvtuner_hybridPCI.asp?show=1y la A16D:
http://www.avermedia.com/docs/productimage/AVerTV-Hybrid+FM-PCI-b.jpghttp://www.avermedia.com/cgi-bin/products_digitvtuner_hybridPCI(A16D).asp?show=1En el paso que se recomienda:
dmesg | grep saa7134
Podemos hacer:
dmesg | grep saa713
Ya que la salida que nos dá no es igual, debido a que hay varios módulos implicados y en concreto el que nos va a decir el modelo es el saa7133, en mi caso en la linea :
[ 40.132971] saa7133[0]: subsystem: 1461:2c00, board: AVerMedia TV Hybrid A16AR [card=99,insmod option]
2º
Para cargar los módulos en los siguientes arranques, aparte de añadir en /etc/modules
sudo gedit /etc/modules
estas lineas:
saa7134 card=99
saa7134_alsa
saa7134-dvb
he creado el fichero /etc/modprobe.d/saa7134
sudo gedit etc/modprobe.d/saa7134
Con estas lineas:
alias char-major-81 videodev
alias char-major-81-0 saa7134
options saa7134 i2c_scan=1 alsa=1 card=99
install saa7134 /sbin/modprobe tuner-core; /sbin/modprobe --ignore-install saa7134;
/sbin/modprobe saa7134-dvb; /sbin/modprobe saa7134-alsa
3º
En versiones de Ubuntu de 64 bits el paquete libxine-extracodecs es sustituido por libxine1-ffmpeg.
Y los codecs win32 por win64, para que luego funcionen los programas como Kaffeine y Gxine.
Otros comandos útiles para obtener información adicional de la tarjeta y otro hardware:
sudo lspci -vvv
sudo lsusb -v
2ª parte, respecto al mando rmfp.Podeis ver cual es:
http://www.avermedia.com/docs/productimage/AVerTV-Hybrid+FM-PCI-Box.jpghttp://lirc.sourceforge.net/remotes/avermedia/RM-FP.jpgPaquetes necesarios:
lirc
inputlirc
lirc-x
lirc-modules-source (Opcional, si lo que quieres es bajar las fuentes y compilarlo)
Antes de instalar lirc deberemos saber en que fichero de dispositivo corre nuestra tarjeta:
cat /proc/bus/input/devices
buscamos la entrada para nuestra tarjeta, y en la línea H vemos event"n"
I: Bus=0001 Vendor=1461 Product=2c00 Version=0001
N: Name="saa7134 IR (AVerMedia TV Hybrid"
P: Phys=pci-0000:05:01.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:05:01.0/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=100003
B: KEY=40fc310 8214000000000000 0 2048000 18000004001 9e000000000000 ffc
En mi caso es /dev/input/event5.
Esto puede cambiar en cada maquina por eso hay que comprobarlo antes, en la instalación de lirc se nos pedirá el dato, aunque siempre se puede cambiar después de la instalación, en /etc/lirc/hardware.conf
El lircd tiene el driver dev/input que lee los eventos de /dev/input/event"n".
Podemos ver de que drivers disponemos con
lircd --driver=help
Ahora podemos instalar lirc:
sudo apt-get install inputlirc lirc lirc-x
En la instalación se nos pedirá que elijamos el hardware, para configurar el archivo hardware.conf
En nuestro caso lirc nos ofrece tres tarjetas pero ninguna de ellas es la nuestra, aquí alguno se va a reir...

, elegimos "AverMedia TV card (TVCapture98 TVPhone98) (card 13/41)".
Esto nos crea un archivo NO VALIDO para nuestro caso que luego MODIFICAREMOS:
/usr/share/lirc/remotes/avermedia/lircd.conf.avermedia98
Existen varios ficheros lircd.conf en la red aunque no es seguro que nos sean útiles.
Lirc nos ofrece en sourceforce una configuración de teclas para este mando
http://lirc.sourceforge.net/remotes/avermedia/Pero al ser para la AVerMedia DVB-T USB2.0 (A800) no nos funcionará tampoco, con lo que tendremos que recurrir a la utilidad irrecord, ésta lo que hace básicamente es crear un fichero en /home/usuario conteniendo los nombres de las teclas que les asignemos y su valor para que pueda ser leído por el sistema. Veamos su uso.
sudo irrecord -H dev/input -d /dev/input/event5 rmfp
Donde rmfp es el nombre de fichero generado en /home/usuario
Press RETURN to continue.
Hold down an arbitrary button.
#(Aquí tenemos que presionar en menos de 10 sg., sino el programa se cierra, cualquier botón ininterrumpidamente)
.....................................................................Found gap length: 132668
Now enter the names for the buttons.
Please enter the name for the next button (press to finish recording)
power #(Damos intro y seguidamente presionamos el boton power de nuestro mando)
Please enter the name for the next button (press to finish recording)
source
Please enter the name for the next button (press to finish recording)
Así con las 34 teclas del mando.
Al llegar a la ultima presionamos intro sin escribir ningún nombre para la tecla.
A continuación nos pedirá que pulsemos repetidas veces otra tecla cualquiera para finalizar la grabación. Cuidado con no tardar más de 10 sg. y no elegir dar a la tecla "power", por que nuestro mando no está aun configurado y es posible que nos lance la pantalla de salida de Ubuntu, con lo que perderíamos el trabajo hecho en irrecord.
..............................
Invalid toggle bit.
Successfully written config file.
Para más información en
http://linux.die.net/man/1/irrecordLirc en realidad utiliza un redireccionamiento desde /etc/lirc/lircd.conf, que es donde realmente busca su configuración, con "include /usr/share/lirc/remotes/avermedia/lircd.conf.avermedia98", directorio donde se almacenan las configuraciones predeterminadas de varios marcas y mandos.
Ahora hay que modificar el contenido de /usr/share/lirc/remotes/avermedia/lircd.conf.avermedia98 ,sin cambiar el nombre del archivo, por el que irrecord creó en /home/usuario.
sudo gedit /usr/share/lirc/remotes/avermedia/lircd.conf.avermedia98
En mi caso devolvió este contenido:
# Please make this file available to others
# by sending it to
#
# this config file was automatically generated
# using lirc-0.8.3pre1(devinput) on Sat Jun 7 11:13:17 2008
#
# contributed by
#
# brand: AVerMedia
# model no. of remote control: RM-FP
# devices being controlled by this remote:
# AVerMedia TV Hybrid A16AR
begin remote
name rmfp
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x8001
gap 135996
toggle_bit_mask 0x80010003
begin codes
power 0x0074
source 0x0179
1 0x0002
2 0x0003
3 0x0004
4 0x0005
5 0x0006
6 0x0007
7 0x0008
8 0x0009
9 0x000A
0 0x000B
display 0x0172
snapshot 0x019A
chrtn 0x00A8
chprev 0x00D2
chup 0x0192
chdown 0x0193
voldown 0x0072
volup 0x0073
fullscreen 0x0174
mute 0x0071
audio 0x0188
record 0x00A7
play 0x00CF
stop 0x0080
pause 0x0077
rewind 0x018E
forward 0x0190
teletext 0x0184
last 0x018F
next 0x0191
epg 0x0189
menu 0x00D9
end codes
end remote
Despues comprobamos que en /etc/lirc/hardware.conf concuerde la linea
REMOTE_DEVICE="/dev/input/event5"
con la salida de cat /proc/bus/input/devices
y que en la linea
REMOTE_LIRCD_CONF="avermedia/lircd.conf.avermedia98"
sea correcta la ruta.
Observareis que en el archivo se hace refencia a "AverMedia TV card (TVCapture98 TVPhone98) (card 13/41)", no importa, cumple su cometido, es más, no se debe de cambiar porque es la base del truco.
Esto es por no haber configurado lirc desde cero, hemos aprovechado la configuración de lirc para esa tarjeta y modificado su lircd.conf. Seguro que se puede hacer desde cero, pero mis intentos han sido infructuosos, si alguien que lo consiguió se anima a explicarlo......
Ahora arrancar el demonio lircd:
sudo /etc/init.d/lirc start
Para pararlo, si es necesario:
sudo /etc/init.d/lirc stop
Para comprobar que funciona bien utilizamos irw, pulsando las teclas del mando una vez lanzado
sudo irw
0000000080010179 00 source rmfp
0000000080010074 00 power rmfp
0000000080010005 00 4 rmfp
0000000080010189 00 epg rmfp
00000000800100d9 00 menu rmfp
Para pararlo Ctr+c
Ya tenemos preparado el sistema para hacer uso del mando a distancia.
Solo nos queda por definir que aplicaciones usarán el mando.
Llegados aquí podemos elegir dos métodos, trabajar con los demonios irexec e irxevent o con inputlirc.
1º Trabajo con irexec e irxeventEs necesario la creación de un fichero de configuración en /home/usuario
gedit /home/usuario/.lircrc
en el que vamos a especificar las acciones que realizan los botones en los diferentes programas, se pueden realizar con el mando muy diversas acciones pero nos centraremos en el programa Kaffeine para ver la TDT, Mythtv aún no lo he probado.
Como ejemplo de un diferente uso podríamos lanzar otra aplicación con el siguiente código:
begin
button = Power
prog = irexec
repeat = 0
config = /bin/dmesg
end
Obteniendo la salida de dmesg.
Contenido de .lircrc para Kaffeine:
#Kaffeine
begin
prog = irexec
button = power
config = dcop kaffeine KaffeineIface quit
end
begin
prog = irexec
button = source
config = kaffeine
end
begin
prog = irexec
button = play
config = dcop kaffeine KaffeineIface play
end
begin
prog = irexec
button = pause
config = dcop kaffeine KaffeineIface pause
end
begin
prog = irexec
button = stop
config = dcop kaffeine KaffeineIface stop
end
begin
prog = irexec
button = forward
config = dcop kaffeine KaffeineIface posPlus
end
begin
prog = irexec
button = rewind
config = dcop kaffeine KaffeineIface posMinus
end
begin
prog = irexec
button = next
config = dcop kaffeine KaffeineIface next
end
begin
prog = irexec
button = last
config = dcop kaffeine KaffeineIface previous
end
begin
prog = irexec
button = chup
config = dcop kaffeine KaffeineIface next
end
begin
prog = irexec
button = chdown
config = dcop kaffeine KaffeineIface previous
end
begin
prog = irexec
button = volup
config = dcop kaffeine KaffeineIface volUp
end
begin
prog = irexec
button = mute
config = dcop kaffeine KaffeineIface mute
end
begin
prog = irexec
button = voldown
config = dcop kaffeine KaffeineIface volDown
end
begin
prog = irexec
button = fullscreen
config = dcop kaffeine KaffeineIface fullscreen
end
begin
prog = irexec
button = display
config = dcop kaffeine KaffeineIface zoomIn
end
begin
prog = irexec
button = snapshot
config = dcop kaffeine KaffeineIface zoomOut
end
begin
prog = irexec
button = 1
config = dcop kaffeine KaffeineIface setNumber 1
repeat = 0
end
begin
prog = irexec
button = 2
config = dcop kaffeine KaffeineIface setNumber 2
repeat = 0
end
begin
prog = irexec
button = 3
config = dcop kaffeine KaffeineIface setNumber 3
repeat = 0
end
begin
prog = irexec
button = 4
config = dcop kaffeine KaffeineIface setNumber 4
repeat = 0
end
begin
prog = irexec
button = 5
config = dcop kaffeine KaffeineIface setNumber 5
repeat = 0
end
begin
prog = irexec
button = 6
config = dcop kaffeine KaffeineIface setNumber 6
repeat = 0
end
begin
prog = irexec
button = 7
config = dcop kaffeine KaffeineIface setNumber 7
repeat = 0
end
begin
prog = irexec
button = 8
config = dcop kaffeine KaffeineIface setNumber 8
repeat = 0
end
begin
prog = irexec
button = 9
config = dcop kaffeine KaffeineIface setNumber 9
repeat = 0
end
begin
prog = irexec
button = 0
config = dcop kaffeine KaffeineIface setNumber 0
repeat = 0
end
De esto solo decir que el valor del parámetro "repeat" se puede variar para que se repita la acción mientras se pulsa el boton, util para el volumen.
Para saber qué llamadas DCOP admite Kaffeine no hay más que abrirlo y luego ejecutar "kdcop" en una terminal. En la lista desplegable buscar kaffeine > kaffeineIface, hay unas cuarenta.
Para que los demonios se carguen en el arranque creamos dos entradas en Sistema> Preferencias> Sesiones> Añadir le damos un nombre y en el campo orden ponemos
irexec -d
e
irxevent -d
Reiniciamos y al dar al boton power del mando se debería lanzar Kaffeine y poder usarlo.
2º Trabajo con inputlircEl mismo archivo .lircrc, tendremos que copiarlo en /etc/lirc/lircrc
Para cargar el demonio en el arranque editamos el fichero /etc/rc.local
sudo gedit /etc/rc.local
y añadimos esta linea:
/etc/init.d/inputlirc start
Se cargará en el próximo reinicio. Si queremos ejecutarlo, ahora mismo, solo tendremos que ponerlo en una consola con sudo.
En el caso de que lircinput no funcionase con el contenido de este .lircrc se puede probar con este otro tipo:
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_MENU
repeat = 1
config = dcop kaffeine KaffeineIface stop
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
Se pueden tener los tres demonios activos para diferentes usos.
Notas:
Aveces, en algún reinicio, el sistema cambia en que fichero de dispositivo corre la tarjeta co lo que se desconfigura la conexión entre el mando y lirc, no he encontrado ninguna solución salvo ejecutar de nuevo cat /proc/bus/input/devices y cambiarlo en el /etc/lirc/hardware.conf y reiniciar los demonios.
Algunas teclas del mando no son reconocidas por Kaffeine, quizá sea cuestión de afinar un poco las llamadas a dcop.
Y yastá.
Ni que decir tiene que, aparte de un truco, esto puede ser una discursión

Saludos.