Nov 6, 2012

Realtek RTL2832U DVB-T on Ubuntu 12.10 (Quantal)

Some of you might notice the kernel 3.5.x in Ubuntu 12.10 breaks the driver codes of RTL2832U that works on Ubuntu 12.04.  Tried several alternatives found on the net but all came back in no avail.  Luckily I found the driver for USB ID 1d19:1101 was in kernel 3.7-rc4. With minor code modification, my DVB-T dongle works again!

$ lsusb -v | grep "ID.*DVB"

Bus 002 Device 004: ID 1d19:1102 Dexatek Technology Ltd. DK mini DVB-T Dongle

Where 0x1d19 is the vendor ID, and 0x1102 is the product ID.


 Download and extract the kernel source:

$ wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.7-rc4.tar.bz2
$ tar xfj linux-3.7-rc4.tar.bz2

Replace the URL and the filename above if newer version is available by visiting kernel.org.

Change the source code at drivers/media/usb/dvb-usb-v2/rtl28xxu.c with our product ID (0x1102 in this case).

from
{ DVB_USB_DEVICE(USB_VID_DEXATEK, 0x1101,

to
{ DVB_USB_DEVICE(USB_VID_DEXATEK, 0x1102,


To compile the kernel, a kernel configuration file is needed.  Download mine at http://dl.dropbox.com/u/76023930/kernel-3.7.0-rc4.config and save as .config in the top-level folder of the kernel source.

Recompile and install the kernel, then reboot the machine. (The kernel compilation takes like 80 minutes on my i5 2.3GHz CPU.)

$ make
$ sudo make modules_install
$ sudo make install
$ sudo reboot


dmesg output:

$ dmesg|grep DVB
[    6.310132] usb 2-1.1: Product: Rtl2832UDVB
[   31.747812] usb 2-1.1: dvb_usb_v2: found a 'Dexatek DK DVB-T Dongle' in warm state
[   31.795283] DVB: registering new adapter (Dexatek DK DVB-T Dongle)
[   32.321089] usb 2-1.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[   32.630126] input: Dexatek DK DVB-T Dongle as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0/input7
[   32.630182] rc0: Dexatek DK DVB-T Dongle as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0
[   32.641710] usb 2-1.1: dvb_usb_v2: 'Dexatek DK DVB-T Dongle' successfully initialized and connected



$ uname -a
Linux buffalo 3.7.0-rc4 #2 SMP Mon Nov 5 23:03:56 CST 2012 i686 i686 i686 GNU/Linux



Watching HDTV on Ubuntu 12.10

8 comments:

  1. Thanks for the guide. Kernel compiled and the tuner is now recognized (dmesg, wscan, Kaffeine), however it does not tune any channels, and also it does not play channels from pre-made channels.conf.
    Note that I have the dongle version with product ID 1101, so I left rtl28xxu.c as is. Any ideas on how to target the issue?
    Many thanks,
    Carl

    ReplyDelete
  2. Also would be worth mentioning that you need at least 10GB of free space to compile.

    AMD Turion X2 - took me about 6 hours to compile. :-)

    ReplyDelete
  3. you should write to Anto Palosaari, the kernel developer involved in this module development, so he could add to the kernel source you device ids.
    this is his home page: http://palosaari.fi/linux/

    ReplyDelete
    Replies
    1. Already did. Actually I discussed with Antti Palosaari about adding additional USB ID's while writing this post, and he sent a patch for merging into the mainline of 3.7-rc5 but seems too late to. I guess the patch will be applied soon.

      Delete
  4. same issue for me : device recognized but does not tune anything with w_scan and totem

    ReplyDelete
  5. I am having the same issue here. upgraded to kernel 3.7.4 and TV card will not scan or display anything from a channels.conf
    It appears as it works in VLC but does not display. I can then plug in a Winfast card and it works straight away. There must be more to these cards and the kernel support is not there.

    ReplyDelete
  6. Thank you for the instructions.

    It works with Kernel 3.7.6 out of the box (with device ID 1101).
    But from the looks of the code it should also work with ID 1102.

    Off-topic: Only problem left is Nvidia divers :D

    ReplyDelete
  7. Thanks for the hints here, but I found an much easier way for me to get my ID 1102-Stick to work on 12.10 last night:
    1. Download the deb's for your architecture from here into a new directory:
    http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.10.4-saucy/
    2. open Terminal and cd to the download directory and enter:
    sudo dpkg -i *.deb
    3. Reboot, plug-in your rtl2832u, search for channels & enjoy your favorite TV-Shows with the Viewer of your choice!

    If you want/need to uninstall the 3.10-Kernel enter in an Terminal:
    sudo apt-get purge linux-headers-3.10* linux-image-3.10*
    sudo update-grub
    and reboot to your old 3.5.x-Kernel.

    Greetings,
    remmi-z

    ReplyDelete