TDT con Ubuntu y Hauppage HVR900

Dicen que fue un redactor de noticias de T5 que veía muy complicado lo de DVB-T (Digital Video broadcasting - Terrestial) y que se inventó la TDT (Televisión Digital Terrestre). Un crack, hoy día casi todo el mundo sabe lo que es por ese nombre.
Ya hace tiempo que se puede ver la TV en el ordenador con ayuda de tarjetas capturadoras de TV, y por supuesto, están de moda las tarjetas DVB-T para ver la TDT. Con este artículo, muestro las capacidades multimedia de Linux, con el uso de una tarjeta de TDT sobre Ubuntu.

dvb_sexta.jpeg
En mi caso, visto el mercado y las compatibilidades con Linux mostradas en http://linuxtv.org me decidí por una tarjeta híbrida (analógica y digital) en formato USB (para poder conectar también al portátil). Se trata de una Hauppage WinTV modelo HVR-900 (lo de Win es gracioso porque aun no conoce tal sistema ni lo conocerá mientras esté en mis manos).
Para instalar se deben seguir unos pasos que relato para Ubuntu Linux, en versión Dapper:
++ Descargar firmware de la tarjeta
Necesitaremos un pequeño fichero que viene con los drivers de windows que vienen con el CD de la tarjeta, o descargarlo directamente desde la página web del fabricante. Se trata del fichero emBDA.sys que dejaremos en un directorio desde donde trabajaremos todo el proceso (~/hvr900):
$ cd
$ mkdir hvr900
$ cd hvr900/
$ wget http://supportde.terratec.net/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=994
$ unzip Cinergy_Hybrid_T_USB_XS_Drv_BDA_4.6.0.206.exe
$ cp Cinergy\ Hybrid\ T\ USB\ XS/BDA\ Driver\ 4.6.0206/emBDA.sys .
++ Instalar paquetes necesarios
De acuerdo al kernel que tengamos funcionando debemos instalar el paquete con las cabeceras para enlazar los drivers. En mi caso tengo linux-kernel-k7 e instalo linux-headers-k7. Además necesitaremos los paquetes make, gcc, libc6-dev y mercurial (comando hg que servirá para descargar la versión desde el sitio de desarrollo). También instalamos nuestro visor de TV favorito, que en mi caso es Kaffeine (basado en xine, con el paquete libxine-extracodecs para decodificar el sonido mpeg-2). A golpe de apt-get instalamos los paquetes:
$ apt-get install mercurial make gcc libc6-dev linux-headers-k7 kaffeine libxine-extracodecs
++ Descargar y compilar v4l-dvb
Descargamos la última versión estable y los compilamos para nuestro kernel. En un par de minutos, más o menos, tendremos los drivers V4L compilados y nos convertimos en superusuario para instalarlos en el sistema (nos pedirá clave):
$ hg clone http://linuxtv.org/hg/~mrechberger/v4l-dvb
$ cd v4l-dvb/
$ make
$ sudo make install
++ Convertir e instalar firmware
Ahora necesitamos echar mano del firmware que descargamos en el punto 1 y que deberíamos tener en el directorio ~/hvr900. Hay que transformarlo para que nuestro sistema hotplug lo reconozca e instalarlo en el directorio correcto para que lo cargue:
$ cd v4l_experimental/xc3028/
$ gcc convert.c -o convert
$ ./convert ~/hvr900/emBDA.sys > xceive_xc_3028.fw
$ sudo cp xceive_xc_3028.fw /lib/hotplug/firmware/
++ Cargar módulos
Ya estamos listos para conectar la tarjeta al USB 2.0 y cargar los módulos, pero antes de hacerlo vamos a preparar el sistema para que lo haga siempre de forma automática, creado el fichero 'hvr900' en el directorio /etc/modprobe.d:
$ sudo vi /etc/modprobe.d/hvr900
...
# Hauppage WinTV HVR 900 hybrid TV stick
# modo TDT
options em28xx device_mode=1
# dependencia de módulos
alias hvr900 em2880_dvb
...
$ sudo echo "hvr900" >> /etc/modules
$ sudo /etc/init.d/module-init-tools restart
Ahora conecta la WinTV-HVR 900 y examina el log porque debería poner al menos este estas líneas indicando que todo fue bien:
$ dmesg
...
em28xx #0: V4L2 VBI device registered as /dev/vbi0
em28xx #0: V4L2 device registered as /dev/video0
...
DVB: registering new adapter (em2880 DVB-T).
DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
em28xx #0: Found Hauppauge WinTV HVR 900
...
++ Aplicación para ver la TV
dvb_kaffeine.jpeg
Vamos a usar Kaffeine para ver la TV digital (Aplicaciones > Sonido y vídeo > Kaffeine). Al arrancar, debería salir ya la configuración de DVB (Digital Video Broadcasting) con un selector de configuraciones para paises y ciudades. Selecciona la tuya. Si no aparece, puedes probar con algunas pero asegúrate que ves todos los canales que se emiten en TDT.
Para crear tu propia configuración, puedes ayudarte de la información proporcionada en http://www.tdt1.com para tu provincia. Para Vigo, me creé este teniendo en cuenta los canales donde se emiten, incluidos los indicados como alternativos dependiendo del repetidor (no olvidemos que tenemos una USB conectada al portátil y podría tener que reconfigurar los canales según la zona de la provincia). Por ejemplo, este es mi fichero 'es-Vigo' que pongo en ~/.kde/share/apps/kaffeine/dvb-t/ :
#
# Canales para Vigo a 15 may 2006
#
# Fuente: TDT1 - http://www.tdt1.com/
#
T 658000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 44 (alternativo)
T 666000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 45 (44,55): Cuatro, CNN+, 40 Latino, La Sexta
T 690000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 48 (44): Antena 3, Antena Neox, Antena Nova, La Sexta 2
T 746000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 55 (alternativo)
T 770000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 58: TVG, Galicia TV América
T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: La Primera, La 2, Canal 24h, Clan/TVE 50 años
T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
Lo único que hay que hacer para construir este fichero para TDT es tomar este modelo y adaptar el segundo campo que se corresponde con la frecuencia en HZ para cada canal sabiendo que están separados por 8 MHz.
Si ya lo tienes listo, arranca Kaffeine y selecciona el nuevo fichero en DVB > Configure DVB:
Vamos a ver que cazamos en la opción DVB > Channels:
dvb_scan.jpeg
En la parte derecha tenemos lo que recibimos (en mi caso 22 TV y 9 radios) que voy añadiendo una a una en el orden que quiero tenerlas ordenadas por número de canal (muy útil para ir a la Sexta con el 6 del teclado numérico, etc).
¿Aun no estás viendo la TV? Pues Kaffeine tiene hasta un programador para grabar a la hora que tú le digas. Guárdalo en formato MPEG_PS y podrás verlo directamente en tu reproductor de DVD casero. A disfrutar :-)
Página del producto:
http://www.hauppauge.co.uk/pages/products/data_hvr900.html
Driver Em2880 en V4Lwiki:
http://www.linuxtv.org/v4lwiki/index.php/Em2880
FAQ sobre Em2880:
http://linuxtv.org/v4lwiki/index.php/Talk:Em2880

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hola gracias por el tutorial, yo tengo el wintv 900 y trate de instalarlo en ubuntu dapper actualizado pero pude ver que el directorio hotplug no existe e y copie el archivo convertido a lib/firmware pero no funciona, si puedes ayudarme por favor te agradezco de antemano. Luis

Fíjate en el punto "Convertir e instalar firmware" especialmente en el directorio donde lo pones. Descarga también la versión de la web de terratec que está probada...

Recuerdo que me dio algún problema que otro este paso y era porque en Dapper la ruta del hotplug no es la habitual como se dice en muchísimos sitios resultado de googlear.

oye muchas gracias,
tengo una pinnacle hybrid pro stick usb2 dvb-t y estoy seguro que con este manual voy a poder darle soporte para configurarla en ubuntu.
La gente de pinnacle jamas creara un driver para linux, ke gentuza......

en fin muchas gracias.

podrias decirme como hago para configurarlo en feisty o dapper muchas gracias.
lu-cr@hotmail.com

Este mini-como está desarrollado en Dapper. En http://caligari.treboada.net/ubuntu_tdt tienes la actualización de este artículo para la última de Ubuntu :-)

El repositorio mercurial para v4l-dvb ha cambiado de dirección y ahora está en http://mcentral.de/hg/~mrec/v4l-dvb-experimental Por lo tanto, la primera orden del punto "Descargar y compilar v4l-dvb" queda:
$ hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental

he seguido tus instrucciones, pero he tenido algunos problemas. Algunos los he resuelto, otros no.Me pedia el firmware xc3028_init0.ic2.fw, que la he encontrado en mcentral.de/firmware. Pero los mensajes

DVB: registering new adapter (em2880 DVB-T).
DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)

no me salen. Esta es la salida de dmesg que tengo (editado...):

[70220.262441] ANALOG TV REQUEST

Que falla?

Debes poner la tarjeta en modo TDT. ¿Has puesto la configuración del módulo con la opción "options em28xx device_mode=1"?

acabo de ver el tutorial y tengo varios problemas al seguirlo, tengo un WINTV-NOVATD, segun el XP me dice que tambien es un hvr900, por lo que me he puesto a seguir el tuto pero al final no me reconoce correctamente al realizar el dmesg, me aparece esto :

154.701509] usb 2-2: new high speed USB device using ehci_hcd and address 3
[ 154.837383] usb 2-2: configuration #1 chosen from 1 choice
[ 155.109612] dib0700: loaded with support for 5 different device-types
[ 155.110765] dvb-usb: found a 'Hauppauge Nova-TD Stick/Elgato Eye-TV Diversity' in cold state, will try to load a firmware
[ 155.155425] dvb-usb: did not find the firmware file. (dvb-usb-dib0700-1.10.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems. (-2)
[ 155.155502] usbcore: registered new interface driver dvb_usb_dib0700

Debes instalar el firmware que permite controlar el sintonizador de tu tarjeta. En la actualización del artículo tienes el enlace para descargar la última versión del paquete de firmwares y quizás esté el necesario para tu tarjeta...

Hola a ver si me podrias ayudar, ya que estoy un poco desdesperado, tengo instalado el Ubuntu 7.10, en una portatila Dell inspirion 1520, intento ver la tv con una usb Hvr900, y lo he intentado varias veces siguiendo este manual y otro de otra pagina, y no hay manera, cuando arranco el Kaffeine la ventanita de dvb settings no me parece...no se que estoy haciendo mal. Solo me aparce un error cuando escribo:"apt-get install mercurial make gcc libc6-dev linux-headers-k7 kaffeine libxine-extracodec", me dice que no puede acceder a libxine-extracodec, que lo substituye con ffmpeg..bueno pero esto es solo para el sonido ¿no?...cuando ejecuto dmesg me dice que encuenta hvr900 rev. 1.2 y algo asi como:

"945.828000] em28xx_audio: disagrees about version of symbol snd_pcm_new
[ 945.828000] em28xx_audio: Unknown symbol snd_pcm_new
[ 945.828000] em28xx_audio: disagrees about version of symbol snd_card_register
[ 945.828000] em28xx_audio: Unknown symbol snd_card_register
[ 945.832000] em28xx_audio: disagrees about version of symbol snd_card_free
[ 945.832000] em28xx_audio: Unknown symbol snd_card_free
[ 945.832000] em28xx_audio: disagrees about version of symbol snd_card_new
[ 945.832000] em28xx_audio: Unknown symbol snd_card_new
[ 945.832000] em28xx_audio: disagrees about version of symbol snd_pcm_lib_ioctl
[ 945.832000] em28xx_audio: Unknown symbol snd_pcm_lib_ioctl
[ 945.832000] em28xx_audio: disagrees about version of symbol snd_pcm_set_ops
[ 945.832000] em28xx_audio: Unknown symbol snd_pcm_set_ops
[ 945.832000 ] em28xx_audio: disagrees about version of symbol snd_pcm_hw_constraint_integer
[ 945.832000] em28xx_audio: Unknown symbol snd_pcm_hw_constraint_integer
[ 945.832000] em28xx_audio: disagrees about version of symbol snd_pcm_period_elapsed
[ 945.832000] em28xx_audio: Unknown symbol snd_pcm_period_elapsed"

Gracias por vuestra paciencia..

Parece que hay algún problema con V4L y el módulo de sonido. Prueba a instalarla según las instrucciones y módulos indicados en la actualización del artículo: http://caligari.treboada.net/ubuntu_tdt

muchas gracias por tu manual. pero tengo un problema, me podrias consegir un channel.conf de lugo o de ourense ya echo?

Para Lugo (quitado de la última versión de kaffeine):

# DVB-T Lugo (Centro emisor Paramo) - Rev. 1.2 - 11.12.05
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVE 1, TVE 2, 24H TVE, CLAN/50 TVE, RNE1, RNE CLASICA, RNE3
T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVG, GALICIA TV AMERICA, RADIO GALEGA, R.GALEGA MUSICA, SON GALICIA RADIO, PROBAS RETEGAL
T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELEDEPORTE, VEO TV, VEO 2, NET TV
T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CUATRO, CNN+, 40 LATINO, LA SEXTA 1
T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELECINCO, T5 ESTRELLAS, T5 SPORT, FLYMUSIC
T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2

Para Ourense lo puedes adaptar viendo las frecuencias en http://www.tdt1.com. Para ambos casos puedes intentar la opción "auto" de la última versión de kaffeine que hace un barrido por todas las frecuencias en la configuración de canales...

Enviar un comentario nuevo

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <b> <img>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato