MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Compilando drivers de TDT (DVB) AverTV TwinStar 07ca:0825

Me he hecho con un nuevo receptor de TDT USB, el anterior (15a4:9016 Afatech Technologies, Inc. AF9015 DVB-T USB2.0 stick) me estaba dando muchos problemas y la poca señal que llega a mi habitación me hacía perder varios canales.

En este HOWTO intentaré de manera sencilla explicar como compilar una nueva versión de V4L previamente parcheada para el nuevo hardware.

1.- Reconocimiento

Lo primero es abrir el receptor (si lo piensas devolver no deberías hacerlo) para identificar los chips, en el mío se puede ver que tiene 2 chips (receptor doble) del tipo AF9035B y AF9033.

Buscando por varios sitios encuentro este hilo: http://patchwork.kernel.org/patch/61950/ que explicaque hay que aplicar dos parches al kernel y compilar, en lugar de compilar el kernel he usado la rama Mercurial del proyecto V4L.

2.- Descargamos V4L

hg clone http://linuxtv.org/hg/v4l-dvb

En el enlace que he puesto antes explica que hay que aplicar 2 parches,el primero del método B de este wiki, y el segundo elque adjunta en ese hilo. Yo he aplicado los dos (corregido los rechazos) y preparado un nuevo parche único, que puedes descargar de aquí: af9035.v4l.hg.diff

3.- Parchear

En el directorio v4l-dvb ejecutamos lo siguiente:

cat /ruta/al/parche/af9035.v4l.hg.diff | patch -p1

4.- Compilar

Teniendo nuestras cabeceras del kernel instaladas (apt-get install linux-headers-`uname -r`) ejecutamos make.

5.- Instalar

No es recomendable instalarlo encima ya que si algo no va bien tendremos que reinstalar nuestro kernel, vamos a instalarlo en el directorio update del kernel para que si queremos en un futuro podamos borrarlo y no estropear nuestro kernel. Es muy importante compilar e instalar como usuario (no como ROOT) ya que no se ejecutarán o copiarán cosas que no queramos.

make install DESTDIR=`pwd`/tmp
sudo mkdir -p /lib/modules/`uname -r`/updates
sudo cp -ra tmp/lib/modules/`uname -r`/kernel/drivers/media/ /lib/modules/`uname -r`/updates/v4l
sudo depmod -a 

(va a dar errores de copia de firmware... no problem !!!)

5.- Instalar el firmware

Descargamos este archivo: dvb-usb-af9035-01.fw y lo copiamos en /lib/firmware/

6.- Pruebas antes de conectar

$ sudo modinfo dvb-usb-af9035

filename:       /lib/modules/2.6.32-2-686/updates/v4l/dvb/dvb-usb/dvb-usb-af9035.ko
license:        GPL
description:    Afatech AF9035 driver
author:         Antti Palosaari <crope@iki.fi>
alias:          usb:v07CAp0825d*dc*dsc*dp*ic*isc*ip*  <======= here is it!!!
alias:          usb:v0CCDp0093d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A4p9035d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A4p1003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A4p1002d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A4p1001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15A4p1000d*dc*dsc*dp*ic*isc*ip*
depends:        dvb-usb,usbcore
vermagic:       2.6.32-2-686 SMP mod_unload modversions 686
parm:           debug:set debugging level (int)
parm:           adapter_nr:DVB adapter numbers (array of short)

 

7.- Conectamos

Ejecutamos en un terminal: sudo tail -f /var7log/syslog, debería salir algo como esto:

usb 1-3: new high speed USB device using ehci_hcd and address 6
usb 1-3: New USB device found, idVendor=07ca, idProduct=0825
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: A825
usb 1-3: Manufacturer: AVerMedia TECHNOLOGIES, Inc.
usb 1-3: SerialNumber: 0000000000000
usb 1-3: configuration #1 chosen from 1 choice
dvb-usb: found a 'Avermedia TwinStar' in cold state, will try to load a firmware
usb 1-3: firmware: requesting dvb-usb-af9035-01.fw
dvb-usb: downloading firmware from file 'dvb-usb-af9035-01.fw'
dvb-usb: found a 'Avermedia TwinStar' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Avermedia TwinStar)
af9033: firmware version: LINK:11.15.10.0 OFDM:5.48.10.0
DVB: registering adapter 0 frontend 0 (Afatech AF9033 DVB-T)...
mxl5007t 4-00c0: creating new instance
mxl5007t_get_chip_id: unknown rev (3f)
mxl5007t_get_chip_id: MxL5007T detected @ 4-00c0
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Avermedia TwinStar)
af9033: firmware version: LINK:11.15.10.0 OFDM:5.48.10.0
DVB: registering adapter 1 frontend 0 (Afatech AF9033 DVB-T)...
mxl5007t 4-00c1: creating new instance
mxl5007t_get_chip_id: unknown rev (3f)
mxl5007t_get_chip_id: MxL5007T detected @ 4-00c1
dvb-usb: Avermedia TwinStar successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_af9035

En /dev/dvb se crearán nuevos dispositivos:

tree /dev/dvb/
/dev/dvb/
├── adapter0
│   ├── demux0
│   ├── dvr0
│   ├── frontend0
│   └── net0
└── adapter1
    ├── demux0
    ├── dvr0
    ├── frontend0
    └── net0

Si algo no funciona, como por ejemplo nos sale esto por el syslog:

usb 1-3: new high speed USB device using ehci_hcd and address 5
usb 1-3: New USB device found, idVendor=07ca, idProduct=0825
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: A825
usb 1-3: Manufacturer: AVerMedia TECHNOLOGIES, Inc.
usb 1-3: SerialNumber: 0000000000000
usb 1-3: configuration #1 chosen from 1 choice
dvb_usb_af9035: disagrees about version of symbol dvb_usb_device_init
dvb_usb_af9035: Unknown symbol dvb_usb_device_init

... es porque teníamos cargados módulos dvb_* , tenemos que mirar los que estan cargados (lsmod) y quitarlos (rrmod), si sigue sin ir podemos probar a reiniciar.

 


Articulos relacionados:

Comentarios

  1. 24/03/2010 | 17:58

    es este modelo? http://tienda.avermedia.es/product.aspx?productid=74071
    si es asi, funciona bien? pilla los dos sintonizadores y puedes ver un canal y grabar otro?

  2. Dark_Jack Conceptronic Digital TV Receiver TDT USB
    21/04/2010 | 02:02

    Hola Mario!

    Felicidades por esta página web. La verdad es que yo estoy en una situación parecida ya que me detecta el dispositivo pero no puedo buscar canales ni hacer nada. Por lo tanto, me veo en la obligación de tener que compilar mi propio firmware para que funcione y, a pesar de que la explicación que has hecho es muy buena, soy bastante novato y me gustaría que le hechases un vistazo al siguiente link. Donde he posteado todo los problemas que han ido surgiendo y demás, hasta que encontré una página web en inglés donde proponen que la solucionen es compilar unos archivos.

    http://www.kubuntu-es.org/foro/201004/afatech-af9013-dvb-t-ayuda?page=1#comment-69177

    Muchas gracias, un saludo!

  3. TDT
    26/04/2010 | 19:30

    Muy buena la explicación, pues lo necesito para mi nueva compilación. Las pruebas previas a la conexión son fundamentales.

Comentarios cerrados