TDT en mi eeePC 701

Hace bien poco que conseguí uno de los primeros ASUS eeePC que llegaron a España, no pude resistirme a la expectación que había despertado entre los «bricoladores» de internet este pequeño aparato.

Dado que mi habilidad con el soldador todavía está por explotar, me decidí a hacer algunos experimentos de software. En esta entrada os contaré como hacer funcionar la tarjeta USB de TDT que yo tengo (la HVR-900). Para ello me basaré en mi antigua entrada (TDT en mi ubuntu) ya que el s.o. que lleva el eeePC es un xandros modificado (una versión de debian).

eeePC+HVR-900
En esta imagen podemos ver cómo se ve la tele y como se enchufa fácilmente a nuestro pequeño aparato (parece desproporcionado el tamaño del sintonizador con respecto al portatil).

Primero sacamos el terminal (ctrl-alt-t). Siguiendo las instrucciones de mi anterior guía:

Pasos:

1. Crea el directorio hvr900 en tu home (es solo una recomendación)

mkdir hvr900

2. Copia el archivo del firmware (emBDA.sys) que podeis encontrar en el cd de los drivers de windows bajo el directorio hvr900 (ahi os dejo donde bajaros el de mi sintonizadora)
wget http://www.wii.org.es/uploads/File/emBDA.sys

3. Bajate el archivo de firmwares de v4l-dvb:
wget http://mcentral.de/firmware/firmware.tgz

4. Ahora hay que bajarse ciertos paquetes para que puedas utilizar el repositorio de v4l-bvd y compilar el kernel

sudo apt-get install build-essential mercurial dvb-utils

NOTA Este paso es bastante distinto en eeePC, ya que no tenemos en los repositorios disponibles los paquetes de las cabeceras del kernel. Hay que bajarse el paquete .deb correspondiente de un repositorio de xandros:

linux-headers-2.6.21.4-eeepc_5_i386.deb

E instalarlo:

sudo dpkg --install linux-headers-2.6.21.4-eeepc_5_i386.deb

Con esto no basta, ya que no crea todos los enlaces necesarios y hay que hacer:

sudo ln -s /usr/src/linux-headers-2.6.21.4-eeepc/ /lib/modules/2.6.21.4-eeepc/build

5. Bajate el directorio v4l-dvb

hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental/

Esto es nuevo:

No se la razón por la que han incluido módulos dvb propios en el kernel original, el caso es que si los dejamos no funcionará al cargar el módulo, por lo que hay que eliminar esos módulos (se encuentran en /lib/modules/2.6.21.4-eeepc), yo sacaría una copia de seguridad por si las moscas.

sudo rm -r /lib/modules/2.6.21.4-eeepc/v4ldvb

6. Compila e instala

cd ~/hvr900/v4l-dvb-experimental
make && sudo make install

7. Convertir e instalar el firmware (y los firmwares por defecto)

cd v4l_experimental/xc3028/
gcc convert.c -o convert
./convert ~/hvr900/emBDA.sys > xceive_xc_3028.fw
sudo cp xceive_xc_3028.fw /lib/firmware
cd /lib/firmware
sudo tar xzvf ~/hvr900/firmware.tgz

8. Actualiza los archivos de módulos para que se cargue automáticamente

sudo vi /etc/modprobe.d/hvr900

—- Introducir este texto —

# Hauppage WinTV HVR 900 hybrid TV stick
# modo TDT
options em28xx device_mode=1
# dependencia de módulos
alias hvr900 em2880_dvb

9. Actualizar el archivo de modulos par que lo cargue en el arranque…

sudo su -
echo "hvr900" >> /etc/modules
/etc/init.d/module-init-tools restart

Ahora ya está todo listo para enchufar la sintonizadora… Si todo ha ido bien en el log del sistema pondrá algo así como:

$ 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
...

Como el kaffeine no conseguí instalarlo desde los repositorios de xandros por algún problema con las kdelibs, lo que he hecho es utilizar el mplayer para ver la tele. Lo que teneis que hacer es copiar el channels.conf al directorio /root/.mplayer (aqui podeis ver como) y ejecutar:

sudo mplayer dvb://Telecinco

Nota: lo hago con sudo porque por algún problema de permisos no me da acceso a la sintonizadora desde el usuario normal, pero seguro que lo termino arreglando..

Y a disfrutar!

Actualización
Aunque me he instalado el ubuntu-eee y ahora no se parece en casi nada a lo que era el eee-PC, lo que si he conseguido es hacer que la webcam integrada funcione junto con la sintonizadora. Las instrucciones las he encontrado aqui. y os las resumo:

mkdir uvc
cd uvc
svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk
cd trunk
make
cp ~/hvr900/v4l-dvb-experimental/v4l/Module.symvers .
rm uvcvideo.ko
sudo make install

Para probar simplemente cargamos el módulo y probamos con el skype:
sudo insmod uvcvideo.ko

Si después de arrancar no nos funciona la cámara, seguramente es porque hay otro uvcvideo.ko en el directorio de los módulos (bajo /lib/modules/). Basta con buscarlo y sustituirlo por la versión correcta para que todo vuelva a funcionar.