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.
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
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.