Driver — Installer
You can use the installer script to install the driver. Simply execute ./installer.If failed please try the manual install way.
Driver — Manual Installation
Preparation
This document assumes that all prerequisite packages like kernel headers and build tools are already installed in your Linux system.
Most of the steps require root access and basic knowledge of Linux system.
Create directory, for example /root/tbs and copy the following file to it:
- driver/linux-tbs-drivers.tar.bz2 (S2API Linux driver for TBS cards)
- tools/szap-s2 (szap tool compatible with new DVB-S2 aware S2 API for Linux)
- tools/scan-s2 (scan tool compatible with new DVB-S2 aware S2 API for Linux)
- conf/astra_szap-s2.conf (example configuration file for szap-s2)
- conf/astra_scan-s2.conf (example configuration file for scan-s2)
- firmware/v4l-cx23885-avcore-01.fw (CX23885 AV core firmware, optional)
Compiling and installing the driver
- Become root
su root - Change the directory
cd /root/tbs/driver - Extract linux-tbs-drivers.tar.bz2 archive
tar xjvf linux-tbs-drivers.tar.bz2 - Go to driver package directory
cd linux-tbs-drivers -
This step is depending on your kernel version. Execute
uname -rmcheck the output either for x86 (32-bit system) or x86_64 (64-bit system) and the kernel version. According to your system properties, choose the proper command from this list:- for x86 kernel 3.x (x86 32 bit installation of kernel 3.x):
./v4l/tbs-x86_r3.sh - for x86 kernel 2.6.x (x86 32 bit installation of kernel 2.6.x):
./v4l/tbs-x86.sh - for any x86_64 kernel (x86 64 bit installation of Linux):
./v4l/tbs-x86_64.sh
- for x86 kernel 3.x (x86 32 bit installation of kernel 3.x):
-
Build and install the driver:
make && make install
After the installation
Reboot in order to load the newly installed driver shutdown -r now.
After reboot check that the newly installed driver is loaded correctly. The output differs from one chipset to another but if everything is ok, there should always be one message in dmesg which says that one or more new DVB adapters are registered. The output should look like one of next two outputs.
Command: dmesg -t | grep TBS
Output:
input: saa716x IR (TurboSight TBS 6985) as /devices/pci0000:00/0000:00:04.0/0000:02:00.0/rc/rc0/input15
rc0: saa716x IR (TurboSight TBS 6985) as /devices/pci0000:00/0000:00:04.0/0000:02:00.0/rc/rc0
TurboSight TBS 6985 Frontend Attaching...
TurboSight TBS6985 DVB-S2 card port0 MAC=00:22:ab:90:3a:10
DVB: registering adapter 0 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
TurboSight TBS 6985 Frontend Attaching...
TurboSight TBS6985 DVB-S2 card port1 MAC=00:22:ab:90:3a:11
DVB: registering adapter 1 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
TurboSight TBS 6985 Frontend Attaching...
TurboSight TBS6985 DVB-S2 card port2 MAC=00:22:ab:90:3a:12
DVB: registering adapter 2 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
TurboSight TBS 6985 Frontend Attaching...
TurboSight TBS6985 DVB-S2 card port3 MAC=00:22:ab:90:3a:13
DVB: registering adapter 3 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
Command: dmesg -t | grep cx23885
Output:
cx23885 driver version 0.0.2 loaded
cx23885[0]: subsystem: 6921:8888, board: TurboSight TBS 6921 [card=31,autodetected]
cx25840 4-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
cx25840 4-0044: firmware: requesting v4l-cx23885-avcore-01.fw
cx25840 4-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
DVB: registering new adapter (cx23885[0])
cx23885_dev_checkrevision() Hardware revision = 0xb0
input: cx23885 IR (TurboSight TBS 6921) as /devices/pci0000:00/0000:00:0c.0/0000:03:00.0/input/input5
Troubleshooting
If you encounter a problem, please check the following list.- Whenever you update your kernel you must compile the driver again.
-
After upgrading to a newer kernel version and recompiling the driver, the old modules built by yourself remain in your file system. The package manager won't remove them. As a showing example, if you upgraded to the kernel version 3.8.10 then the directories of your old kernel versions could be still there.
If you are no longer using the old kernels, it is safe to delete the media directory for each old kernel version:# ls -1 /lib/modules 3.6.6-1-ARCH 3.8.6-1-ARCH 3.8.10-1-ARCHsudo rm -rf /lib/modules/<old kernel version>/kernel/drivers/media -
If you modified the installer script and are getting warnings or error messages such as
then unpack and run the unmodified installer again.WARNING: could not find /tmp/tbs-linux-drivers_v130429/driver/linux-tbs-drivers/v4l/.tbs8921ctrl.o.cmd for ...
szap-s2
szap-s2 is a command line channel zapping (i.e. tuning) utility similar to szap but including support for S2API a.k.a. DVB API version 5, which supports DVB-S2.
Compile szap-s2
- Go to szap-s2 source code directory
cd tools/szap-s2 - Clean a previous compilation
make clean - Build szap-s2
make
Configuration
When using szap-s2, one instructs it to change the channel to one of a list of channels supplied in a configuration file.
Each line in this configuration file describes the parameters of a channel and looks like BBC:11597:v:0:22000:163:92:10050. The paramaters are:
- channel name, you can freely define it to your preference
- channel frequency, in this example it's 11597 MHz
- transponder polarization, either v (vertical) or h (horizontal)
- 0: use first LNB (if you have only one LNB, it's always 0, if you have DiSEqC switch and several LNBs connected to that switch it could be number greater than 0 and is showing which LNB to use, i.e. to which DiSEqC switch port desired LNB is connected)
- symbol rate, in this example it's 22000
- Video PID (VPID), in this example it's 163
- Audio PID, in this example it's 92
- Service ID (SID), in this example it's 10050
The above example is for the BBC World channel on Astra 19.2E satellite. A detailed list of channel parameters can be found on lyngsat.com.
Define a list of channels such as
NRJ:11538:v:0:22000:608:628:6908
TVP:10773:h:0:22000:514:670:17102
BBC:11597:v:0:22000:163:92:10050
CNN:11778:v:0:27500:165:100:28522
ARD:12109:h:0:27500:501:502:28205
BVN:12574:h:0:22000:515:96:5025
and save it in a configuration file e.g. astra_szap-s2.conf Alternatively you can use the scan tool as described later.
How to test locking to transponder with szap-s2?
Lock to DVB-S transponder:
./szap-s2 -c ../../conf/astra_szap-s2.conf -p -r -S 0 "BBC"
Lock to DVB-S2 transponder:
./szap-s2 -c ../../conf/astra_szap-s2.conf -p -r -S 1 "BBC"
Where the option
- r sets up /dev/dvb/adapterX/dvr0 for TS recording
- p adds pat and pmt to TS recording (implies -r)
- S defines the delivery system type (0=DVB-S, 1=DVB-S2)
Additionally you can specify the modulation and the error correction method.
- M defines the modulation (1=BPSK 2=QPSK 5=8PSK)
- C defines the Foward Error Correction (0=NONE 12=1/2 23=2/3 34=3/4 35=3/5 45=4/5 56=5/6 67=6/7 89=8/9 910=9/10 999=AUTO)
Example>
./szap-s2 -c ../../conf/astra_szap-s2.conf -p -r -S 0 -M 5 -C 23 "BBC"
Using mplayer to watch TV
After locking a transponder you can use mplayer in order to test the actual video. The command is using the first tunermplayer /dev/dvb/adapter0/dvr0
scan-s2
scan-s2 is a command line frequency scanning utility very similar to scan. It is not included in LinuxTV dvb-apps but complements the two frequency scanning utilities available through LinuxTV dvb-apps, dvbscan and scan.
Compile scan-s2
- Go to scan-s2 source code directory
cd tools/scan-s2 - Clean a previous compilation
make clean - Build scan-s2
make
Configuration
scan-s2 uses configuration files (see configuration file "astra_scan-s2.conf" for example) - they are simple text files and each line of them contains information about a transponder, for example:
S1 11778000 V 27500000 3/4 35 QPSK
S2 11362000 H 22000000 2/3 35 8PSK
where:
- "S1" or "S2" indicates the delivery system, i.e. either DVB-S or DVB-S2
- second parameter is the frequency, in our example respectively 11778000 kHz or 11362000 kHz
- "V" or "H" indicates that the polarization: V(ertical) or H(orizontal)
- 5th parameter is the FEC value, in our example respectively 3/4 or 2/3
- the next parameter is the Roll-off factor, "35" in our example
- and the last parameter is the modulation, in our example respectively QPSK or 8PSK
DVB-S supports only one Roll-off factor (0.35) and only one modulation (QPSK) and so for DVB-S transponders Roll-off factor is always 35 and modulation is always QPSK in the configuration file.
DVB-S2 supports several modulation like QPSK and 8PSK and 3 Roll-off factors: 0.20, 0.25, 0.35 (respectively 20, 25, 35 in the configuration file). TBS 6921 should be able to work even if AUTO is specified for Roll-off factor, but that will result in slower lock. it's always recommended to use the correct Roll-off value if you know it.
Define a list such as
S1 10773000 H 22000000 5/6 35 QPSK
S1 11778000 V 27500000 3/4 35 QPSK
S2 11362000 H 22000000 2/3 35 8PSK
and save it in a configuration file e.g. astra_scan-s2.conf.
How to scan transponder with scan-s2?
Some general notes about using TBS 6921 Dual DVB-S/S2 card in Linux:
-
TBS 6921 is single DVB-S/S2 card and there is no need to specify which frontend to use. Just use frontend 0:
# scan-s2 -a 0 ../../conf/astra_scan-s2.conf -
To increase the performance the TBS 6921 frontend is initialized only when it's necessary. After a Power On/Off the frontend will be uninitialized until it's getting locked first. This first lock will be slightly slower than usual but any subsequent locks will be faster. After the frontend has been initialized it should remain initialized when a computer restart (and not a Power On/Off) is performed.
-
TBS 6921 frontend driver provides several options:
- reporting signal in dBm instead of percents
- reporting SNR in EsNo instead of percents
For more information check the output of
modinfo tbsfe.ko. To enable/disable these options you need to create a file /etc/modprobe.d/tbsfe.conf with its content looking similar to:# cat /etc/modprobe.d/tbsfe.conf options tbsfe dbm=1 options tbsfe esno=1Use 1 to enable and 0 to disable the option. A change of these options take effect after reloading the kernel module – either use
rmmodandmodprobeor restart your computer.