TBS6280

From LinuxTVWiki
Revision as of 21:04, 22 October 2013 by Yannick56 (talk | contribs) (add old drivers release)
Jump to navigation Jump to 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.

Overview/Features

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

Components Used

  • NXP SAA7160ET (PCI Express Based Audio And Video Bridge)
  • NXP (TDA) 18212/M (Silicon Tuner for terrestrial and cable digital TV reception) X2
  • SONY CXD2820R (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2

Identification

Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".

# lspci -vvvnn | grep --after-context=27 7160
 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

or with kernel 3.8.13.4 and Mageia Linux.

# lspci -v | grep --after-context=10 7160
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)
       Subsystem: Device 6280:0011
       Flags: bus master, fast devsel, latency 0, IRQ 18
       Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
       Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+
       Capabilities: [50] Express Endpoint, MSI 00
       Capabilities: [74] Power Management version 2
       Capabilities: [80] Vendor Specific Information: Len=50 <?>
       Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?>
       Kernel driver in use: SAA716x TBS

If the driver is not yet installed or loaded, then output will instead be

# lspci -v | grep --after-context=10 7160
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)
       Subsystem: Device 6280:0001
       Flags: bus master, fast devsel, latency 0, IRQ 18
       Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
       Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-
       Capabilities: [50] Express Endpoint, MSI 00
       Capabilities: [74] Power Management version 2
       Capabilities: [80] Vendor Specific Information <?>
       Capabilities: [100] Vendor Specific Information <?>

Making it Work

Drivers

Available here.

TurboSight Proprietary by Konstantin Dimitrov <kosio.dimitrov@gmail.com> for TurboSight TBS 62x0 DVBT/T2/C frontend driver module of www.turbosight.com

Old release for drivers if you have problem with your kernel :

  • v130927 (2013-09-27)

http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip

Changelog :
TBS6280 Linux Driver is updated to v130927, which has below updating:
* Add DVB-C driver for TBS 6221, 6281, 6285, 5220, 5881
* Finalize DVB-T/T2 driver for TBS 6221, 6281, 6285, 5220, 5881
* Improve software compatibility for all DVB-C products
* Improve software compatibility for all DVB-T/T2 products
* Make power control for TBS 6984 more reliable
  • v130802 (2013-08-02)

http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130802.zip

Changelog :
TBS6280 Linux Driver is updated to v130802, which has below updating:
* improve compatibility with Linux kernel version 3.10
* preliminary support for Linux kernel version 3.11
* add support for all revisions of TBS 6982
* add support for all revisions of TBS 6928SE
* add PLP (Physical Layer Pipe) support for 6220, 6280, 6284 (PLP, see http://en.wikipedia.org/wiki/DVB-T2#Technical_details)
* fix bug for DVB-C products (TBS 6618, TBS 6680, TBS 5680 and DVB-C USB Stick): improve performance in some DVB-C networks
  • v130506 (2013-05-06)

http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip

Changelog :
TBS6280 Linux Driver is updated to v130506, which has below updating:
* Further improve compatibility with 32-bit Linux kernels version 3.8.x and 3.9.x.
* Add module parameter "enable_ir" that allows disabling IR support for TBS cards.
  • v121119 (2012-11-19)

http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v121119.zip

Changelog :
TBS6280 Linux Driver is updated to v121119, which has belowed updating:
* Add support for dBm reporting with TBS 6922.
* Improve performance of TBS 6922 and TBS 6985 in case lock can't be acquired.
  • v120617 (2012-06-17)

http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip

Changelog :
TBS6280 linux driver is updated to v120617:
A) Add driver and software downloand for TBS5880.
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.

Compiling

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 the manufacturer and unpack the files
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip
mkdir tbs-linux-drivers_v130506
cd tbs-linux-drivers_v130506
unzip ../tbs-linux-drivers_v130506.zip

Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981

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

#dmesg | more
 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)...


With kernel 3.8.13.4 and Mageia Linux.

#dmesg | more

For IR remote control :

[   11.410478] IR NEC protocol handler initialized
[   11.660415] IR RC5(x) protocol handler initialized
[   11.701373] IR RC6 protocol handler initialized
[   11.943450] IR JVC protocol handler initialized
...
[   12.102224] IR Sony protocol handler initialized
[   12.165011] Registered IR keymap rc-tbs-nec
...
[   12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5
[   12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0

For DBV-T TV :

[   11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.
[   11.952061] Disabling lock debugging due to kernel taint
...
[   12.165164] DVB: registering new adapter (SAA716x dvb adapter)
...
[   14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff
[   14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...
[   14.115548] DVB: registering new adapter (SAA716x dvb adapter)
[   14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff
[   14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...

troubleshooting

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