TBS5880 USB DVB-T2/T/C CI hybrid TV Box

From LinuxTVWiki
Revision as of 06:47, 11 August 2013 by Jorkki22 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

TBS5880 is a hybrid digital TV external box with both DVB-T2/T tuner and DVB-C tuner. You can use it for watching or recording digital terrestrial or cable TV on PC. The integrated CI support makes it possible to watch Pay TV(By inserting the correct CAM and subscription smartcard into the CI slot, premium channels will be available). The manufacturer provides Linux driver up to the latest kernel.

TBS5880.jpg

Overview/Features

  • Watch Digital TV & listen to Radio on PC
  • DVB-T2/T/C SD or HD TV Receiving
  • Real Time and Scheduled Program Recording(PVR)
  • Time Shifting to Pause Live TV
  • Common Interface Support

Components Used

  • DNOT44QCH266A
  • CY7C68013

Identification

Device Descriptor:

bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0x734c TBS Technologies China
 idProduct          0x5880 
 bcdDevice            0.01
 iManufacturer           1 
 iProduct                2 
 iSerial                 0 
 bNumConfigurations      1

Configuration Descriptor: bLength 9

   bDescriptorType         2
   wTotalLength           32
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              100mA


Interface Descriptor:

bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval               1

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

Making it work

  • Download driver zip from the manufacturer and unpack the files
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_driverversion.zip
mkdir tbs-linux-drivers_driverversion
cd tbs-linux-drivers_driverversion
unzip ../tbs-linux-drivers_driverversion.zip
  • Extract linux-tbs-drivers.tar.bz2 archive:
 tar xjvf linux-tbs-drivers.tar.bz2
  • Go to driver package directory:
 cd linux-tbs-drivers
  • We need to choose 32bit or 64bit for our drivers. Run
    • ./v4l/tbs-x86.sh for 32bit;
    • ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x
    • ./v4l/tbs-x86_64.sh for 64bit.
  • We're ready to build; add -j3 for a faster build on a dual core machine, -j5 on a quad core machine, etc.
  • Build and install the driver:
 make && make install

Or for dual core machines

 make -j3 && make install
  • Reboot in order to load the newly installed driver:
 shutdown -r now

Drivers

Available here. Look for the TBS5880 Latest driver.

Note (2 dec 2012): These proprietary drivers were forked from the standard Linux DVB drivers around August 2011. And as such contain only old drivers for hardware other than from TBS.

Re-installing after a kernel upgrade

  • cd to the linux-tbs-drivers directory that was created in the Making it Work section above.
  • Clean out the previously built objects
 make clean
  • Choose 32bit or 64bit for our drivers again.
    • ./v4l/tbs-x86.sh for 32bit
    • ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x
    • ./v4l/tbs-x86_64.sh for 64bit.
  • Remove (or rename if you're paranoid) the config file; it will be regenerated automatically.
 rm v4l/.version
  • Build and install the modules
 make -j3
 sudo make install
  • Reboot your machine.


Sample Kernel Output

dvb-usb: no frontend was attached by 'TBS 5880 CI USB2.0'

  • [ 160.019741] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input4
  • [ 160.019828] dvb-usb: schedule remote query interval to 150 msecs.
  • [ 160.019834] dvb-usb: TBS 5880 CI USB2.0 successfully initialized and connected.
  • [ 160.019868] usbcore: registered new interface driver tbs5880
  • [ 160.044480] dvb-usb: TBS 5880 CI USB2.0 successfully deinitialized and disconnected.
  • [ 161.660020] usb 1-7: new high speed USB device number 4 using ehci_hcd
  • [ 161.793006] dvb-usb: found a 'TBS 5880 CI USB2.0' in cold state, will try to load a firmware
  • [ 161.796028] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5880.fw'
  • [ 161.799293] tbs5880: start downloading TBS5880 CI firmware
  • [ 161.916027] dvb-usb: found a 'TBS 5880 CI USB2.0' in warm state.
  • [ 161.916106] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
  • [ 161.916224] DVB: registering new adapter (TBS 5880 CI USB2.0)
  • [ 162.140206] dvb-usb: MAC address: 00:22:ab:b1:00:0d
  • [ 162.169705] tbs5880: Attached TBS5880FE!
  • [ 162.169708]
  • [ 162.169934] tbs5880: CI initialized.
  • [ 162.170205] tbs5880: CI disabled.
  • [ 162.170210] DVB: registering adapter 0 frontend 0 (TurboSight TBS 5880 DVBT/T2 frontend)...
  • [ 162.170546] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input5
  • [ 162.170607] dvb-usb: schedule remote query interval to 150 msecs.
  • [ 162.170612] dvb-usb: TBS 5880 CI USB2.0 successfully initialized and connected.

External Links