viernes, 23 de mayo de 2008

Sintonizador AVerMedia AverTV DVB-T USB 2.0 (A800) en Debian GNU / Linux

Para configurar el dispositivo se debe descargar el siguiente fichero:

http://www.linuxtv.org/download/firmware/dvb-usb-avertv-a800-02.fw

Este fichero se debe ubicar en el directorio "/usr/lib/hotplug/firmware/".

Una vez hecho esto se puede conectar el dispositivo al puerto USB y comprobar en el log del sistema (/var/log/messages) que ha sido detectado correctamente.

Para crear un fichero con la información de sintonización de los canales se puede usar el comando "scan", contenido en el paquete "dvb-utils". Por ejemplo, en Madrid se ejecutaría el siguiente comando:

scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/es-Madrid > channels.conf

El fichero "channels.conf" se puede usar con los programas Xine y MPlayer copiándolo a "$HOME/.xine" y "$HOME/.mplayer" respectivamente. Una vez hecho esto se pueden ejecutar dichos programas de la siguiente forma:

xine --no-splash -f -g -V xxmc dvb://

mplayer -vc ffmpeg12mc -vo xvmc -fs -zoom dvb://

Estas líneas de ejecución de ejemplo están optimizadas para acelerar por hardware usando una placa base Via Epia, pero exiten otras opciones para acelerar por hardware en otros sistemas.

Una vez tenemos la sintonizadora de TV funcionando, el siguiente paso es configurar el mando a distancia. Cuando se conecta la sintonizadora, el kernel reconoce automáticamente el mando a distancia como un dispositivo de entrada. Para comprobarlo se puede ejecutar el siguiente comando:

cat /proc/bus/input/devices

Con el sistema de dispositivos "udev", el sistema reconoce los dispositivos de forma que el mapeo a ficheros de los mismos no es determinista. Así, el dispositivo del mando a distancia unas veces puede estar mapeado en el fichero "/dev/input/event0" y otras veces en el fichero "/dev/input/event1".
Para que esto no sea un problema a la hora de configurar Lirc, definimos una regla del sistema "udev" que creará una alias del dispositivo en "/dev/ir". Para ello debemos crear un fichero con el nombre "099-duplicate_devs.rules" y ubicarlo en la ruta "/etc/udev/rules.d/". El contenido de este fichero será el siguiente:

KERNEL=="event*", SYSFS{name}=="IR-receiver inside an USB DVB receiver", SYMLINK+="ir"

En esta regla se puede ver que hemos hecho coincidir el valor del campo "name" con el valor del mismo campo del fichero "/proc/bus/input/devices".

Para activar la regla y que se cree el dispositivo "/dev/ir" podemos reiniciar o podemos ejecutar el siguiente comando y después desconectar y volver a conectar el dispositivo.

/etc/init.d/udev restart

El siguiente paso es comprobar que el fichero "/dev/ir" se ha creado. Si es así, se puede ejecutar "cat /dev/ir" y al pulsar los botones en el mando a distancia debe aparecer basura en la pantalla.

En el fichero de configuración "/etc/lirc/hardware.conf" deben quedar las siguientes variables de configuración como sigue:

DRIVER="dev/input"
DEVICE="/dev/ir"

El siguiente paso es obtener el fichero "/etc/lirc/lircd.conf" con la configuración de las teclas de nuestro mando. Para obtener este fichero ejecutamos el siguiente comando y seguimos las instrucciones:

irrecord -H dev/input -d /dev/ir /etc/lirc/lircd.conf

El contenido del fichero "/etc/lirc/lircd.conf" generado será el siguiente:

begin remote
name AVerMedia_DVB-T_USB2
bits 32
begin codes
SOURCE 0x10094
POWER 0x10074
1 0x10002
2 0x10003
3 0x10004
4 0x10005
5 0x10006
6 0x10007
7 0x10008
8 0x10009
9 0x1000a
0 0x1000b
DISPLAY 0x10069
CH_RTN 0x1006a
SNAPSHOT 0x10095
16_CH_PREV 0x100ca
FULLSCREEN 0x10174
VOL_DOWN 0x10072
VOL_UP 0x10073
CH_DOWN 0x10193
CH_UP 0x10192
MUTE 0x10071
AUDIO 0x10188
RECORD 0x100a7
PLAY 0x100cf
STOP 0x10080
PAUSE 0x100a4
RED 0x1009e
YELLOW 0x1009f
TELETEXT 0x10184
GREEN 0x10194
BLUE 0x10195
EPG 0x1016d
MENU 0x1008b
end codes
end remote

Por último, debemos arrancar el demonio del Lirc con el siguiente comando:

/etc/init.d/lirc restart