Domingo Abril 28 , 2024
Text Size
   

Drivers rtl2831u Zaapa TDT USB (ZT-DVBTSTUSB) en Ubuntu 9.10 (Karmic)

manuales - Linux

Quien se haya pasado a ubuntu karmic o haya actualizado a un kernel superior a la versión 2.6.28-11 habrá comprobado que siguiendo el post donde explicaba la instalación de estos drivers en la compilación habrá tenido problemas. A continuación voy a explicar la forma de instalar estos drivers en cualquier kernel utilizando ubuntu, lo que vamos a hacer es compilar todo el kernel.

fuente -> http://metalzonix.wordpress.com/2009/11/05/instalar-drivers-rtl2831u-zt-dvbtstusb-compilando-el-kernel-en-ubuntu-karmic/

### EDITADO - Gracias a jimmykruspe por su comentario :) ###


Por un lado necesitamos el codigo fuente del kernel parcheado por ubuntu y por otro los drivers que vienen en el cd de la tarjeta DVB

Para descargar el codigo fuente del kernel

& sudo apt-get install linux-source

Tambien necesitaremos descargar otros paquetes, por ejemplo la libreria ncurses para modificar el kernel y a el paquete kernel-package

& sudo apt-get install libncurses5-dev kernel-package build-essential


Ahora vamos con los drivers. Podemos descargarlos de aquí o bien los cogemos de nuestro cd  y en los dos casos copiamos la carpeta 080821_rtd2831u_linux_driver en el escritorio. Ahora viene algo muy importante, si son los drivers del cd tenemos que hacerle una modificación, es muy importante este paso,  sino no funcionarán. Si los drivers son los descargados, obviamos este paso. La modificación que hay que hacer es la siguiente:

* Entramos en la carpeta 080821_rtd2831u_linux_driver y abrimos el archivo tuner_base_2831u.h
* En la línea 16 del archivo donde pone #include “foundation.h” debemos cambiarlo #include “foundation_2831u.h”
* Guardamos los cambios y listo.

Bien, ahora tenemos que copiar los drivers en el codigo fuente del kernel que hemos descargado para compilarlo, para ello en terminal escribimos:

& cd /usr/src

En mi caso el codigo fuente descargado correspondia con la versión 2.6.31, para ver que versión hemos descargado, ls, mostrará el archivo .tar.bz2 que tenemos.

& sudo tar xvjf linux-source-2.6.31.tar.bz2

Para crear un enlace simbólico al kernel

& sudo ln -s linux-source-2.6.31 linux& cd /home/nombre-usuario/Escritorio/080821_rtd2831u_linux_driver

Copia los dirvers en el kernel

& sudo cp -f *.* /usr/src/linux/drivers/media/dvb/dvb-usb

Abrimos el Makefile y el Kconfig que se encuentran en el directorio /usr/src/linux/drivers/media/dvb/dvb-usb.

& sudo gedit /usr/src/linux/drivers/media/dvb/dvb-usb/Makefile

Y añadimos las siguientes lineas:

dvb-usb-rtl2831u-objs = math_mpi.o foundation_2831u.o demod_rtl2830.o tuner_demod_io.o tuner_mxl5005s.o mt_spuravoid.o mt_userdef.o mt2060_basic.o tuner_ah.o MT2060Tuner.o rtd2830.o rtd2830u.o
obj-$(CONFIG_DVB_USB_RTL2831U) += dvb-usb-rtl2831u.o

Guardamos y hacemos lo mismo con el kconfig

& sudo gedit /usr/src/linux/drivers/media/dvb/dvb-usb/Kconfig

config DVB_USB_RTL2831U
tristate "Realtek RTL2831U DVB-T USB2.0 support"
depends on DVB_USB
help
Realtek RTL2831U DVB-T driver.

Ahora vamos a configurar el kernel para que compile los drivers.

& cd /usr/src/linux

& sudo make menuconfig


Y se nos abrerá un menú, tenemos que ir a:

Device Drivers  —> Multimedia support  —> DVB/ATSC adapters —> Realtek RTL2831U DVB-T USB2.0 support  y pulsamos M para habilitar este modulo, guardamos los cambios y cerramos el menú.

Ya solo no queda compilar el kernel e instalarlo. En el mismo directorio /usr/src/linux/

& sudo make-kpkg --initrd kernel_image kernel_headers

La compilación va a tardar un buen rato, asi que te puedes armar de paciencia y esperar. Cuando finalice vamos a la carpeta /usr/src/ ya sea mediante la terminal o de forma gráfica y ejecutamos los dos .deb para instalar el nuevo kernel. Mediante terminal sería así:

& dpkg -i kernel-image-2.6.31.4_10.00.Custom_amd64.deb

& dpkg -i kernel-headers-2.6.31.4_10.00.Custom_amd64.deb

Si queremos podemos guardarnos los dos paquetes .deb para instalarlos en otra ocasión.

Espero que os sea de gran ayuda.

Más información sobre el compilado del Kernel aquí

Comentarios  

 
+1 # 05-04-2010 19:38
Creo que hay una errata cuando haces:

& make-kpkg --initrd kernel_image kernel_headers

en mi caso tengo que ser superusuario:

& sudo make-kpkg --initrd kernel_image kernel_headers


Y en

& cd /usr/src/linux& sudo make menuconfig

he tenido que hacer antes:
& cd
porque estaba en otra carpeta de un paso anterior..

por lo demás todo perfecto, muchas gracias por tu gran aportación, estoy compilándolo (tarda mucho)
Saludos.
 
 
0 # Dr. Arroyo 06-04-2010 08:53
Muchísimas gracias por tu apunte!

A veces voy tan rápido... la finalidad de la web es mas que nada, que cuando estemos trasteando y encontremos una solución en Google, dejarla más o menos plasmada, para que si posteriormente, en un futuro tenemos que volver a hacerlo, podamos tirar de "guiaburros", pero a veces, se nos escapen detalles. Para eso están los comentarios!! :)

En mi caso lo tengo funcionando desde que colgué el artículo y va de maravilla, otra cosa será si actualizamos el kernel... :(

Me tardo unas cuantas horas en compilar...

Lo dicho, gracias!!!
 
 
0 # 18-09-2010 20:37
estoy atascado aquí me sale esto:

puppo@puppo-desktop:~$ sudo gedit /usr/src/linux/drivers/media/dvb/dvb-usb/Kconfig
[sudo] password for puppo:
puppo@puppo-desktop:~$ cd /usr/src/linux
puppo@puppo-desktop:/usr/src/linux$ sudo make menuconfig
scripts/kconfig/mconf arch/x86/Kconfig
drivers/media/dvb/dvb-usb/Kconfig:325: unknown option "DVB_USB_RTL2831U"
drivers/media/dvb/dvb-usb/Kconfig:326:warning: prompt redefined
make[1]: *** [menuconfig] Error 1
make: *** [menuconfig] Error 2
puppo@puppo-desktop:/usr/src/linux$

soy novato así que no sé que hacer con el error que me sale
 
 
0 # Dr. Arroyo 19-09-2010 13:11
intenta seguir los pasos desde el principio, me da que alguno te lo has saltado, e intenta siempre usar rutas absolutas, esto quiere decir que aunque estes, por ejemplo en /usr/src/linux al hacer el make pongas esa ruta anterior y la siguiente
 
 
0 # 19-09-2010 21:14
Gracias por contestar, he repetido los pasos pero ahora me quedo aquí:

puppo@puppo-desktop:~$ sudo make-kpkg --initrd kernel_image kernel_headers
We do not seem to be in a top level linux kernel source directory
tree. Since we are trying to make a kernel package, that does not make
sense. Please change directory to a top level linux kernel source
directory, and try again. (If I am wrong, and this is indeed a top
level linux kernel source directory, then I have gotten sadly out of
date with current kernels, and you should upgrade kernel-package)
puppo@puppo-desktop:~$

mi inglés no es muy bueno así que no sé que pasa ahora, tampoco estoy seguro de como guardar los cambios en el modulo del paso anterior, he pulsado la "M" y luego la "Y" y cerrado el terminal
 
 
0 # Dr. Arroyo 20-09-2010 09:45
necesitaría saber en que directorio estás cuando realizas el sudo make-kpkg
 
 
0 # 20-09-2010 10:42
hola: he vuelto a intentarlo he llegado un poco más lejos pero al final me sale lo siguiente:

drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:750: error: ‘FUNCTION_SUCCE SS’ undeclared (first use in this function)
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:758: error: ‘FUNCTION_ERROR ’ undeclared (first use in this function)
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c: In function ‘mxl5005s_SetI2 cBridgeModuleTu nerArg’:
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:809: error: ‘TUNER_MODULE’ has no member named ‘pI2cBridge’
make[5]: *** [drivers/media/dvb/dvb-usb/tuner_mxl5005s.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-usb] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: se sale del directorio `/usr/src/linux-source-2.6.32'
make: *** [debian/stamp/build/kernel] Error 2
puppo@puppo-desktop:/usr/src/linux$

no se si esto contesta tu pregunta
 
 
0 # 20-09-2010 10:48
hola: he vuelto a intentarlo he llegado un poco más lejos pero al final me sale lo siguiente:

drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:750: error: ‘FUNCTION_SUCCE SS’ undeclared (first use in this function)
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:758: error: ‘FUNCTION_ERROR ’ undeclared (first use in this function)
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c: In function ‘mxl5005s_SetI2 cBridgeModuleTu nerArg’:
drivers/media/dvb/dvb-usb/tuner_mxl5005s.c:809: error: ‘TUNER_MODULE’ has no member named ‘pI2cBridge’
make[5]: *** [drivers/media/dvb/dvb-usb/tuner_mxl5005s.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-usb] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: se sale del directorio `/usr/src/linux-source-2.6.32'
make: *** [debian/stamp/build/kernel] Error 2
puppo@puppo-desktop:/usr/src/linux$
no se si esto contesta tu pregunta
 
 
0 # 20-09-2010 11:04
Hola:No se responderte a tu pregunta sigo los pasos al pie de la letra solo he cambiado el número de kernel por la que tengo yo y el nombre de usuario. tras un nuevo intento me he quedado aquí:& sudo make-kpkg --initrd kernel_image kernel_headers, parece que todo va bien hasta que sale esto:

ber named ‘pI2cBridge’
make[5]: *** [drivers/media/dvb/dvb-usb/tuner_mxl5005s.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-usb] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: se sale del directorio `/usr/src/linux-source-2.6.32'
make: *** [debian/stamp/build/kernel] Error 2
puppo@puppo-desktop:/usr/src/linux$
 
 
0 # 20-09-2010 11:05
Hola:No se responderte a tu pregunta sigo los pasos al pie de la letra solo he cambiado el número de kernel por la que tengo yo y el nombre de usuario. tras un nuevo intento me he quedado aquí:& sudo make-kpkg --initrd kernel_image kernel_headers, parece que todo va bien hasta que sale esto:

ber named ‘pI2cBridge’
make[5]: *** [drivers/media/dvb/dvb-usb/tuner_mxl5005s.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-usb] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: se sale del directorio `/usr/src/linux-source-2.6.32'
make: *** [debian/stamp/build/kernel] Error 2
puppo@puppo-desktop:/usr/src/linux$
 
 
0 # Dr. Arroyo 20-09-2010 11:09
en principio la version del kernel ha de ser, como indica el articulo al principio, " kernel superior a la versión 2.6.28-11 " ejecuta el comando "uname -a" y pegamelo, luego para decirme en que directorio te encuentras usa "pwd" y por ultimo echale un ojo a lo que has editado (paso previo) a ver si has pegado mal, usa siempre de intermediario entre la web y el terminal un editor de textos
 
 
0 # 20-09-2010 11:52
puppo@puppo-desktop:~$ uname -a
Linux puppo-desktop 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:17:33 UTC 2010 i686 GNU/Linux
en cuanto al directorio puppo@puppo-desktop:~$ cd /usr/src
puppo@puppo-desktop:/usr/src$ ls
broadcom-sta.tar.bz2 linux-source-2.6.32
linux linux-source-2.6.32.tar.bz2
linux-headers-2.6.32-21 lzma.tar.bz2
linux-headers-2.6.32-21-generic nvidia-173-173.14.22
linux-headers-2.6.32-24 nvidia-current-195.36.24
linux-headers-2.6.32-24-generic
puppo@puppo-desktop:/usr/src$
 
 
0 # 20-09-2010 11:07
Hola:No se responderte a tu pregunta sigo los pasos al pie de la letra solo he cambiado el número de kernel por la que tengo yo y el nombre de usuario. tras un nuevo intento me he quedado aquí:& sudo make-kpkg --initrd kernel_image kernel_headers, parece que todo va bien hasta que sale esto:

ber named ‘pI2cBridge’
make[5]: *** [drivers/media/dvb/dvb-usb/tuner_mxl5005s.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-usb] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: se sale del directorio `/usr/src/linux-source-2.6.32'
make: *** [debian/stamp/build/kernel] Error 2
puppo@puppo-desktop:/usr/src/linux$
 
 
0 # 20-09-2010 11:53
puppo@puppo-desktop:~$ cd /usr/src/linux
puppo@puppo-desktop:/usr/src/linux$ sudo make menuconfig
[sudo] password for puppo:
scripts/kconfig/mconf arch/x86/Kconfig


*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.

puppo@puppo-desktop:/usr/src/linux$ sudo make-kpkg --initrd kernel_image kernel_headers
 
 
0 # 20-09-2010 20:34
disculpa por repetirme es la novatada pensaba que no te había podido enviar lo que me preguntas.El directorio es el mismo /usr/src/linux por lo menos eso creo. en mis dos ultimos intentos ya no me sale los mismos errores, el terminal tras un rato se queda repitiendo la letra "Y" y así lo he dejado casi dos horas, no sé si estaba haciendo lo que tiene que hacer porque lo he cortado por no estar seguro y tener la sensación de estar perdiendo el tiempo.Gracias de todas forma por tu tiempo.
 
 
0 # Dr. Arroyo 20-09-2010 21:28
No te preocupes :)
el proceso de compilacion tarda varias horas, depende de la máquina, interrumpirlo te puede llevar a problemas con el kernel y o con el Sistema Operativo, es importante destacar que no es una operación trivial, recompilar el kernel es tedioso y a veces no nos da el fruto que queremos. De todas formas si el proceso de compilación inicia correctamente no lo interrumpas. Déjalo, por ejemplo, toda la noche
 
 
0 # 21-09-2010 10:19
ok, gracias no sabia que era tan laborioso, haré lo que dices y ya te cuento
 
 
0 # 02-10-2010 16:01
hola: parece que no fue bien, no encuentro los archivos deb que se supone crea en carpeta /usr/src lo único nuevo que hay es la carpeta linux que antes no existía. lamento la tardanza en contestar pero no he podido y de momento no tengo tiempo para intentarlo de nuevo gracias de todas forma.
 
 
0 # 02-10-2010 16:38
Hola de nuevo: tengo otra tarjeta mas vieja pci marca zaapa digital/analógica modelo LR306NTFPR que tampoco ha funcionado nunca con ubuntu, va bien con xp no sé si sería mejor intentar instalar ésta en ves la usb de la misma marca. ¿saber tu algo sobre esta tarjeta pci? lo que yo encontré en su día por la red no me sirvió para instalarla
 
Usar puntuación: / 1
MaloBueno