Realtek RTL2831U

From LinuxTVWiki
Jump to navigation Jump to search


The 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 devices

The following devices are supported (numbers and names do NOT correspond): output of grep rtl2831 /lib/modules/2.6.24-16-generic/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 = "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

Get the drivers

To download and build the driver, issue

hg clone
make install

This code was recently synchronised with the main v4l line.


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.

Product links