Instalar drivers rtl2831u para el receptor TDT Zaapa en Ubuntu 10.04
mayo 21, 2010 41 comentarios
En este post que escribí hace unos meses explicaba como instalar los drivers rtl2831u en ubuntu-linux compilando el código fuente del kernel. Sin embargo al intentar compilarlo para el kernel que trae Ubuntu 10.10, se produce un error en el código del drivers. Tenemos dos opciones utilizar el kernel antiguo (la cual no recomiendo) o utilizar los repositorios de Mercurial un VCS.
Primero vamos a conectar el receptor y a comprobar que nuestro ordenador lo detecta, vamos a la Terminal y escribimos:
# lsusb
Uno de las entradas deberá ser:
[…]
Bus 004 Device 003: ID 0bda:2831 Realtek Semiconductor Corp. 2831U Device
[…]
Vamos a instalar primero el source del kernel linux, este paso no se si del todo necesario pero por si acaso no esta de sobre hacerlo.
# sudo apt-get install linux-source linux-headers-$(uname -r)
Instalamos también el software de Mercurial y seguimos los siguientes pasos
# sudo apt-get install mercurial
# hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2
# cd rtl2831-r2/
Ahora podemos hacer dos cosas: una es compilar directamente el código descargado y otra descartar aquello que no vamos a necesitar y así también nos quitamos de errores al compilar.
# sudo make menuconfig
En Multimedia support podemos quitar (pulsando N):
- Customize analog and hybrid tuner modules to build
- Video capture adapters
- Radio Adapters
- DAB adapters
En DVB/ATSC adapters podríamos quitar casi todos, en mi caso solo eliminé FireDTV and FloppyDTV porque me daba error al compilarlo. Guardamos y cerramos el menuconfig. Después:
# sudo make clean
# sudo make
# sudo make install
Si todo ha ido bien y no nos ha devuelto ningún error ya debería estar todo correcto. Desconectamos y volvemos a conectar el adaptador y comprobamos que este se ha instalado correctamente
# lsmod | grep dvb
Y aparecerá algo así:
dvb_usb_rtl2831u 118735 1
dvb_usb_dibusb_common 8370 1 dvb_usb_rtl2831u
dvb_usb 19779 2 dvb_usb_rtl2831u,dvb_usb_dibusb_common
dvb_core 102255 1 dvb_usb
dib3000mc 12926 1 dvb_usb_dibusb_common
Ahora podemos instalar cualquier programa para ver el tv en linux como kaffeine y todo debería de funcionar bien.



Ok funciono!!!
Al igual que tu tuve que quitar FireDTV and FloppyDTV. intente compilarlo sin quitarselo, pero me dio un problema, se lo quite y a funcionar.
Muchas gracias, por mantener un hilo tan activo.
Gracias.
Ya puedo ver la TDT con esta tarjeta sintonizadora en Ubuntu 10.04.
Creo que para poder usar make menuconfig necesitaremos instalar previamente las librerías Ncurses (sudo apt-get install libncurses-dev)
Muchísimas gráficas. Nunca conseguí hacer funcionar mi tdt usb TVISTO (que lleva los mismos drivers), y ahora con tu receta ha sido espectacular.
Junto con kaffeine (en Ubuntu 10.10) se ve mejor que con mi defenestrado güindos 7.
Una pregunta, cuando compruebo la lista de controladores adicionales me aparece como novedad:
Firmware para tarjetas DVB
This package provides non-free firmware used by Linux kernel drivers.
Most of the firmware in this package is for television tuner cards. However,non-free firmware for other classes of devices are provided as well.
No me atrevo a activarlo vaya que me fastidie la configuración de la tdt.
Que me aconsejas?
salu2 y gracias de nuevo
Buenas las indicaciones. A mí me funcionó a la primera y muy bien pero después de actualizar el sistema dejó de funcionar. ¿Eso ha de ser así? ¿Hay que reinstalar el driver tras ciertas actualizaciones? De hecho yo hice de nuevo un “sudo make install” reinicié el equipo y ya funciona de nuevo. No se si eso será apropiado.
Agradecería alguna aclaración al respecto. Muchas gracias.
Si, así es cada vez que actualices el kernel es necesario reinstalarlo, has hecho lo correcto. Si la actualización no incluye un kernel nuevo, entonces no hace falta que hagas nada.
Muchas gracias por tu post, funcionó todo a la primera después de seguir tus indicaciones, tendré en cuenta cada que ves actualize un kernel a un nuevo,llevaba casi un año sin ver la tele en linux.
Curioso tenia instalada ME TV y no funciono con el hasta que reinicie el sistema en cambio kaffeine que lo instalé después de haber instalado los drivers si funcionó, en fin debe ser cosas de los archivos de configuración del ME TV al estar instalado.
Repito nuevamente M U C H A S G R A C I A S por compartir con nosotros.
Hola despues de una actualizacion en la que aparecia un nuevo kernel, no funciono el programa incluso despues de reinstalar todo de nuevo, el problema esta en que no carga el modulo dvb pues no aparece con lsmod ni lsmod | grep dvb , alguna idea ME LAS PROMETIA MUY FELICES pero no he conseguido hacerlo funcionar de nuevo
Gracias por la posible respuesta.
Hola Paco, yo no tengo ahora el receptor instalado por lo que no se decirte si ese fallo es general o no. Lo único que se me ocurre es que pruebes a instalarlo compilando todo el kernel como se explica aquí http://metalzonix.wordpress.com/2009/11/05/instalar-drivers-rtl2831u-zt-dvbtstusb-compilando-el-kernel-en-ubuntu-karmic/ , vas a tardar un poco más pero seguramente te funcione.
Desde hace unos días no me funciona y he probado a instalarlo un montón de veces y nada. ¿Os pasa a vosotros?
Hola otra vez.
Tu método siempre me ha funcionado en ubuntu 10.10 y con todas las actualizaciones del kernel.
Acabo de instalar desde cero ubuntu 11.04 ¿crees que servirá de nuevo?
Un saludo y gracias
Hola.
Yo creo si te ha estado funcionando hasta ahora, no debería darte ningún problema. Instalado de nuevo.
Bueno, pues por ahora, haciendo exáctamente todos los pasos, en el make sale este error:
CC [M] /home/ppsalama/rtl2831-r2/v4l/flexcop-i2c.o
/home/ppsalama/rtl2831-r2/v4l/flexcop-i2c.c: In function ‘flexcop_i2c_init’:
/home/ppsalama/rtl2831-r2/v4l/flexcop-i2c.c:253:39: error: ‘I2C_CLASS_TV_DIGITAL’ undeclared (first use in this function)
/home/ppsalama/rtl2831-r2/v4l/flexcop-i2c.c:253:39: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [/home/ppsalama/rtl2831-r2/v4l/flexcop-i2c.o] Error 1
make[2]: *** [_module_/home/ppsalama/rtl2831-r2/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic’
make[1]: *** [default] Error 2
make[1]: se sale del directorio «/home/ppsalama/rtl2831-r2/v4l»
make: *** [all] Error 2
lamentablemente no entiendo estas cosas, quizas haya que deshabilitar algo en el menuconfig, pero no sé qué.
Agradecería tu ayuda.
saludos
Vamos a probar una cosa, entra en el menuconfig y en DVB/ATSC adapters deshabilita también la entrada Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters. Por el nombre parece que este módulo es el problemático.
Gracias por tu pronta respuesta.
Eso pensaba yo. Acabo de hacer eso que me dices y me da ahora el siguiente error
CC [M] /home/ppsalama/rtl2831-r2/v4l/dmxdev.o
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c: In function ‘dvb_dmxdev_start_feed’:
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:583:13: warning: comparison between ‘enum dmx_ts_pes’ and ‘enum ‘
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c: At top level:
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1142:2: error: unknown field ‘ioctl’ specified in initializer
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1142:2: warning: initialization from incompatible pointer type
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1211:2: error: unknown field ‘ioctl’ specified in initializer
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1211:2: warning: initialization from incompatible pointer type
make[3]: *** [/home/ppsalama/rtl2831-r2/v4l/dmxdev.o] Error 1
make[2]: *** [_module_/home/ppsalama/rtl2831-r2/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic’
make[1]: *** [default] Error 2
make[1]: se sale del directorio «/home/ppsalama/rtl2831-r2/v4l»
make: *** [all] Error 2
¿que harías tu?
gracias de nuevo
Usando “/” para buscar dentro de menuconfig he encontrado un módulo que se llama DM646x EVM Video Display y se encuentra dentro de ->Video capture adapters, pero no consigo verlo entrando por el menú. Si lo encuentras prueba a deshabilitarlo
Ok… mañana lo pruebo… y dejo el comentario…. Muchísimas gracias
salu2
Hola de nuevo… Nada.
No encuentro en el menuconfig nada parecido a dmxdev o dm646
He probado a hacer el make sin modificar nada (salvo el flexcop), deshabilitando casi todo menos el RTL2831u, y no se cuantas deshabilitaciones más, y siempre da el error que te puse antes (dmxdev).
Salu2
Para el kernel 2.6.35 (no se si será el mismo que trae Ubuntu 11.04), he deshabilitado en Multimedia support las entradas Video captura adapters, Radio adapters y DAB adapters, además del módulo Technisat/B2C2 FlexCopII(b) and FlexCopIII; y se ha compilado sin problemas. Una cosa, ¿ estás utilizando el código actualizado de los repositorios de mercurial?
Hola.
El kernel es el 2.6.38-8 generic.
En cuanto a lo de los repositorios de mercurial, lo único que he hecho es ejecutar en terminal lo de
sudo apt-get install mercurial
Lo acabo de hacer de nuevo y me devuelve
mercurial ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados.
Me refería al código que se descarga al ejecutar
hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2, pero si lo has instalado ahora estará actualizado.efectivamente. no tengo referencias sobre otro código que no sea ese
Por cierto, la pagina de zaapa proporciona un driver linux
http://www.zaapa.co.uk/Public/ficha_producto.asp?CPRO=752
¿es posible hacer algo con él? (el driver viene al final de la página)
al descargarlo firefox lo identifica como un archivo bin, aunque luego, ya en el equipo, lo identifica como un rar. Si lo descomprimo crea una carpeta en la que, entre otros, hay un readme con instrucciones.
¿qué opinas?
En este otro post http://metalzonix.wordpress.com/2009/11/05/instalar-drivers-rtl2831u-zt-dvbtstusb-compilando-el-kernel-en-ubuntu-karmic/ explico que hacer con esos drivers. Puede probar, vas a tardar un poco más pero no es nada difícil.
Por cierto, ese es otro adaptador y el chip que tiene es rtd2831u diferente al nuestro.
cierto lo del rtd…
no me atrevo a compilar el kernel.
como sabes mi tdt no es zaapa, es tvisto, pero tiene el chip rtl2861u.
En la página de tvisto, proporcionan un driver, pero no hace referencia a este chip, sino, creo, al AF9015_MT2060
No pasa nada, estás compilando el código fuente del kernel descargado, no del que estás usando. Además si tras compilarlo e instalarlo no funcionase puede seguir entrando con el kernel antiguo.
¿como compruebo que tengo el build-essential?
pufff…. estoy sopesando compilar… tengo el cerebro ahora que no da para más… si cuando el kernel se actualice hay que compilar otra vez…
habrá que seguir investigando
Graciasssssssssssss
Hola de nuevo.
¿crees que habría alguna posibilidad de descargar los “drivers” de jhoogenraad (rtl2831-r2) y, antes de hacer el make y el make install, “eliminar” de la carpeta o modificar algo para que solo queden los de rtl2831u?
los errores me dan antes de llegar a los rtl2831u, “eliminando” lo superfluo igual se podría instalar. No entiendo mucho de esto y no se si se puede hacer
Gracias
Hola.
Eso mismo intente hacer el otro día, eliminando todo lo innecesario, pero siempre me salia el mismo error que tu me comentaste. Luego ya por probar más que otra cosa, eliminé las líneas de código fuente que daban error. Por ejemplo:
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1142:2: error: unknown field ‘ioctl’ specified in initializer
/home/ppsalama/rtl2831-r2/v4l/dmxdev.c:1142:2: warning: initialization from incompatible pointer type
SI te das cuenta en la línea 1142 del archivo dmxdev.c es donde se produce el error, así eliminé varias lineas casi siempre con el mismo error. Al final conseguí instalarlo, pero luego no llegaba a detectar del todo el usb…
He estado investigando un poco, parece que la el uso de ‘ioctl’ está obsoleto en el nuevo kernel y hasta que no lo actualicen seguirá dando problemas. http://forums.opensuse.org/english/get-technical-help-here/pre-release-beta/445511-virtualbox-kernel-modules-2-6-36rc3.html en esta web explica como solucionar ese problema pero en la instalación de virtualbox. Le echaré un vistazo haber que se puede hacer.
Muchísimas gracias… estaré atento a este hilo.
salu2
Hola de nuevo…. googleando he visto que el Freecom dvbt usb tiene el mismo chip rtl2831u… googleando más encontré esto http://lists.debian.org/debian-arm/2011/04/msg00062.html que me llevó a esto
http://www.ryanlothian.com/projects/linux/freecom-dvb-t-stick
¿Qué opinas?
salu2
Hola,
Aquí tienes un parche para compilar en un kernel 2.6.38 (Ubuntu 11.04): DVB-T Realtek 2831U on Debian
a mi me pasaba lo mismo, así que decidí poner fin al problema
Un saludo y espero que te sirva.
Hola de nuevo.
No llego a entender como combinar el proceso que se describe en este post con el parche que menciona oscarth.
Si me indicáis cómo lo pruebo y os cuento.
Saludos y gracias
Hola.
.
Ahora estoy un poco liado y no he podido probar el parche, si todo va bien la próxima semana tendré aul rato para probarlo. Si funciona todo prometo hacer un nuevo post
SSSStupendooooooo… Muy agradecido y salu2
Ya lo he intentado todo, hasta los nuevos parches, instalo todos los nucleos posibles, pero en 11.04 no consigo ver la tdt…
El parche da un fallo de otro v4l common.
¡¡¡ Lo conseguí !!! he combinado las instrucciones de este post con el parche http://crysol.org/es/node/1082#comment-5014
No soy experto en esto… en un probar por probar hice lo siguiente (trataré de recordarlo todo, no tomé notas porque no creía que funcionaría):
# sudo apt-get install linux-source linux-headers-$(uname -r)
# sudo apt-get install mercurial
# hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2
# cd rtl2831-r2/
hasta aquí como en este post…. ahora el parche tal y como dice
# rtl2831-r2$ wget http://arco.esi.uclm.es/~oscar.acena/crysol/rtl2831/kernel_2.6.38.patch
# rtl2831-r2$ patch -p1 < kernel_2.6.38.patch
Dado que el post que habla del parche también habla de un archivo config… yo añado su descarga (aunque no se si hice algo con él, de hecho no se si vale o no)
# rtl2831-r2$ wget http://arco.esi.uclm.es/~oscar.acena/crysol/rtl2831/config
Ahora continúo como en este post
# sudo make menuconfig
Y aquí viene, creo, lo importante… deshabilité todo (salvo el apartado audio, quité las marcas a todo) y solo dejé lo que hacía referencia a RTL2831u
# sudo make clean
# sudo make
# sudo make install
Algún error por medio creo que dió, pero dió la sensación que la instalación finalizó correctamente así que… desconecté y volví a conectar el tdt usb stick zappa y…
# lsmod | grep dvb
bingooooooooooo !!! me apareció esto…
dvb_usb_rtl2831u 93776 0
dvb_usb 19240 1 dvb_usb_rtl2831u
dvb_core 90137 1 dvb_usb
Abrí VLC, desempolvé mi archivo channels.conf y…. viendo la tdt en Ubuntu 11.04.
Rogaría a metalzonix, que tú si que sabes, que depurara o diera sentido a lo que he escrito en este comentario, con el fin de ver si he recordado algo mal o he hecho algo de más o de menos.
GRACIAS.
Muchas Gracias por la info, he estado muy liado y no tenido tiempo para ponerme manos a la obra que esto, pero si funciona así perfecto. Si me permites voy a escribir un post con estos pasos para que estén más visibles. Muchas gracias de nuevo.
Pingback: Instalar drivers rtl2831u en Ubuntu 11.04 « Metalzonix