Agosto
2010
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.
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?
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!
Muy buena la explicación, pues lo necesito para mi nueva compilación. Las pruebas previas a la conexión son fundamentales.