Realtek RTL2831U

From LinuxTVWiki
Jump to: navigation, search

The Realtek RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.

This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, TwinHan/AzureWave AD-TU200 (7047) DVB-T, Freecom, Conceptronic, and Realtek.

Supported RTL2831U devices

The following devices are supported (numbers and names do NOT correspond): output of grep rtl2831 /lib/modules/`uname -r`/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'

     0x0bda   0x2831    
     0x2304   0x022b    
     0x13d3   0x3216    
     0x13d3   0x3220    
     0x13d3   0x3236    
     0x13d3   0x3238    
     0x13d3   0x3244    
     0x08dd   0x2103    
     0x185b   0x0100    
     0x185b   0x0150    
     0x1a46   0x1601    
     0x14aa   0x0160    
     0x14ff   0x0225   

name = "RTL2831U DVB-T USB2.0 DEVICE"
name = "RTL2831U DVB-T USB2.0 DEVICE"
name = "DVB-T TV-Tuner Card-R"
name = "VideoMate TV U100"
name = "VideoMate U90"
name = "Vestel DVB-T TV Card"
name = "Freecom USB 2.0 DVB-T Device"
name = "DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver"
name = "DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver"
name = "DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver"
name = "DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver"
name = "DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver"

TwinHan/AzureWave AD-TU200 (7047) DVB-T


For the Compro U80, devices have been found with rtl2831 and a QT1010 tuner chip. For Conceptronic the versions earlier than V3.0 of CTVDIGRCU used the Realtek RTL2831U. Later versions use a different encoder. E.g. Conceptronic USB2.0 DVB-T CTVDIGRCU V3.0 has an Afatech AF9015 on board.

See the specific driver for those devices below.

Get the drivers

To download and build the driver, issue

hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2
make
make install

This code was recently synchronised with the main v4l line.

Infrared configuration

A switch for the IR type is included. It can be selected using modprobe. For example if you need type 2: unload the automatically loaded driver, and reload the good codes.

sudo modprobe -r dvb_usb_rtl2831u
sudo modprobe  dvb_usb_rtl2831u ir_protocol=2

Pending developments

The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)

I have started a second archive for splitting off the tuner code. For the mxl5005s tuner, this should be straightforward, as the code found its way into the mainstream v4l already.

However, I ran into problems with the mt2060 (which is the tuner I own). In the function MT2060_LocateIF1 is making this hard. This function doe some sort of calibration, and there is both internal data from the tuner required, and input from the demodulator.

Lately, problems with stability of the http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2 code have been reported on Ubuntu Karmic (2.6.31-14-generic).

A new branch for the RTL2831 is set up for inclusion into the kernel. The code base is started from scratch. This branch is at http://linuxtv.org/hg/~anttip/rtl2831u/.

Update: (2011-July) A revised version is now at http://git.linuxtv.org/anttip/media_tree.git?a=shortlog;h=refs/heads/realtek .

A first driver for devices with a QT1010 tuner can be found at: http://linuxtv.org/hg/~anttip/qt1010/


However, NO IR code is included at this stage. It has been tested on a couple of systems, and few test results are available.

Product links