TBS6284

From LinuxTVWiki
Jump to: navigation, search
TBS6284
TBS6284 PCI-E DVB-T2 Quad TV Tuner Card, as the name suggests, is a DVB-T2 PCIe Card from TBS Technologies. It supports watching or recording four different channels concurrently. Launched in October 2011, the model has been superseded by the TBS6285 and then TBS6205.

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:

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

External Links