From LinuxTVWiki
Revision as of 08:50, 12 February 2013 by Timmydog (Talk | contribs)

Jump to: navigation, search

A dual DVB-T/DVB-T2 PCIe card from TurboSight. The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.


  • PCI-e x1
  • Dual Tuner DVB-T/DVB-T2 card
  • RF antenna pass-through

Components Used



 02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)
       Subsystem: Device 6280:0011
       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0, Cache Line Size: 4 bytes
       Interrupt: pin A routed to IRQ 16
       Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]
       Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-
               Address: 0000000000000000  Data: 0000
       Capabilities: [50] Express (v1) Endpoint, MSI 00
               DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us
                       ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
               DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                       RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                       MaxPayload 128 bytes, MaxReadReq 128 bytes
               DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
               LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us
                       ClockPM- Suprise- LLActRep- BwNot-
               LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+
                       ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
               LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
       Capabilities: [74] Power Management version 2
               Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)
               Status: D0 PME-Enable- DSel=0 DScale=0 PME-
       Capabilities: [80] Vendor Specific Information <?>
       Capabilities: [100] Vendor Specific Information <?>
       Kernel driver in use: SAA716x TBS
       Kernel modules: saa716x_tbs-dvb

Making it Work

As of (2012-02-14) it is now possible to tune into DVB-T & DVB-T2 at the same time, both recorded and live, following the release of Linux Driver v120216. This version will also now compile on all Linux Kernels up till 3.2.x. Instructions for compiling/installing remain identical.

These instructions can all be carried out as a non-root user, until "make install".

  • Download driver zip from manufacturer and unpack the files
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130127.zip
mkdir tbs-linux-drivers_v130127
cd tbs-linux-drivers_v130127
unzip ../tbs-linux-drivers_v130127.zip
tar axvf linux-tbs-drivers.tar.bz2
cd linux-tbs-drivers
  • At this point, the supplied tar.bz2 is completely knackered in respect of the file permissions. To fix run
 find -type d -exec chmod 755 \{\} \;
 find -type f -exec chmod 644 \{\} \;
 find -name '*.sh' -exec chmod 755 \{\} \;
 find -name '*.pl' -exec chmod 755 \{\} \;
  • 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.
 make -j3
  • Once that has completed, you can install
 sudo make install
  • And reboot.

Sample kernel output

 SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
 SAA716x TBS 0000:02:00.0: setting latency timer to 64
 DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...
 DVB: registering new adapter (SAA716x dvb adapter)
 DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...

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.

External Links