Realtek RTL2831U
Introduction
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 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.