Kworld UB499-2T

From LinuxTVWiki
Revision as of 20:10, 13 January 2011 by Jodi (talk | contribs) (Added instructions on modifying the patch to support new kernels.)
Jump to navigation Jump to search
Vendor
Device/Model
Supported ID on
Interface
Hardware Firmware Comment / Pictures URL E
KWorld UB499-2T See Device page. IT9135 Yes from Kernel 3.2 048d:9135 USB2.0 ITE IT9135 dvb-usb-it9135-01.fw Jump to the place where you can edit this entry
KWorld UB499-2T T09 Yes, in kernel since 3.2 1b80:e409 USB2.0 IT9137 dvb-usb-it9137-01.fw Jump to the place where you can edit this entry


The KWorld UB499-2T is a USB dual tuner. It contains the Afatech/ITE IT9135 hardware. It is not supported directly by V4L, however, a driver is available along with instructions for installation from http://wasietsmet.nl/linux/zolid-usb-dvb-t-tuner-van-de-aldi-linux-drivers/. This page is in Dutch, however English installation instructions for Ubuntu are provided below.

I have tested the driver on Mythbuntu 10.04 with kerner version 2.6.32. The dual tunar appears to function perfectly, however, I have not made any attept to get the included IR receiver and remote working.

The IT9137 version (packaged as KWorld UB499-2T) tested and both tuners working with the 9135 driver above with Mythtv 0.23 on Ubuntu 10.04 kernel 2.6.32-24-generic.

lsusb dump

Bus 001 Device 009: ID 048d:9135 Integrated Technology Express, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x048d Integrated Technology Express, Inc.
  idProduct          0x9135 
  bcdDevice            2.00
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           46
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Installation Instructions

These instructions have been written after my work colleague Axel pointed me to the Dutch page http://wasietsmet.nl/linux/zolid-usb-dvb-t-tuner-van-de-aldi-linux-drivers/ which contains a link to the drivers and installation instructions in Dutch. Although it is relatively easy to translate the page using an online translator I thought it sensible to add a section here in the v4l wiki in English for completeness.

Again thanks to those mentioned above.

If you don't allready have them install linux headers for your kernel and gcc

 sudo apt-get install linux-headers-$(uname -r) gcc

Create a folder for the source code (for example in your Documents folder) and cd into it.

 mkdir IT9135_SRC_i686_patch
 cd IT9135_SRC_i686_patch

Download the driver source code from http://wasietsmet.nl/wp-content/uploads/2010/07/IT9135_SRC_i686_patch.tar.gz to your new folder either using your browser or using

 wget http://wasietsmet.nl/wp-content/uploads/2010/07/IT9135_SRC_i686_patch.tar.gz

Unpack the sourcecode and run the install script. Follow the onscreen instructions entering option 1 to install the module

 tar xvzf IT9135_SRC_i686_patch.tar.gz
 ./installer.sh

Load the module

 sudo modprobe dvb-usb-it9135

Test the tuner is working by scanning for channels. First find the correct file for your transmitter then scan. The example below lists all files for uk transmitters then uses uk-EmleyMoor. Modify the ls command to list all transmitters or those in your country and replace uk-EmleyMoor with the file for the transmitter you use. If the scan succeeds you have successfully installed the tuner.

 ls /usr/share/dvb/dvb-t | grep uk-
 scan /usr/share/dvb/dvb-t/uk-EmleyMoor

Ensure that the module is loaded on reboot by adding it to your /etc/modules file using your favourite text editor, eg to use nano

 sudo nano /etc/modules

then add the line

 dvb-usb-it9135

to the file.

Supporting Newer Kernels

Currently the driver provided only supports kernels up to 2.6.33. However I have tested the driver on my 2.6.35 kernel by modifying the source code following instructions from the following ubuntu forums: Updating usb2impl.c Updating Make Files

Updating for the 2.6.35 kernel

  • Download the kernel source for your kernel (2.6.35 for this example)
  • Unpack the IT9135_SRC_i686_patch.tar.gz driver source code patch
  • Create the directory IT9135_SRC/v4l/kernel 2.6.35 inside your unpacked driver source
  • Find the following files in your kernel source, and copy them into IT9135_SRC/v4l/kernel 2.6.35
 dvb_frontend.h
 dmxdev.h
 dvb_ringbuffer.h
 dvb_demux.h
 dvb-pll.h
 dvb-usb.h
 dvb_net.h
 dvbdev.h
 demux.h
 dvb-usb-ids.h
  • edit the first line of IT9135_SRC/src/usb2impl.c:
 #include <linux/autoconf.h>

to

 #include <generated/autoconf.h>
  • Edit IT9135_SRC/Makefile

after

 ifneq (,$(findstring 2.6.33,$(CURRENT)))
       @cp -f v4l/kernel-2.6.33/* ./   
 endif

add

 ifneq (,$(findstring 2.6.35,$(CURRENT)))
       @cp -f v4l/kernel-2.6.35/* ./   
 endif
  • Run the installer.