TBS6280
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 (alias TDA18212HN with master) (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.
- v120503 (2012-05-03)
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120503.zip
Changelog : BS6280 linux driver is updated to v120503: A) Add driver and software downloand for TBS5880. B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.
- v120412 (2012-04-12)
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120412.zip
Changelog : TBS6280 linux driver is updated to v120412, any Linux kernel version in the range 2.6.31 to 3.2.x and any Linux distribution is supported.
- v120216 (2012-02-16)
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120216.zip
Changelog : TBS6280 linux driver is updated to v120216, any Linux kernel version in the range 2.6.31 to 3.2.x and any Linux distribution is supported.
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".
0. Download the drivers Download driver zip from the manufacturer or by the wget command line
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip
1. Extract the ZIP file tbs-linux-drivers_v[VERSION NUMBER].zip. As of 5 October 2013, the latest version is 130927. You may want to do this in an empty directory as this archive does not extract into a single root directory of its own.
mkdir tbs-linux-drivers_v130927 cd tbs-linux-drivers_v130927 unzip ../tbs-linux-drivers_v130927.zip
2. Extract linux-tbs-drivers.tar.bz2 archive
bzip2 -d linux-tbs-drivers.tar.bz2 tar xvf linux-tbs-drivers.tar
3. Change to driver package directory
cd linux-tbs-drivers
4. Fix the file permissions
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 \{\} \;
5. Select platform architecture
Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981
for x86 kernel 3.x (x86 32 bit installations of kernel 3.x)
./v4l/tbs-x86_r3.sh
or for x86 kernel 2.6.x (x86 32 bit installations of kernel 2.6.x)
./v4l/tbs-x86.sh
or for any x86_64 kernel (x86 64 bit installations of Linux)
./v4l/tbs-x86_64.sh
You should then receive a message along these lines:
TBS drivers configured for [NAME OF PLATFORM] platform.
where [NAME OF PLATFORM] is x86_r3 or x86 or 86_64
6. Build the driver. Recompiles v4l for a wide range of cards, currently about 500, will take many minutes. We're ready to build; add -j3 parameter for make command line for a faster build on a dual core machine, -j5 on a quad core machine, etc.
make
If you get -bash: make: command not found, then sudo apt-get install build-essential
7. Install driver. Existing drivers for other v4l related hardware, such as lirc could also get updated.
sudo make install
8A. Reboot
sudo reboot
OR
8B-1. Load newly installed driver
sudo modprobe -v tbs62x0fe
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko
8B-2. Check it loaded correctly
tail /var/log/syslog
You should get a message about tainting the kernel. This is fine.
kernel: tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.
Running dmesg | tail
should end with something along these lines:
[ 7330.361868] tbs62x0fe: module license 'TurboSight Proprietary' taints kernel. [ 7330.361875] Disabling lock debugging due to kernel taint
9. Check if dvb adaptor nodes are created after steps 8A or 8B, dvb adaptor nodes should now exist
ls -al /dev/dvb
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./ drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../ drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/ drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/
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)...
Check that your tuner card works
1.Check that linux tool can find TV channels
- Use the scan command line.
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file. File for Paris - Eiffel Tower : use configuration at http://www.spinics.net/lists/linux-media/msg45916.html to create the /usr/share/dvb/dvb-t/fr-Paris file.
- Other tools here at Testing your DVB device
2.Check that you can listen/see audio/video stream for your TV channel
With Me TV
- Importing TV channels configuration in Me TV
Example with terrestrial transmitters in Paris (France) (with root account)
cd scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf cp channels.conf /home/your_user_account
(with user account)
launch Me TV menu View > Channels > Add , and open the file channels.conf in /home/your_user_account
With vlc
- Importing TV channels configuration in VLC
Example with terrestrial transmitters in Paris (France) (with root account)
cd scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf cp channels.conf /home/your_user_account
(with user account)
Now open up VLC. Media (File) > Open a File (Quick Open File). Browse to channels.conf in /home/your_user_account and open. Live TV should now start playing. To see a list of channels to switch between, go to View > Playlist.
3.Recording TV channel stream
- Record TV audio/video stream with vlc
1) Choose the folder for the recording files : How can I change the folder where VLC stores its streams?
2) Enable the "Advanced controls" to get the button with red dot (recording button) : How to stream and record media in VLC / secondth part : Recording
Errors and troubleshooting
- Bad platform for compiling
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.
Did you select the correct platform in step 5 above?
- More than 2 TV card
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747
- Missing C header files installed for your Linux kernel version
During compilation:
make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.
Make sure you have the right C header files installed for your Linux kernel version.
- Missing /dev/dvb directory
Some weeks later your /dev/dvb directory has disappeared?
Perhaps your kernel was updated, and your machine rebooted.
The driver needs to be recompiled.
If you just run make, it will try to compile against the old kernel headers, so first run
make distclean
Then go back to step 6.
- After rebooting, "Unknown symbol" error
disagrees about version of symbol dvb_frontend_detach http://www.tbsdtv.com/forum/viewtopic.php?f=47&t=8195
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
- Driver download page
- TBS Official Support forum for 6280 card
- TBS6280 Product page at buydvb.net (USA) with online purchase. Not widely available online.
- TBS6280 Product page at amazon.fr (France) with online purchase. Not widely available online.
- TBS6280 Product page at amazon.co.uk (United Kingdom) with online purchase. Not widely available online.