Difference between revisions of "TBS6280"

From LinuxTVWiki
Jump to navigation Jump to search
(Move installation instructions to TBS_PCIe_card_setup)
Line 23: Line 23:
 
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".
 
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".
   
  +
With working driver:
If the driver is NOT yet installed or loaded, then output will instead be
 
   
 
# lspci -v | grep --after-context=10 7160
 
# lspci -v | grep --after-context=10 7160
   
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)
+
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)
Subsystem: Device 6280:0001
+
Subsystem: Device 6280:0011
 
Flags: bus master, fast devsel, latency 0, IRQ 18
 
Flags: bus master, fast devsel, latency 0, IRQ 18
 
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
 
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-
+
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+
 
Capabilities: [50] Express Endpoint, MSI 00
 
Capabilities: [50] Express Endpoint, MSI 00
 
Capabilities: [74] Power Management version 2
 
Capabilities: [74] Power Management version 2
Capabilities: [80] Vendor Specific Information <?>
+
Capabilities: [80] Vendor Specific Information: Len=50 <?>
Capabilities: [100] Vendor Specific Information <?>
+
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
The final line with "Kernel driver in use:" is missing because NO driver is loaded.
 
 
==Making it Work (Open source)==
 
 
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. These instructions are taken directly from those pages.
 
 
It does not currently support the remote control, but SD and HD reception is working and appears to be stable and quicker to change channels than the official TBS version.
 
As of 2014-11-27, this driver was tested with success with [http://en.wikipedia.org/wiki/DVB-T DVB-T] transmitters in Europe. And [http://en.wikipedia.org/wiki/DVB-T2 DVB-T2] transmitters in United-Kingdom and France (only experimental DVB-T2 transmitters at Eiffel tower in Paris in France for UHD TV (AAC+HVEC)).
 
 
===Building the Open Source Driver===
 
 
These instructions are taken from [https://github.com/ljalves/linux_media/wiki/Installating here]:
 
 
git clone git://linuxtv.org/media_build.git
 
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media
 
cd media_build
 
make dir DIR=../media
 
make distclean
 
make
 
sudo make install
 
 
===Loading the Modules===
 
 
The simplest option is to reboot, but if you would rather not, execute these commands:
 
 
sudo make rmmod
 
sudo modprobe saa716x_budget int_type=1
 
 
===Identification / Check module loaded correctly ===
 
 
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".
 
 
With kernel 3.14.24 and Mageia Linux.
 
   
 
# lspci -v | grep --after-context=10 7160
 
# lspci -v | grep --after-context=10 7160
   
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)
+
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)
Subsystem: Device 6280:0011
+
Subsystem: Device 6280:0001
 
Flags: bus master, fast devsel, latency 0, IRQ 18
 
Flags: bus master, fast devsel, latency 0, IRQ 18
 
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
 
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+
+
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-
 
Capabilities: [50] Express Endpoint, MSI 00
 
Capabilities: [50] Express Endpoint, MSI 00
 
Capabilities: [74] Power Management version 2
 
Capabilities: [74] Power Management version 2
Capabilities: [80] Vendor Specific Information: Len=50 <?>
+
Capabilities: [80] Vendor Specific Information <?>
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?>
+
Capabilities: [100] Vendor Specific Information <?>
Kernel driver in use: SAA716x Budget
 
Kernel modules: saa716x_budget
 
   
You need to see the 2 following lines that show that the SAA716x driver for the TBS TV card is loaded :
+
The final line with "Kernel driver in use:" is missing because NO driver is loaded.
Kernel driver in use: SAA716x Budget
 
Kernel modules: saa716x_budget
 
 
=== Check if dvb adaptor nodes are created ===
 
 
Now, if the SAA716x driver is loaded, the 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/
 
 
# lsdvb
 
 
lsdvb: Simple utility to list PCI/PCIe DVB devices
 
Version: 0.0.4
 
Copyright (C) Manu Abraham
 
 
SAA716x Budget (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0
 
DEVICE:0 ADAPTER:0 FRONTEND:0 (Sony CXD2820R)
 
FE_OFDM Fmin=48MHz Fmax=864MHz
 
DEVICE:0 ADAPTER:1 FRONTEND:0 (Sony CXD2820R)
 
FE_OFDM Fmin=48MHz Fmax=864MHz
 
 
=== Linux kernel modules loaded ===
 
 
* DVB Tuner card part only
 
 
We can saw the driver modules needed by TBS TV card : saa716x_budget, tda18212, cxd2820r.
 
 
# lsmod
 
 
...
 
tda18212 13180 2
 
regmap_i2c 12915 1 tda18212
 
...
 
saa716x_budget 34859 0
 
tas2101 19952 1 saa716x_budget
 
cxd2820r 31562 1 saa716x_budget
 
mb86a16 27647 1 saa716x_budget
 
cx24117 25174 1 saa716x_budget
 
saa716x_core 71005 1 saa716x_budget
 
stv090x 70354 1 saa716x_budget
 
dvb_core 117590 3 saa716x_core,saa716x_budget,cxd2820r
 
i2c_mux 12896 1 tas2101
 
...
 
i2c_core 40643 19 drm,i2c_i801,i2c_mux,saa716x_core,mb86a16,saa716x_budget,regmap_i2c,tas2101,i2c_algo_bit,stv090x,cxd2820r,nvidia,v4l2_common,tveeprom,tda18212,videode
 
 
===Troubleshooting===
 
 
If you find module load errors like "module has wrong symbol version" means that there still are old modules from your previous media tree installation (usually duplicated modules in two different places).
 
 
sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*
 
 
===Upgrading Sources and Re-installing===
 
 
cd media
 
git remote update
 
git pull
 
cd ../media_build
 
git remote update
 
git pull
 
make
 
sudo make install
 
 
You should now reboot or unload/reload the modules manually.
 
 
===Supporting the Open Source Driver===
 
 
Any help that you can give to Luis or [https://github.com/crazycat69 crazycat69] (another contributor to the project) through testing, patches or getting the driver merged into the upstream code will (hopefully) be appreciated.
 
 
Luis also has a [https://github.com/ljalves/linux_media/wiki donate link] on github.
 
 
==Making it Work (Closed source)==
 
 
===Drivers===
 
 
Available [http://www.tbsdtv.com/download/#tbs6280 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 :
 
 
* v141019 (2014-10-19)
 
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v141019.zip
 
Changelog :
 
TBS6280 Linux Driver is updated to v141019., which has below updating:
 
* Fix numerous bugs from the previous release
 
 
* v140707 (2014-07-07)
 
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140707.zip
 
Changelog :
 
TBS6280 Linux Driver is updated to v140707., which has below updating:
 
* improve work of TBS 5990
 
* add support for latest hardware revisions of TBS 5220, TBS 5881, TBS 5281
 
* numerous improvements in bug fixes in drivers for TBS 6221, TBS6281, TBS 6285 and TBS 6290
 
 
* v140425 (2014-04-25)
 
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140425.zip
 
Changelog :
 
TBS6280 Linux Driver is updated to v140425., which has below updating:
 
* Fixed the TBS6928SE ID problem
 
 
* v140323 (2014-03-23)
 
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140323.zip
 
Changelog :
 
TBS6280 Linux Driver is updated to v140323., which has below updating:
 
* Add support for 5922SE
 
* Add proper support for retail version of 6922SE
 
* Add T2 lite support for latest hardware revision of 6221, 6281, 6285
 
* Add "ClearQAM" (J83B) US Digital Cable support to DVB-C driver for latest T2 lite hardware revision of 6221, 6281, 6285
 
 
* v140113 (2014-01-13)
 
http://tbsdtv.com/download/document/common/tbs-linux-drivers_v140113.zip
 
Changelog :
 
TBS6280 Linux Driver is updated to v140113, which has below updating:
 
* Improve compatibility with the upcoming Linux kernel 3.13.x
 
* Add full support (both DVBT/T2 and DVBC are supported) for TBS 5281
 
 
* 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 [http://www.tbsdtv.com/download/#tbs6280 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 '''<code>dmesg | tail</code>''' 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/
 
 
# lsdvb
 
lsdvb: Simple utility to list PCI/PCIe DVB devices
 
Version: 0.0.4
 
Copyright (C) Manu Abraham
 
SAA716x TBS (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0
 
DEVICE:0 ADAPTER:0 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend)
 
FE_OFDM Fmin=47MHz Fmax=870MHz
 
DEVICE:0 ADAPTER:1 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend)
 
FE_OFDM Fmin=47MHz Fmax=870MHz
 
 
===Identification / Check module loaded correctly ===
 
   
  +
With lspci -vvvnn (and working drivers):
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
 
# lspci -vvvnn | grep --after-context=27 7160
Line 401: Line 87:
 
Kernel modules: saa716x_tbs-dvb
 
Kernel modules: saa716x_tbs-dvb
   
  +
==Making it Work==
or with kernel 3.8.13.4 and Mageia Linux.
 
   
  +
See [[TBS PCIe card setup]]
# lspci -v | grep --after-context=10 7160
 
   
  +
== IRQ Issues ==
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)
 
  +
Subsystem: Device 6280:0011
 
  +
See [[TBS PCIe card setup#IRQ_Issues]]
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
 
   
===Sample kernel output===
+
==Sample kernel output==
   
 
#dmesg | more
 
#dmesg | more

Revision as of 15:53, 3 January 2016

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.

There is also an open source driver for TBS 6280 developed by Luis Alves.

Overview/Features

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

Components Used

  • NXP SAA7160ET (PCI Express Based Audio And Video Bridge), driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card
  • NXP (TDA) 18212/M (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, (driver included in linux kernel >= 3.0)
  • SONY CXD2820R (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, (driver included in linux kernel >= 3.0)

Identification

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

With working driver:

# 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 <?>

The final line with "Kernel driver in use:" is missing because NO driver is loaded.

With lspci -vvvnn (and working drivers):

# 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

Making it Work

See TBS PCIe card setup

IRQ Issues

See TBS PCIe card setup#IRQ_Issues

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)...

Linux kernel modules loaded

  • DVB Tuner card part only
# lsmod
dvb_core              109885  2 saa716x_core,saa716x_tbs_dvb
saa716x_tbs_dvb        57909  0 
saa716x_core           50899  1 saa716x_tbs_dvb / 
tbs6982fe              22408  1 saa716x_tbs_dvb /
tbs6680fe              17791  1 saa716x_tbs_dvb /
tbs6923fe              22408  1 saa716x_tbs_dvb /
tbs6928se              17884  1 saa716x_tbs_dvb /
tbs6991fe              17785  1 saa716x_tbs_dvb /
tbs6618fe              17791  1 saa716x_tbs_dvb /
tbs6922fe              22478  1 saa716x_tbs_dvb /
tbs6928fe              17785  1 saa716x_tbs_dvb / 
stv090x                62235  1 saa716x_tbs_dvb / 
tbs62x0fe              23069  2 
---
i2c_core               40397  15 i2c_i801,saa716x_core,tbs6618fe,tbs6680fe,tbs62x0fe,tbs6922fe,tbs6923fe,tbs6928fe,tbs6928se,tbs6982fe,tbs6991fe,saa716x_tbs_dvb,i2c_algo_bit,stv090x,nvidia
i2c_algo_bit           13413  1 saa716x_tbs_dvb
i2c_i801               22443  0

--> only TBS proprietary modules used for NXP SAA7160ET (PCI Express Based Audio And Video Bridge), NXP (TDA) 18212/M (tuner) and SONY CXD2820R (demodulator) chips. No saa716x or tda18212 or cxd_2820r kernel modules.

  • Only remote control by IRC for TV tuner card
# lsmod
rc_core                26884  10 ir_lirc_codec,ir_rc5_decoder,ir_nec_decoder,ir_sony_decoder,rc_tbs_nec,saa716x_tbs_dvb,ir_mce_kbd_decoder,ir_jvc_decoder,ir_rc6_decoder
ir_lirc_codec          12898  0 
lirc_dev               19166  1 ir_lirc_codec
ir_nec_decoder         12546  0  
rc_tbs_nec             12502  0 
ir_mce_kbd_decoder     12879  0 
ir_sony_decoder        12549  0 
ir_jvc_decoder         12546  0 
ir_rc6_decoder         12546  0 
ir_rc5_decoder         12546  0

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

Fix UDEV problems :
Device nodes and character devices
Notes for configuring udev rules for em28xx USB capture card
Linux: howto avoid video devices getting mixed up after reboot, using udev rules
About udev rules
Statically Assign /dev Nodes to Hardware Devices in Linux
/dev/video0 problem

  • 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 distclean
  • 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.
  • Build and install the modules
 make -j3
 sudo make install
  • Reboot your machine or manually remove and reload the appropriate modules (see above).

Check that your tuner card works

1.Check that linux tool can find TV channels

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.
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.
File for Paris - Eiffel Tower : use configuration at http://www.spinics.net/lists/linux-media/msg45916.html or create an up to date /usr/share/dvb/dvb-t/fr-Paris file like this :

# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs 
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx>
#
# updated by/mis a jour par : Yannick, date: 11/2014
# 
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : 
# http://pros.toutelatnt.fr/sites/default/files/dossier_technique_phase_1_v2.pdf
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : 
# http://www.recevoirlatnt.fr/professionnels/la-tnt/correspondance-canauxfrequences/
#
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : 
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, 
# selectionnez votre region sur la carte, en bas de la nouvelle page, 
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", 
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ 
#
# All french DVB-T channels / toutes les chaines de la TNT en France
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT
#
# City                       R1 R2 R3 R4 R5 R6 R7 R8 R15(ex-L8) 
# Paris - Tour Eiffel      : 35 25 22 30 28 32 42 58 33 
# Paris Est - Chennevières : 35 25 22 30 28 32 42 58 
# Paris Nord - Sannois     : 35 25 22 30 28 32 42 58 
# Paris Sud - Villebon     : 35 25 22 30 28 32 42 58
# 
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie
#
# R1 - Canal 35 -  Groupe GR1 (France 2,France 5,France Ô,LCP/Public Sénat,France 3)
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
#
# R2 - Canal 25 - Groupe NTN (D8,BFM TV,I-Télé,D17,Gulli,France 4)
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# R3 - Canal 22 - Groupe CNH (Canal+,Canal+ Cinéma,Canal+ Sport,Planète+,DataSystem R7)
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# R4 - Canal 30 - Groupe Multi4 (M6,W9,NT1,Paris Première,Arte HD)
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# R5 - Canal 28 - Groupe MR5 (TF1 HD,France 2 HD,M6 HD)
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# R6 - Canal 32 - Groupe SMR6 (TF1,NRJ 12,Eurosport,LCI,TMC,TF6,Arte)
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25,L equipe 21) 
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
#
# R8 - Canal 58 - Groupe R8 (6ter,Numero 23, RMC Decouverte)
T 770166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
#
# R15 chaînes locales uniquement sur emetteur Paris - Tour Eiffel 
# R15 (ex-L8) Canal 33 - Groupe Multi-7 (Canal 31,IDF1,France 24,BFM Business Paris)  
T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
#
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2
# uniquement sur emetteur Paris - Tour Eiffel 
# Canaux de test nommes Test UHD1 et Test UHD2 (audio en AAC et video en HEVC (H.265))
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), 
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE

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

Create a recording script

Create a recording script

External Links