TBS6284
TBS6284 PCI-E DVB-T2 Quad TV Tuner Card, as the name suggests, is a DVB-T2 PCIe Cards from TBS Technologies. It is a new product since October 2011, which is specially designed
for DVB T2 reception countries, such as UK, Sweden. It supports watching or recording four different channels.
Features and components
- 1 x PCI Express Interface
- Four DVB T/T2 Freeview SD& HD Channels Receiving
- DiSEqC 2.x Compliant
- Linux Support
The following chips are used:
- NXP18272 X4 tuner
- SONY CXD2820 demodulator
- SAA7160 PCIe audio and video bridge
Identification
lspci -v | grep --after-context=10 7160
Example of output for functioning card:
02:00.0 Multimedia controller [0480]: Philips Semiconductors SAA7160 [1131:7160] (rev 02) Subsystem: Device [6284:0001] 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 18 Region 0: Memory at fdd00000 (64-bit, non-prefetchable) [size=1M] Capabilities: <access denied> Kernel driver in use: SAA716x TBS Kernel modules: saa716x_tbs-dvb
The control and status settings are not always displayed, however:
03:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02) Subsystem: Device 6284:0001 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at fbb00000 (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 Kernel modules: saa716x_tbs-dvb
Example of output for driver not yet installed or loaded. Note kernel driver and modules info is missing:
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 02) Subsystem: Device 6284:0001 Flags: bus master, fast devsel, latency 0, IRQ 10 Memory at fe900000 (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 are available from the TBS website.
1. Extract the ZIP file tbs-linux-drivers_v[VERSION NUMBER].zip. As of 5 April 2015, the latest version is 150313. You may want to do this in an empty directory as this archive does not extract into a single root directory of its own.
unp -u tbs-linux-drivers_v140113.zip
2. Extract linux-tbs-drivers.tar.bz2 archive
unp linux-tbs-drivers.tar.bz2
3. Change to driver package directory
cd linux-tbs-drivers
4. Select platform architecture
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.
5. Build the driver. Recompiles v4l for a wide range of cards, currently 485. This will take many minutes.
make
If you get -bash: make: command not found, then sudo apt-get install build-essential
6. Install driver. Existing drivers for other v4l related hardware, such as lirc could also get updated.
sudo make install
7. Load newly installed driver
sudo modprobe -v tbs62x0fe
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko
8. 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
dvb adaptor nodes should now exist
ls -al /dev/dvb
drwxr-xr-x 2 root root 120 Jul 9 21:12 adapter0 drwxr-xr-x 2 root root 120 Jul 9 21:12 adapter1 drwxr-xr-x 2 root root 120 Jul 9 21:12 adapter2 drwxr-xr-x 2 root root 120 Jul 9 21:12 adapter3
Errors and troubleshooting
Compilation problems
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.
Did you select the correct platform in step 4 above?
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747
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.
Problems after kernel update
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 5.
Deleting media drivers directory to resolve conflicts
Some users have found that deleting the whole kernel media drivers folder and then compiling can resolve conflicts. If you're not sure what your kernel version is, you can find it using the command:
uname -r
Then as root or using sudo (directory structure shown is for Debian/Ubuntu):
rm -rf /lib/modules/<KERNEL VERSION>/kernel/drivers/media/
Then start the compilation and install process again.
Sample Kernel Output
[ 6.125838] tbs6928fe: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel. [ 6.125842] Disabling lock debugging due to kernel taint [ 6.206009] Registered IR keymap rc-tbs-nec [ 6.206058] input: saa716x IR (TurboSight TBS 6284) as /devices/pci0000:00/0000:00:1c.3/0000:04:00.0/rc/rc1/input5 [ 6.206081] rc1: saa716x IR (TurboSight TBS 6284) as /devices/pci0000:00/0000:00:1c.3/0000:04:00.0/rc/rc1 [ 6.206141] DVB: registering new adapter (SAA716x dvb adapter) [ 6.261725] input: MCE IR Keyboard/Mouse (saa716x) as /devices/virtual/input/input7 [ 6.277606] rc rc1: lirc_dev: driver ir-lirc-codec (saa716x) registered at minor = 1 [ 7.092446] TurboSight TBS6284 DVB-T2 card port0 MAC=ff:ff:ff:ff:ff:ff [ 7.092450] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)... [ 7.092538] DVB: registering new adapter (SAA716x dvb adapter) [ 7.140415] TurboSight TBS6284 DVB-T2 card port1 MAC=ff:ff:ff:ff:ff:ff [ 7.140418] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)... [ 7.140476] DVB: registering new adapter (SAA716x dvb adapter) [ 7.792511] TurboSight TBS6284 DVB-T2 card port2 MAC=ff:ff:ff:ff:ff:ff [ 7.792515] DVB: registering adapter 2 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)... [ 7.792595] DVB: registering new adapter (SAA716x dvb adapter) [ 7.840515] TurboSight TBS6284 DVB-T2 card port3 MAC=ff:ff:ff:ff:ff:ff [ 7.840517] DVB: registering adapter 3 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...