https://www.linuxtv.org/wiki/api.php?action=feedcontributions&user=Yannick56&feedformat=atomLinuxTVWiki - User contributions [en]2024-03-28T10:20:19ZUser contributionsMediaWiki 1.39.6https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35540TBS5980 (aka TBS Qbox CI)2017-01-09T21:12:29Z<p>Yannick56: /* For Linux with ARM CPU in Raspberry PI */ add Check that you can redirect and play sound and video stream TV channel from your raspberry pi to a computer</p>
<hr />
<div>[[File:Qbox red.jpg|thumb|The Qbox CI switched on. The CAM module has not been inserted.]]<br />
<br />
The '''Qbox DVB-S2 CI USB2.0''' is a [[DVB-S2]] [[USB 2.0]] adapter from [[TurboSight]]. It has been on the market since early 2011, and is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
While TurboSight has no distribution network, their products can be ordered online.<br />
<br />
==Overview/features==<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Otherimages===<br />
<gallery ><br />
File:Qbox blue.jpg|Qbox with LED turned blue<br />
File:Qbox CAM.jpg|Qbox with astoncrypt CAM<br />
File:Qbox remote.jpg|Qbox remote control<br />
File:Qbox package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For Linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISHED YET. THIS WARNING MESSAGE WILL BE REMOVED WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the open-source driver=====<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
pi@raspberrypi:~ $ lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
pi@raspberrypi:~ $ dmesg<br />
...<br />
[ 114.711225] usb 1-1.5: new high-speed USB device number 5 using dwc_otg<br />
[ 114.811756] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 114.811786] usb 1-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0<br />
[ 115.907717] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 115.916121] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 115.916153] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 116.014215] usb 1-1.5: USB disconnect, device number 5<br />
[ 116.041594] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 116.042327] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 116.042425] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 116.042445] tbsqbox2ci: read eeprom failed.<br />
[ 116.042457] dvb-usb: MAC address reading failed.<br />
[ 116.121869] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 116.122418] input: IR-receiver inside an USB DVB receiver as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/input/input0<br />
[ 116.122452] dvb-usb: schedule remote query interval to 450 msecs.<br />
[ 116.122481] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 116.122690] usbcore: registered new interface driver tbsqbox2ci<br />
[ 116.174064] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 117.781941] usb 1-1.5: new high-speed USB device number 6 using dwc_otg<br />
[ 117.882880] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 117.882913] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[ 117.882930] usb 1-1.5: Product: DVBS2BOX<br />
[ 117.882946] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 117.884264] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 117.884294] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 117.884310] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 118.012008] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 118.012669] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 118.012917] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 118.226545] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx (edited by me)<br />
[ 118.358626] tbsqbox2ci: Attached stv0903!<br />
<br />
=====Check that your device can receive the satellit TV and Radio transponders=====<br />
<br />
* 1) Download the configuration file for your satellit at https://git.linuxtv.org/dtv-scan-tables.git/tree/dvb-s<br />
* 2) Choose and install the scan utility that you want to use, a list is available here : https://www.linuxtv.org/wiki/index.php/Frequency_scan#Comparison_of_DVB_frequency_scanning_commandline_utilities<br />
* 3) Launch the research, here we choose dvbv5-scan utility with Atlantic-Bird-3-5.0W satellit : <br />
dvbv5-scan ./Atlantic-Bird-3-5.0W <br />
or<br />
dvbv5-scan ./Atlantic-Bird-3-5.0W --output=Atlantic-Bird-3-5.0W.conf --output-format=ZAP<br />
The vlc media player can read and use channel configuration file with ZAP format.<br />
* 4) You should have an output like this if it works (here with DVB-T transmitter) :<br />
...<br />
Scanning frequency #2 506166000<br />
Lock (0x1f) Signal= 82.64% C/N= 0.22% UCB= 141 postBER= 0<br />
Service C8, provider NTN: reserved<br />
Service BFM TV, provider NTN: reserved<br />
Service i>TELE, provider NTN: reserved<br />
Service CSTAR, provider NTN: reserved<br />
Service Gulli, provider NTN: reserved<br />
New transponder/channel found: #14: -10<br />
New transponder/channel found: #15: -10<br />
New transponder/channel found: #16: -10<br />
New transponder/channel found: #17: -10<br />
New transponder/channel found: #18: -10<br />
New transponder/channel found: #19: -10<br />
New transponder/channel found: #20: -10<br />
...<br />
<br />
=====Check that you can redirect and play sound and video stream TV channel from your raspberry pi to a computer=====<br />
<br />
With the utility dvbstream, you can redirect the sound and video stream TV channel from your raspberry pi to a computer and<br />
then use vlc media player to read this tream.<BR><br />
More information here :<BR><br />
http://www.linuxcertif.com/man/1/dvbstream/<BR><br />
https://www.linuxtv.org/wiki/index.php/Dvbstream<br />
<br />
=====Build TvHeadEnd for Raspberry Pi with Raspian Pixel=====<br />
<br />
Requirements :<br />
sudo apt-get install libssl-dev<br />
sudo apt-get install liburiparser*<br />
sudo apt-get install libiconv-hook1 libiconv-hook-dev<br />
sudo apt-get install dvb-tools libdvbv5-0<br />
sudo apt-get install libavahi-client-dev libavahi-common-dev libdbus-1-dev<br />
sudo apt-get install libavcodec-dev<br />
<br />
Compiling and installing :<br />
$ cd<br />
$ mkdir tvheadend<br />
$ cd tvheadend/<br />
$ wget https://github.com/tvheadend/tvheadend/archive/v4.0.9.tar.gz<br />
$ mv v4.0.9.tar.gz tvheadend-v4.0.9.tar.gz<br />
$ tar xzvf tvheadend-v4.0.9.tar.gz<br />
$ cd tvheadend-4.0.9<br />
$ ./configure --prefix=/opt/tvheadend-4.0.9<br />
$ make<br />
$ sudo make install<br />
<br />
Launch and configuration :<br />
sudo /opt/tvheadend-4.0.9/bin/tvheadend -C<br />
Go to http://raspberry_pi_ip_address:9981 and configure your device http://wiki.openelec.tv/index.php/Configuring_Tvheadend<br />
<br />
===Sample kernel output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote control support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
==External links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35539TBS5980 (aka TBS Qbox CI)2017-01-09T20:49:40Z<p>Yannick56: /* For Linux with ARM CPU in Raspberry PI */ add Check that your device can receive the satellit TV and Radio transponders</p>
<hr />
<div>[[File:Qbox red.jpg|thumb|The Qbox CI switched on. The CAM module has not been inserted.]]<br />
<br />
The '''Qbox DVB-S2 CI USB2.0''' is a [[DVB-S2]] [[USB 2.0]] adapter from [[TurboSight]]. It has been on the market since early 2011, and is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
While TurboSight has no distribution network, their products can be ordered online.<br />
<br />
==Overview/features==<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Otherimages===<br />
<gallery ><br />
File:Qbox blue.jpg|Qbox with LED turned blue<br />
File:Qbox CAM.jpg|Qbox with astoncrypt CAM<br />
File:Qbox remote.jpg|Qbox remote control<br />
File:Qbox package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For Linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISHED YET. THIS WARNING MESSAGE WILL BE REMOVED WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the open-source driver=====<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
pi@raspberrypi:~ $ lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
pi@raspberrypi:~ $ dmesg<br />
...<br />
[ 114.711225] usb 1-1.5: new high-speed USB device number 5 using dwc_otg<br />
[ 114.811756] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 114.811786] usb 1-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0<br />
[ 115.907717] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 115.916121] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 115.916153] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 116.014215] usb 1-1.5: USB disconnect, device number 5<br />
[ 116.041594] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 116.042327] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 116.042425] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 116.042445] tbsqbox2ci: read eeprom failed.<br />
[ 116.042457] dvb-usb: MAC address reading failed.<br />
[ 116.121869] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 116.122418] input: IR-receiver inside an USB DVB receiver as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/input/input0<br />
[ 116.122452] dvb-usb: schedule remote query interval to 450 msecs.<br />
[ 116.122481] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 116.122690] usbcore: registered new interface driver tbsqbox2ci<br />
[ 116.174064] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 117.781941] usb 1-1.5: new high-speed USB device number 6 using dwc_otg<br />
[ 117.882880] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 117.882913] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[ 117.882930] usb 1-1.5: Product: DVBS2BOX<br />
[ 117.882946] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 117.884264] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 117.884294] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 117.884310] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 118.012008] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 118.012669] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 118.012917] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 118.226545] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx (edited by me)<br />
[ 118.358626] tbsqbox2ci: Attached stv0903!<br />
<br />
=====Check that your device can receive the satellit TV and Radio transponders=====<br />
<br />
* 1) Download the configuration file for your satellit at https://git.linuxtv.org/dtv-scan-tables.git/tree/dvb-s<br />
* 2) Choose and install the scan utility that you want to use, a list is available here : https://www.linuxtv.org/wiki/index.php/Frequency_scan#Comparison_of_DVB_frequency_scanning_commandline_utilities<br />
* 3) Launch the research, here we choose dvbv5-scan utility with Atlantic-Bird-3-5.0W satellit : <br />
dvbv5-scan ./Atlantic-Bird-3-5.0W <br />
or<br />
dvbv5-scan ./Atlantic-Bird-3-5.0W --output=Atlantic-Bird-3-5.0W.conf --output-format=ZAP<br />
The vlc media player can read and use channel configuration file with ZAP format.<br />
* 4) You should have an output like this if it works (here with DVB-T transmitter) :<br />
...<br />
Scanning frequency #2 506166000<br />
Lock (0x1f) Signal= 82.64% C/N= 0.22% UCB= 141 postBER= 0<br />
Service C8, provider NTN: reserved<br />
Service BFM TV, provider NTN: reserved<br />
Service i>TELE, provider NTN: reserved<br />
Service CSTAR, provider NTN: reserved<br />
Service Gulli, provider NTN: reserved<br />
New transponder/channel found: #14: -10<br />
New transponder/channel found: #15: -10<br />
New transponder/channel found: #16: -10<br />
New transponder/channel found: #17: -10<br />
New transponder/channel found: #18: -10<br />
New transponder/channel found: #19: -10<br />
New transponder/channel found: #20: -10<br />
...<br />
<br />
=====Build TvHeadEnd for Raspberry Pi with Raspian Pixel=====<br />
<br />
Requirements :<br />
sudo apt-get install libssl-dev<br />
sudo apt-get install liburiparser*<br />
sudo apt-get install libiconv-hook1 libiconv-hook-dev<br />
sudo apt-get install dvb-tools libdvbv5-0<br />
sudo apt-get install libavahi-client-dev libavahi-common-dev libdbus-1-dev<br />
sudo apt-get install libavcodec-dev<br />
<br />
Compiling and installing :<br />
$ cd<br />
$ mkdir tvheadend<br />
$ cd tvheadend/<br />
$ wget https://github.com/tvheadend/tvheadend/archive/v4.0.9.tar.gz<br />
$ mv v4.0.9.tar.gz tvheadend-v4.0.9.tar.gz<br />
$ tar xzvf tvheadend-v4.0.9.tar.gz<br />
$ cd tvheadend-4.0.9<br />
$ ./configure --prefix=/opt/tvheadend-4.0.9<br />
$ make<br />
$ sudo make install<br />
<br />
Launch and configuration :<br />
sudo /opt/tvheadend-4.0.9/bin/tvheadend -C<br />
Go to http://raspberry_pi_ip_address:9981 and configure your device http://wiki.openelec.tv/index.php/Configuring_Tvheadend<br />
<br />
===Sample kernel output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote control support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
==External links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35519TBS5980 (aka TBS Qbox CI)2016-12-28T13:03:11Z<p>Yannick56: /* For Linux with ARM CPU in Raspberry PI */</p>
<hr />
<div>[[File:Qbox red.jpg|thumb|The Qbox CI switched on. The CAM module has not been inserted.]]<br />
<br />
The '''Qbox DVB-S2 CI USB2.0''' is a [[DVB-S2]] [[USB 2.0]] adapter from [[TurboSight]]. It has been on the market since early 2011, and is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
While TurboSight has no distribution network, their products can be ordered online.<br />
<br />
==Overview/features==<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Otherimages===<br />
<gallery ><br />
File:Qbox blue.jpg|Qbox with LED turned blue<br />
File:Qbox CAM.jpg|Qbox with astoncrypt CAM<br />
File:Qbox remote.jpg|Qbox remote control<br />
File:Qbox package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For Linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISHED YET. THIS WARNING MESSAGE WILL BE REMOVED WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the open-source driver=====<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
pi@raspberrypi:~ $ lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
pi@raspberrypi:~ $ dmesg<br />
...<br />
[ 114.711225] usb 1-1.5: new high-speed USB device number 5 using dwc_otg<br />
[ 114.811756] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 114.811786] usb 1-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0<br />
[ 115.907717] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 115.916121] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 115.916153] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 116.014215] usb 1-1.5: USB disconnect, device number 5<br />
[ 116.041594] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 116.042327] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 116.042425] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 116.042445] tbsqbox2ci: read eeprom failed.<br />
[ 116.042457] dvb-usb: MAC address reading failed.<br />
[ 116.121869] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 116.122418] input: IR-receiver inside an USB DVB receiver as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/input/input0<br />
[ 116.122452] dvb-usb: schedule remote query interval to 450 msecs.<br />
[ 116.122481] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 116.122690] usbcore: registered new interface driver tbsqbox2ci<br />
[ 116.174064] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 117.781941] usb 1-1.5: new high-speed USB device number 6 using dwc_otg<br />
[ 117.882880] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 117.882913] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[ 117.882930] usb 1-1.5: Product: DVBS2BOX<br />
[ 117.882946] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 117.884264] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 117.884294] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 117.884310] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 118.012008] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 118.012669] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 118.012917] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 118.226545] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx (edited by me)<br />
[ 118.358626] tbsqbox2ci: Attached stv0903!<br />
<br />
=====Build TvHeadEnd for Raspberry Pi with Raspian Pixel=====<br />
<br />
Requirements :<br />
sudo apt-get install libssl-dev<br />
sudo apt-get install liburiparser*<br />
sudo apt-get install libiconv-hook1 libiconv-hook-dev<br />
sudo apt-get install dvb-tools libdvbv5-0<br />
sudo apt-get install libavahi-client-dev libavahi-common-dev libdbus-1-dev<br />
sudo apt-get install libavcodec-dev<br />
<br />
Compiling and installing :<br />
$ cd<br />
$ mkdir tvheadend<br />
$ cd tvheadend/<br />
$ wget https://github.com/tvheadend/tvheadend/archive/v4.0.9.tar.gz<br />
$ mv v4.0.9.tar.gz tvheadend-v4.0.9.tar.gz<br />
$ tar xzvf tvheadend-v4.0.9.tar.gz<br />
$ cd tvheadend-4.0.9<br />
$ ./configure --prefix=/opt/tvheadend-4.0.9<br />
$ make<br />
$ sudo make install<br />
<br />
Launch and configuration :<br />
sudo /opt/tvheadend-4.0.9/bin/tvheadend -C<br />
Go to http://raspberry_pi_ip_address:9981 and configure your device http://wiki.openelec.tv/index.php/Configuring_Tvheadend<br />
<br />
===Sample kernel output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote control support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
==External links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35518TBS5980 (aka TBS Qbox CI)2016-12-28T10:53:23Z<p>Yannick56: /* Building the open-source driver */ add dmesg outpout for raspberry pi</p>
<hr />
<div>[[File:Qbox red.jpg|thumb|The Qbox CI switched on. The CAM module has not been inserted.]]<br />
<br />
The '''Qbox DVB-S2 CI USB2.0''' is a [[DVB-S2]] [[USB 2.0]] adapter from [[TurboSight]]. It has been on the market since early 2011, and is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
While TurboSight has no distribution network, their products can be ordered online.<br />
<br />
==Overview/features==<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Otherimages===<br />
<gallery ><br />
File:Qbox blue.jpg|Qbox with LED turned blue<br />
File:Qbox CAM.jpg|Qbox with astoncrypt CAM<br />
File:Qbox remote.jpg|Qbox remote control<br />
File:Qbox package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For Linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISHED YET. THIS WARNING MESSAGE WILL BE REMOVED WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the open-source driver=====<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
pi@raspberrypi:~ $ lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
pi@raspberrypi:~ $ dmesg<br />
...<br />
[ 114.711225] usb 1-1.5: new high-speed USB device number 5 using dwc_otg<br />
[ 114.811756] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 114.811786] usb 1-1.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0<br />
[ 115.907717] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 115.916121] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 115.916153] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 116.014215] usb 1-1.5: USB disconnect, device number 5<br />
[ 116.041594] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 116.042327] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 116.042425] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 116.042445] tbsqbox2ci: read eeprom failed.<br />
[ 116.042457] dvb-usb: MAC address reading failed.<br />
[ 116.121869] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 116.122418] input: IR-receiver inside an USB DVB receiver as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/input/input0<br />
[ 116.122452] dvb-usb: schedule remote query interval to 450 msecs.<br />
[ 116.122481] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 116.122690] usbcore: registered new interface driver tbsqbox2ci<br />
[ 116.174064] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 117.781941] usb 1-1.5: new high-speed USB device number 6 using dwc_otg<br />
[ 117.882880] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 117.882913] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[ 117.882930] usb 1-1.5: Product: DVBS2BOX<br />
[ 117.882946] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 117.884264] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 117.884294] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 117.884310] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 118.012008] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 118.012669] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 118.012917] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 118.226545] dvb-usb: MAC address: 00:22:ab:c0:34:5f<br />
[ 118.358626] tbsqbox2ci: Attached stv0903!<br />
<br />
=====Build TvHeadEnd for Raspberry Pi with Raspian Pixel=====<br />
<br />
Requirements :<br />
sudo apt-get install libssl-dev<br />
sudo apt-get install liburiparser*<br />
sudo apt-get install libiconv-hook1 libiconv-hook-dev<br />
sudo apt-get install dvb-tools libdvbv5-0<br />
sudo apt-get install libavahi-client-dev libavahi-common-dev libdbus-1-dev<br />
sudo apt-get install libavcodec-dev<br />
<br />
Compiling and installing :<br />
$ cd<br />
$ mkdir tvheadend<br />
$ cd tvheadend/<br />
$ wget https://github.com/tvheadend/tvheadend/archive/v4.0.9.tar.gz<br />
$ mv v4.0.9.tar.gz tvheadend-v4.0.9.tar.gz<br />
$ tar xzvf tvheadend-v4.0.9.tar.gz<br />
$ cd tvheadend-4.0.9<br />
$ ./configure --prefix=/opt/tvheadend-4.0.9<br />
$ make<br />
$ sudo make install<br />
<br />
Launch and configuration :<br />
sudo /opt/tvheadend-4.0.9/bin/tvheadend -C<br />
Go to http://raspberry_pi_ip_address:9981 and configure your device http://wiki.openelec.tv/index.php/Configuring_Tvheadend<br />
<br />
===Sample kernel output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote control support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
==External links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35515TBS5980 (aka TBS Qbox CI)2016-12-28T00:36:34Z<p>Yannick56: /* For Linux with ARM CPU in Raspberry PI */ add tvheadend install and config for rpi</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
=====Build TvHeadEnd for Raspberry Pi with Raspian Pixel=====<br />
<br />
Requirements :<br />
sudo apt-get install libssl-dev<br />
sudo apt-get install liburiparser*<br />
sudo apt-get install libiconv-hook1 libiconv-hook-dev<br />
sudo apt-get install dvb-tools libdvbv5-0<br />
sudo apt-get install libavahi-client-dev libavahi-common-dev libdbus-1-dev<br />
sudo apt-get install libavcodec-dev<br />
<br />
Compiling and installing :<br />
$ cd<br />
$ mkdir tvheadend<br />
$ cd tvheadend/<br />
$ wget https://github.com/tvheadend/tvheadend/archive/v4.0.9.tar.gz<br />
$ mv v4.0.9.tar.gz tvheadend-v4.0.9.tar.gz<br />
$ tar xzvf tvheadend-v4.0.9.tar.gz<br />
$ cd tvheadend-4.0.9<br />
$ ./configure --prefix=/opt/tvheadend-4.0.9<br />
$ make<br />
$ sudo make install<br />
<br />
Launch and configuration :<br />
sudo /opt/tvheadend-4.0.9/bin/tvheadend -C<br />
Go to http://raspberry_pi_ip_address:9981 and configure your device http://wiki.openelec.tv/index.php/Configuring_Tvheadend<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35514TBS5980 (aka TBS Qbox CI)2016-12-27T23:31:01Z<p>Yannick56: /* Building the Open Source Driver */</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
lsusb<br />
Bus 001 Device 006: ID 734c:5980 TBS Technologies China<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35513TBS5980 (aka TBS Qbox CI)2016-12-27T23:28:14Z<p>Yannick56: /* Building the Open Source Driver */ update and add more information</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
'''OPTIONNAL'''<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
'''MANDATORY'''<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
Now, there is a new folder : /lib/modules/4.4.39-v7<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
cp -p /boot/kernel7.img /boot/kernel7.img.OK.ORI<br />
cp -p /boot/kernel.img /boot/kernel.img.OK.ORI<br />
<br />
cp arch/arm/boot/zImage /boot/kernel7tbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kernel7tbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsiptv.com/download/tbs5980/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
pi@raspberrypi:~ $ dmesg | grep 5980<br />
[ 4.583620] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 7.642915] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[ 9.633822] usb 1-1.5: New USB device found, idVendor=734c, idProduct=5980<br />
[ 9.634891] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
<br />
pi@raspberrypi:~ $ dmesg | grep TBS<br />
[ 7.640406] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 7.642939] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 7.763212] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 7.764051] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 7.833526] dvb-usb: no frontend was attached by 'TBS Qbox DVB-S2 CI USB2.0'<br />
[ 7.834113] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[ 7.896372] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully deinitialized and disconnected.<br />
[ 9.633892] usb 1-1.5: Manufacturer: TBS-Tech<br />
[ 9.634867] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[ 9.634903] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[ 9.753254] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[ 9.754186] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[ 10.175674] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35512TBS5980 (aka TBS Qbox CI)2016-12-27T23:00:40Z<p>Yannick56: /* Building the Open Source Driver */ add testing information</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Check that the TBS5980 kernel modules are build :<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-tbsqbox2ci.ko<br />
ls -l /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/dvb-usb-technisat-usb2.ko<br />
<br />
* Check that the the TBS5980 kernel modules are installed :<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/dvb-frontends/st*<br />
ls -l /lib/modules/4.4.39-v7/kernel/drivers/media/usb/dvb-usb/dvb-usb-t*<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=35511TBS5980 (aka TBS Qbox CI)2016-12-27T22:38:37Z<p>Yannick56: /* Building the Open Source Driver */ update information , delete the 3 patchs that are not required now</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 2.1.0 Full and with the Release date: 2016-11-29 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.38-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.38+ /lib/modules/4.4.38+.bak<br />
mv /lib/modules/4.4.38-v7+ /lib/modules/4.4.38-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5922&diff=34872TBS59222016-06-07T11:44:04Z<p>Yannick56: /* Components Used */ add internal link</p>
<hr />
<div><br />
===Overview/Features===<br />
<br />
* USB 2.0 interface<br />
* Transponders blind scan (both for DVB-S2 and DVB-S)<br />
* Input Level: -69~23dBm<br />
* DVB-S2/S 8PSK QPSK Demodulator <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* [[Cypress EZ-USB FX2]] CY7C68013 (USB 2.0 interface chipset)<br />
<br />
===Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs5922-2.jpg|TBS5922-Front side<br />
Image:Tbs5922-3.jpg|TV BOX with remote control<br />
Image:Tbs5922-4.jpg|Package<br />
<br />
</gallery><br />
<br />
===Identification===<br />
<br />
'''Device Descriptor:<br />
'''<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5922 <br />
bcdDevice 0.01<br />
iManufacturer 1 <br />
iProduct 2 <br />
iSerial 3 <br />
bNumConfigurations 1<br />
<br />
'''Configuration Descriptor:'''<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
<br />
'''Interface Descriptor:'''<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0<br />
<br />
''' Endpoint Descriptor:'''<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
<br />
===Sample Kernel Output===<br />
<br />
[ 101.332118] usb 1-3: new high speed USB device number 4 using ehci_hcd<br />
[ 101.923482] IR NEC protocol handler initialized<br />
[ 101.936148] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 101.944973] IR RC5(x) protocol handler initialized<br />
[ 101.958845] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 101.962774] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 101.965968] IR RC6 protocol handler initialized<br />
[ 101.979603] IR JVC protocol handler initialized<br />
[ 101.983034] IR Sony protocol handler initialized<br />
[ 101.989563] usb 1-3: USB disconnect, device number 4<br />
[ 101.994237] IR MCE Keyboard/mouse protocol handler initialized<br />
[ 102.002828] lirc_dev: IR Remote Control driver registered, major 250 <br />
[ 102.012793] IR LIRC bridge handler initialized<br />
[ 102.092115] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 102.092248] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 102.092287] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 102.092295] tbsqbox22: read eeprom failed<br />
[ 102.092300] dvb-usb: MAC address reading failed.<br />
[ 102.122649] tbs5922fe: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 102.122659] Disabling lock debugging due to kernel taint<br />
[ 102.424116] TurboSight TBS 5922 Frontend Attaching...<br />
[ 102.448115] TurboSight TBS 5922 Frontend:<br />
[ 102.448120] tbs5922fe - attach failed<br />
[ 102.448138] dvb-usb: no frontend was attached by 'TBS QBOX22 DVBS2 USB2.0'<br />
[ 102.448302] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input5<br />
[ 102.448437] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 102.448445] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 102.448511] usbcore: registered new interface driver tbsqbox22<br />
[ 102.476728] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully deinitialized and disconnected.<br />
[ 103.744109] usb 1-3: new high speed USB device number 5 using ehci_hcd<br />
[ 103.878200] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 103.884744] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 103.889749] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 104.012112] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 104.012236] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 104.012426] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 104.140947] dvb-usb: MAC address: 00:22:ab:c0:1e:9c<br />
[ 104.444093] TurboSight TBS 5922 Frontend Attaching...<br />
[ 104.510125] QBOX22: TBS5922FE attached.<br />
[ 104.527328] DVB: registering adapter 0 frontend 0 (TurboSight TBS 5922 DVBS/S2 frontend)...<br />
[ 104.527850] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input6<br />
[ 104.527941] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 104.527950] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 194.612189] r8169 0000:03:00.0: eth0: link up<br />
<br />
===Making it Work===<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works.<br />
<br />
====Firmware====<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5922.fw. Just install it in /lib/firmware.<br />
<br />
====Drivers====<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5922 driver. Latest update: 05/04/2016. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]] and [[Turbosight driver building]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : SHOULD WORKS ONLY WITH TBS 5922 AND NOT WITH TBS 5922SE''' <br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
For compiling and installing, follow the instructions at http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3641679 .<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
===External Links===<br />
* [http://www.buydvb.net Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Where to buy]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5922&diff=34871TBS59222016-06-07T11:40:00Z<p>Yannick56: /* For linux with x86 or X86-64 CPU */</p>
<hr />
<div><br />
===Overview/Features===<br />
<br />
* USB 2.0 interface<br />
* Transponders blind scan (both for DVB-S2 and DVB-S)<br />
* Input Level: -69~23dBm<br />
* DVB-S2/S 8PSK QPSK Demodulator <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* CY7C68013 (usb bridge)<br />
<br />
===Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs5922-2.jpg|TBS5922-Front side<br />
Image:Tbs5922-3.jpg|TV BOX with remote control<br />
Image:Tbs5922-4.jpg|Package<br />
<br />
</gallery><br />
<br />
===Identification===<br />
<br />
'''Device Descriptor:<br />
'''<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5922 <br />
bcdDevice 0.01<br />
iManufacturer 1 <br />
iProduct 2 <br />
iSerial 3 <br />
bNumConfigurations 1<br />
<br />
'''Configuration Descriptor:'''<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
<br />
'''Interface Descriptor:'''<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0<br />
<br />
''' Endpoint Descriptor:'''<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
<br />
===Sample Kernel Output===<br />
<br />
[ 101.332118] usb 1-3: new high speed USB device number 4 using ehci_hcd<br />
[ 101.923482] IR NEC protocol handler initialized<br />
[ 101.936148] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 101.944973] IR RC5(x) protocol handler initialized<br />
[ 101.958845] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 101.962774] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 101.965968] IR RC6 protocol handler initialized<br />
[ 101.979603] IR JVC protocol handler initialized<br />
[ 101.983034] IR Sony protocol handler initialized<br />
[ 101.989563] usb 1-3: USB disconnect, device number 4<br />
[ 101.994237] IR MCE Keyboard/mouse protocol handler initialized<br />
[ 102.002828] lirc_dev: IR Remote Control driver registered, major 250 <br />
[ 102.012793] IR LIRC bridge handler initialized<br />
[ 102.092115] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 102.092248] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 102.092287] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 102.092295] tbsqbox22: read eeprom failed<br />
[ 102.092300] dvb-usb: MAC address reading failed.<br />
[ 102.122649] tbs5922fe: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 102.122659] Disabling lock debugging due to kernel taint<br />
[ 102.424116] TurboSight TBS 5922 Frontend Attaching...<br />
[ 102.448115] TurboSight TBS 5922 Frontend:<br />
[ 102.448120] tbs5922fe - attach failed<br />
[ 102.448138] dvb-usb: no frontend was attached by 'TBS QBOX22 DVBS2 USB2.0'<br />
[ 102.448302] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input5<br />
[ 102.448437] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 102.448445] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 102.448511] usbcore: registered new interface driver tbsqbox22<br />
[ 102.476728] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully deinitialized and disconnected.<br />
[ 103.744109] usb 1-3: new high speed USB device number 5 using ehci_hcd<br />
[ 103.878200] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 103.884744] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 103.889749] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 104.012112] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 104.012236] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 104.012426] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 104.140947] dvb-usb: MAC address: 00:22:ab:c0:1e:9c<br />
[ 104.444093] TurboSight TBS 5922 Frontend Attaching...<br />
[ 104.510125] QBOX22: TBS5922FE attached.<br />
[ 104.527328] DVB: registering adapter 0 frontend 0 (TurboSight TBS 5922 DVBS/S2 frontend)...<br />
[ 104.527850] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input6<br />
[ 104.527941] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 104.527950] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 194.612189] r8169 0000:03:00.0: eth0: link up<br />
<br />
===Making it Work===<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works.<br />
<br />
====Firmware====<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5922.fw. Just install it in /lib/firmware.<br />
<br />
====Drivers====<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5922 driver. Latest update: 05/04/2016. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]] and [[Turbosight driver building]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : SHOULD WORKS ONLY WITH TBS 5922 AND NOT WITH TBS 5922SE''' <br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
For compiling and installing, follow the instructions at http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3641679 .<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
===External Links===<br />
* [http://www.buydvb.net Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Where to buy]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34870TBS5980 (aka TBS Qbox CI)2016-06-07T11:37:16Z<p>Yannick56: /* Building the Open Source Driver */ add information about video codec in raspberry pi</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4.More information about video codec in Raspberry Pi : [https://www.raspberrypi.org/blog/new-video-features/ New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support] <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34869TBS5980 (aka TBS Qbox CI)2016-06-07T11:28:42Z<p>Yannick56: /* Building the Open Source Driver */ add information for raspberry pi 1 owners</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
Note : the Pi 1 is maybe more than likely underpowered for this project and maybe the Pi1 probably won't display video properly.<br />
But you can try all the installation steps in this page and verify it. Workaround : if it is to slow with [https://en.wikipedia.org/wiki/Standard-definition_television SD video] in mpeg-2, you can try to buy [http://www.raspberrypi.com/mpeg-2-license-key/ a mpeg-2 licence] to use the GPU hardware to process the video and not the CPU.Mybe it help. This workaround does not work with TV channel with HD video in mpeg-4. <br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5922&diff=34868TBS59222016-06-07T11:13:36Z<p>Yannick56: add more information about driver</p>
<hr />
<div><br />
===Overview/Features===<br />
<br />
* USB 2.0 interface<br />
* Transponders blind scan (both for DVB-S2 and DVB-S)<br />
* Input Level: -69~23dBm<br />
* DVB-S2/S 8PSK QPSK Demodulator <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* CY7C68013 (usb bridge)<br />
<br />
===Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs5922-2.jpg|TBS5922-Front side<br />
Image:Tbs5922-3.jpg|TV BOX with remote control<br />
Image:Tbs5922-4.jpg|Package<br />
<br />
</gallery><br />
<br />
===Identification===<br />
<br />
'''Device Descriptor:<br />
'''<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5922 <br />
bcdDevice 0.01<br />
iManufacturer 1 <br />
iProduct 2 <br />
iSerial 3 <br />
bNumConfigurations 1<br />
<br />
'''Configuration Descriptor:'''<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
<br />
'''Interface Descriptor:'''<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0<br />
<br />
''' Endpoint Descriptor:'''<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
<br />
===Sample Kernel Output===<br />
<br />
[ 101.332118] usb 1-3: new high speed USB device number 4 using ehci_hcd<br />
[ 101.923482] IR NEC protocol handler initialized<br />
[ 101.936148] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 101.944973] IR RC5(x) protocol handler initialized<br />
[ 101.958845] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 101.962774] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 101.965968] IR RC6 protocol handler initialized<br />
[ 101.979603] IR JVC protocol handler initialized<br />
[ 101.983034] IR Sony protocol handler initialized<br />
[ 101.989563] usb 1-3: USB disconnect, device number 4<br />
[ 101.994237] IR MCE Keyboard/mouse protocol handler initialized<br />
[ 102.002828] lirc_dev: IR Remote Control driver registered, major 250 <br />
[ 102.012793] IR LIRC bridge handler initialized<br />
[ 102.092115] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 102.092248] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 102.092287] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 102.092295] tbsqbox22: read eeprom failed<br />
[ 102.092300] dvb-usb: MAC address reading failed.<br />
[ 102.122649] tbs5922fe: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 102.122659] Disabling lock debugging due to kernel taint<br />
[ 102.424116] TurboSight TBS 5922 Frontend Attaching...<br />
[ 102.448115] TurboSight TBS 5922 Frontend:<br />
[ 102.448120] tbs5922fe - attach failed<br />
[ 102.448138] dvb-usb: no frontend was attached by 'TBS QBOX22 DVBS2 USB2.0'<br />
[ 102.448302] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input5<br />
[ 102.448437] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 102.448445] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 102.448511] usbcore: registered new interface driver tbsqbox22<br />
[ 102.476728] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully deinitialized and disconnected.<br />
[ 103.744109] usb 1-3: new high speed USB device number 5 using ehci_hcd<br />
[ 103.878200] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in cold state, will try to load a firmware<br />
[ 103.884744] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5922.fw'<br />
[ 103.889749] tbsqbox22: start downloading TBSQBOX firmware<br />
[ 104.012112] dvb-usb: found a 'TBS QBOX22 DVBS2 USB2.0' in warm state.<br />
[ 104.012236] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[ 104.012426] DVB: registering new adapter (TBS QBOX22 DVBS2 USB2.0)<br />
[ 104.140947] dvb-usb: MAC address: 00:22:ab:c0:1e:9c<br />
[ 104.444093] TurboSight TBS 5922 Frontend Attaching...<br />
[ 104.510125] QBOX22: TBS5922FE attached.<br />
[ 104.527328] DVB: registering adapter 0 frontend 0 (TurboSight TBS 5922 DVBS/S2 frontend)...<br />
[ 104.527850] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-3/input/input6<br />
[ 104.527941] dvb-usb: schedule remote query interval to 150 msecs.<br />
[ 104.527950] dvb-usb: TBS QBOX22 DVBS2 USB2.0 successfully initialized and connected.<br />
[ 194.612189] r8169 0000:03:00.0: eth0: link up<br />
<br />
===Making it Work===<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works.<br />
<br />
====Firmware====<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5922.fw. Just install it in /lib/firmware.<br />
<br />
====Drivers====<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5925 driver. Latest update: 05/04/2016. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]] and [[Turbosight driver building]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : SHOULD WORKS ONLY WITH TBS 5922 AND NOT WITH TBS 5922SE''' <br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
For compiling and installing, follow the instructions at http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3641679 .<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
===External Links===<br />
* [http://www.buydvb.net Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Where to buy]<br />
<br />
[[Category:DVB-S2 USB Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34867TBS5980 (aka TBS Qbox CI)2016-06-06T19:33:04Z<p>Yannick56: /* Building the Open Source Driver */</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34866TBS5980 (aka TBS Qbox CI)2016-06-06T19:32:27Z<p>Yannick56: /* Building the Open Source Driver */ add more information to fix IR receiver problem</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
In the /etc/modprobe.d/dvbir.conf file if this file exist or else in the /etc/modprobe.d/options file, add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34865TBS5980 (aka TBS Qbox CI)2016-06-06T19:25:58Z<p>Yannick56: /* Building the Open Source Driver */</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
shutdown -r now<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34864TBS5980 (aka TBS Qbox CI)2016-06-06T19:22:38Z<p>Yannick56: /* Building the Open Source Driver */</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch]. <BR><br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8. <BR><br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34863TBS5980 (aka TBS Qbox CI)2016-06-06T19:21:46Z<p>Yannick56: /* Building the Open Source Driver */ add save file and cleaning files, add compilation parameter for raspberry pi 1</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch].<br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8.<br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
.<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
. <br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
.<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Remove the old modules if they exist so the new ones will get made<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv6110x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stv090x.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends/stb6100.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/tbs-qbox2ci.mod.c<br />
.<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.ko<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.o<br />
rm /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/technisat-usb2.mod.c<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* If exist, back up the .config file<br />
cp /usr/src/linux-rpi-4.4.y/.config /usr/src/linux-rpi-4.4.y/.config.tbs2ci.bak<br />
<br />
* Compiling for Raspberry PI 1 with the Raspberry Pi 1 (or Compute Module) Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel<br />
make bcmrpi_defconfig<br />
make<br />
<br />
* Compiling for Raspberry PI 2 or 3 with the Raspberry Pi 2/3 Default Build Configuration<br />
cd /usr/src/linux-rpi-4.4.y<br />
export KERNEL=kernel7<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
* Reboot<br />
<br />
* Check information about TBS 5980 in kernel log :<br />
dmesg | grep 5980<br />
dmesg | grep TBS<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34862TBS5980 (aka TBS Qbox CI)2016-06-06T19:07:20Z<p>Yannick56: /* Building the Open Source Driver */ add the 3 patchs to apply on the source code</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch].<br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8.<br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Patching the kernel source code :<br />
<br />
There are 3 patchs to apply to fix several problems.<br />
<br />
'''Patch 1''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/dvb-frontends/stv090x.o<br />
drivers/media/dvb-frontends/stv090x.c:3738:54: error: unknown type name ‘fe_sec_tone_mode_t’<br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:3828:63: error: unknown type name ‘fe_sec_mini_cmd_t’<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4920:24: error: ‘stv090x_send_diseqc_burst’ undeclared here (not in a function)<br />
.diseqc_send_burst = stv090x_send_diseqc_burst,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c:4922:16: error: ‘stv090x_set_tone’ undeclared here (not in a function)<br />
.set_tone = stv090x_set_tone,<br />
^<br />
drivers/media/dvb-frontends/stv090x.c: In function ‘stv090x_attach’:<br />
drivers/media/dvb-frontends/stv090x.c:4991:3: error: implicit declaration of function ‘stv090x_send_diseqc_burst’ [-Werror=implicit-function-declaration]<br />
stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);<br />
^<br />
cc1: some warnings being treated as errors<br />
scripts/Makefile.build:264: recipe for target 'drivers/media/dvb-frontends/stv090x.o' failed<br />
<br />
In the file media/drivers/media/dvb-frontends/stv090x.c , you must replace <br />
the line 3735 <br />
static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
by<br />
static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
and the line 3825<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
by<br />
static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
<br />
or if you to use the command patch :<br />
# diff -Naur /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c drivers/media/dvb-frontends/stv090x.c<br />
--- /opt/raspberry-kernel/media/drivers/media/dvb-frontends/stv090x.c 2016-06-03 21:27:46.089160190 +0200<br />
+++ drivers/media/dvb-frontends/stv090x.c 2016-06-06 20:50:22.982381627 +0200<br />
@@ -3735,7 +3735,7 @@<br />
return 0;<br />
}<br />
<br />
-static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)<br />
+static int stv090x_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg;<br />
@@ -3825,7 +3825,7 @@<br />
return -1;<br />
}<br />
<br />
-static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst)<br />
+static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst)<br />
{<br />
struct stv090x_state *state = fe->demodulator_priv;<br />
u32 reg, idle = 0, fifo_full = 1;<br />
<br />
<br />
'''Patch 2''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/technisat-usb2.o<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:456:3: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c: In function ‘technisat_usb2_frontend_attach’:<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: error: ‘technisat_usb2_set_voltage’ undeclared (first use in this function)<br />
a->fe_adap[0].fe->ops.set_voltage = technisat_usb2_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/technisat-usb2.c:554:40: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/technisat-usb2.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/technisat-usb2.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/technisat-usb2.c , you must replace <br />
the line 456<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
'''Patch 3''' :<br />
To avoid the following error :<br />
CC [M] drivers/media/usb/dvb-usb/tbs-qbox2ci.o<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: error: unknown field ‘set_lock_led’ specified in initializer<br />
.set_lock_led = tbsqbox2ci_led_ctrl,<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: initialization from incompatible pointer type<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:504:2: warning: (near initialization for ‘earda_config.tuner_set_bbgain’)<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:559:7: error: unknown type name ‘fe_sec_voltage_t’<br />
fe_sec_voltage_t voltage)<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c: In function ‘tbsqbox2ci_frontend_attach’:<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: error: ‘tbsqbox2ci_set_voltage’ undeclared (first use in this function)<br />
d->fe_adap->fe->ops.set_voltage = tbsqbox2ci_set_voltage;<br />
^<br />
drivers/media/usb/dvb-usb/tbs-qbox2ci.c:591:38: note: each undeclared identifier is reported only once for each function it appears in<br />
scripts/Makefile.build:258: recipe for target 'drivers/media/usb/dvb-usb/tbs-qbox2ci.o' failed<br />
make[4]: *** [drivers/media/usb/dvb-usb/tbs-qbox2ci.o] Error 1<br />
scripts/Makefile.build:403: recipe for target 'drivers/media/usb/dvb-usb' failed<br />
<br />
In the file drivers/media/usb/dvb-usb/tbs-qbox2ci.c , you must replace <br />
the line 559<br />
fe_sec_voltage_t voltage)<br />
by<br />
enum fe_sec_voltage voltage)<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* Compiling for Raspberry PI 2 or 3 :<br />
cd /usr/src/linux-rpi-4.4.y<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34861TBS5980 (aka TBS Qbox CI)2016-06-06T18:51:31Z<p>Yannick56: /* Drivers */</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch].<br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8.<br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Patching the kernel source code :<br />
TO DO<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* Compiling for Raspberry PI 2 or 3 :<br />
cd /usr/src/linux-rpi-4.4.y<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34860TBS5980 (aka TBS Qbox CI)2016-06-06T11:18:42Z<p>Yannick56: /* Building the Open Source Driver */ add more steps for compiling</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== A) For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== B) For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+<br />
Note the major and minor kernel release number, here 4.4. <br />
<br />
* Update the package list available in distro repositories and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo apt-get install git<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
* Get the Linux kernel sources for Raspbian and then next the open source TBS driver<br />
Note you must get the kernel sources for raspberry pi with the same release number than the release number in the output of the previously used uname command, here 4.4 for the file rpi-4.4.y.tar.gz. <br />
sudo su - root<br />
ls /etc/modprobe.d/<br />
fbdev-blacklist.conf ipv6.conf libpisock9.conf raspi-blacklist.conf<br />
cd /usr/src<br />
wget https://github.com/raspberrypi/linux/archive/rpi-4.4.y.tar.gz<br />
tar xzvf rpi-4.4.y.tar.gz<br />
ls /usr/src/linux-rpi-4.4.y<br />
cd /root<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
<br />
* Copy driver sources into kernel source directories<br />
Note : As of 6/6/2016, the following files below are the same in /root/media/drivers/ and /usr/src/linux-rpi-4.4.y/drivers folders, except for<br />
stv090x.c, stv090x.h . These files in /root/media/drivers/ are patched and have an adding for lock led hooks to the stv090x, stv0288, cx24116 and tda10071 frontends. Similar code already exists in the stv0900 frontend. [https://patchwork.linuxtv.org/patch/23243/ source code patch].<br />
For the file technisat-usb2.c, the line .count = 4 are replaced by .count = 8.<br />
Note 2 : As of 6/6/2016, tbs-qbox2ci.c and tbs-qbox2ci.h files, for the TBS 5980 driver, are only available in /root/media/drivers/ from https://github.com/ljalves/linux_media.git repositories.<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv6110x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_priv.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stv090x_reg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.c /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_proc.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
cp /root/media/drivers/media/dvb-frontends/stb6100_cfg.h /usr/src/linux-rpi-4.4.y/drivers/media/dvb-frontends<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/technisat-usb2.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.c /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
cp /root/media/drivers/media/usb/dvb-usb/tbs-qbox2ci.h /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb<br />
<br />
* Patching the kernel source code :<br />
TO DO<br />
<br />
* Add information about a new driver in the first configuration file for compiling <br />
Make additions to Makefiles and Kconfigs so system will process the code<br />
The <tab> means remove the <tab> and then hit the tab key, you are trying to<br />
format the additions to look like whats already there. Same with <2 spaces><br />
Add the following to the /usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Kconfig file at the end<br />
<br />
config DVB_USB_TBSQBOX2CI<br />
<tab>tristate "TurboSight QBOX2 CI DVB-S2 USB2.0 support"<br />
<tab>depends on DVB_USB<br />
<tab>select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT<br />
<tab>help<br />
<tab><2 spaces>Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers<br />
<br />
* Add information about a new driver in the second configuration file for compiling <br />
Add to the end of/usr/src/linux-rpi-4.4.y/drivers/media/usb/dvb-usb/Makefile<br />
before the first ccflags-y statement<br />
<br />
dvb-usb-tbsqbox2ci-objs := tbs-qbox2ci.o<br />
obj-$(CONFIG_DVB_USB_TBSQBOX2CI) += dvb-usb-tbsqbox2ci.o<br />
<br />
* Add information about a new driver in the third configuration file for compiling <br />
Edit the /usr/src/linux-rpi-4.4.y/arch/arm/configs/bcm2709_defconfig file<br />
and under the line CONFIG_DVB_USB_TECHNISAT_USB2=m, add the line<br />
CONFIG_DVB_USB_TBSQBOX2CI=m<br />
<br />
* Compiling for Raspberry PI 2 or 3 :<br />
cd /usr/src/linux-rpi-4.4.y<br />
make bcm2709_defconfig<br />
make -j4<br />
<br />
* Save the current headers and modules files :<br />
mv /lib/modules/4.4.9+ /lib/modules/4.4.9+.bak<br />
mv /lib/modules/4.4.9-v7+ /lib/modules/4.4.9-v7+.bak<br />
make modules<br />
make modules_install<br />
make headers_install<br />
<br />
* Select the new kernel with TBS5980 support<br />
Make sure you backup your old /boot/kernel.img<br />
<br />
cp arch/arm/boot/zImage /boot/kerneltbsci.img<br />
nano /boot/config.txt<br />
#add the following:<br />
kernel=kerneltbsci.img<br />
<br />
* Install the firmware file required by TBS5980 driver <br />
Go to http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html, tab Download, download the linux driver<br />
in the zip archive, get the dvb-usb-tbsqbox-id5980.fw file and copy it /lib/firmware<br />
<br />
cd /usr/src<br />
mkdir tbs5980-firmware<br />
cd tbs5980-firmware<br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-sources_v151229.zip<br />
unzip tbs-linux-sources_v151229.zip<br />
cp dvb-usb-tbsqbox-id5980.fw /lib/firmware<br />
<br />
* Avoid high CPU usage :<br />
[https://github.com/ljalves/linux_media/wiki/TBS-5922-%28aka-tbs-qbox22%29 source]: In order to avoid a high CPU usage, you should disable the IR receiver:<br />
In /etc/modprobe.d/options add the line :<br />
options dvb_usb disable_rc_polling=1<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34859TBS5980 (aka TBS Qbox CI)2016-06-06T09:48:03Z<p>Yannick56: /* Drivers */ add For Linux with ARM CPU in Raspberry PI part</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== A) For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
==== B) For Linux with ARM CPU in Raspberry PI ====<br />
<br />
'''WARNING : THIS INSTALLATION PROCESS IS A DRAFT, IT IS NOT FINISH YET. THIS WARNING MESSAGE WILL BE REMOVE WHEN THE INSTALLATION PROCESS WILL BE FULL'''<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. <br />
Some instructions above are taken from http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 but a lot of steps for installing and compiling are missing from this link.<br />
<br />
You mustn't use the remote control because it use a lot of of CPU power.<br />
<br />
=====Building the Open Source Driver=====<br />
<br />
These instructions are taken from [http://www.satelliteguys.us/xen/threads/hobbyist-open-source-satellite-receiver-raspberry-pi-2-instructions-and-tips.348466/#post-3652518 satelliteguys.us forum] and [https://www.raspberrypi.org/documentation/linux/kernel/building.md Raspberry PI official website]:<br />
<br />
Compilation and Installation process with : <BR><br />
-Hardware : Raspberry Pi 2 <BR><br />
-Operating System : Raspbian in NOOBS Version 1.9.1 Full and with the Release date: 2016-05-10 <BR><br />
<BR><br />
<br />
* Check your Linux kernel release :<br />
uname -r<br />
4.4.9-v7+ <br />
<br />
* Update the package list available in distro repositeries and then update the package installed on your system :<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
<br />
* Install the packages required to compile the TBS driver for Raspberry PI in his ARM CPU :<br />
sudo apt-get install patchutils<br />
sudo apt-get install bc<br />
sudo apt-get install libncurses5-dev<br />
sudo cpan Proc::processTable<br />
CPAN.pm requires configuration, but most of it can be done automatically.<br />
If you answer 'no' below, you will enter an interactive dialog for each<br />
configuration option instead.<br />
Would you like to configure as much as possible automatically? [yes] '''yes'''<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34858TBS5980 (aka TBS Qbox CI)2016-06-06T09:17:22Z<p>Yannick56: /* Drivers */ add internal link</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
<br />
==== For linux with x86 or X86-64 CPU ====<br />
Available [http://www.tbsdtv.com/download/ here] from TBS website. Look for the TBS5980 driver. Latest update: 29/12/2015. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
For compiling and installing the Open-source drivers or the Closed-source drivers, see [[TBS driver installation]].<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34857TBS5980 (aka TBS Qbox CI)2016-06-06T09:11:49Z<p>Yannick56: /* Drivers */ fix dead url</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/download/ here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34854TBS5980 (aka TBS Qbox CI)2016-06-01T19:10:45Z<p>Yannick56: /* External Links */ Tested CAMs that work with TBS 5980</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
* [http://www.tbsdtv.com/forum/viewtopic.php?f=33&t=1420&sid=1e70005dffdd64c48eb40ba61d71cac6 Tested CAMs that work with TBS 5980 (september 2011)]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34850TBS5980 (aka TBS Qbox CI)2016-05-26T21:44:21Z<p>Yannick56: </p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by a lot of DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34849TBS5980 (aka TBS Qbox CI)2016-05-26T21:15:59Z<p>Yannick56: add information</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
* CCM mode support ONLY (NO support for VCM and ACM modes used by DVB-S2 multistream Free TV channels with Eutelsat 5 West A (5°W) satellite)<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34845TBS5980 (aka TBS Qbox CI)2016-05-19T19:00:53Z<p>Yannick56: /* External Links */ update url</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=30 USB DVB-S2 CI QBox TBS5980 forum]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34844TBS5980 (aka TBS Qbox CI)2016-05-19T18:23:54Z<p>Yannick56: /* External Links */ fix dead link</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/products/tbs5980-dvb-s2-ci-tv-tuner-usb.html TBS5980 QBOX CI DVB-S2 TV Tuner USB product page]<br />
* [http://www.tbsdtv.com/forum/index.php TBSDTV forum]<br />
<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=STMicroelectronics_STV0903&diff=34843STMicroelectronics STV09032016-05-19T18:10:33Z<p>Yannick56: create wiki page</p>
<hr />
<div>STV0903 is a chip that is a multi-standard advanced demodulator for satellite digital TV and data services set-top boxes.<br />
<br />
It is a high performance satellite demodulator. It is capable of handling [[DVB-S]], DIRECTV legacy and [[DVB-S2]] (QPSK and 8PSK) constant coding and modulation signals for satellite broadcast. <br />
<br />
* [http://www.st.com/content/st_com/en/products/digital-set-top-box-ics/demodulators-and-tuners/satellite-demodulators/stv0903.html STMicroelectronics STV0903 official web page]<br />
* [http://www.st.com/content/ccc/resource/sales_and_marketing/promotional_material/flyer/8f/25/21/4f/2f/f3/46/5a/flstv903.pdf/files/flstv903.pdf/jcr:content/translations/en.flstv903.pdf STV0903 flyer]<br />
* [http://data.datasheetlib.com/pdf1/39/53/395373/stmicroelectronics-stv0903_5e05f142e9.pdf STV0903 data sheet]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=STMicroelectronics_STB6100&diff=34842STMicroelectronics STB61002016-05-19T17:51:42Z<p>Yannick56: fix dead link</p>
<hr />
<div>An 8PSK/QPSK direct conversion tuner IC from STMicroelectronics.<br />
<br />
[http://www.st.com/content/st_com/en/products/digital-set-top-box-ics/demodulators-and-tuners/silicon-tuners/stb6100.html STB6100 official web page]<br />
<br />
A brochure about the STB6100, including basic specifications, pinout and logical diagram <br />
is available here http://www.st.com/content/ccc/resource/technical/document/data_brief/91/90/cf/d2/1e/8e/4f/6b/CD00043871.pdf/files/CD00043871.pdf/jcr:content/translations/en.CD00043871.pdf.<br />
<br />
The full datasheet is not publicly available but some documentation can be found.<br />
For example, Comtech Technology has a [http://www.makhutov.org/downloads/dvb/dvbs2-6899.pdf product brief]<br />
for a tuner module containing the STB6100 & STB0899, that outlines the basic register and timing info.<br />
<br />
Fortunately the information available is sufficient to be able to write a driver for this IC.<br />
[[Category:Tuners]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=STMicroelectronics_STB6100&diff=34841STMicroelectronics STB61002016-05-19T17:47:56Z<p>Yannick56: add a link and fix a dead link</p>
<hr />
<div>An 8PSK/QPSK direct conversion tuner IC from STMicroelectronics.<br />
<br />
[http://www.st.com/content/st_com/en/products/digital-set-top-box-ics/demodulators-and-tuners/silicon-tuners/stb6100.html STB6100 official web page]<br />
<br />
A brochure about the STB6100, including basic specifications, pinout and logical diagram <br />
is available here http://www.st.com/content/ccc/resource/technical/document/data_brief/91/90/cf/d2/1e/8e/4f/6b/CD00043871.pdf/files/CD00043871.pdf/jcr:content/translations/en.CD00043871.pdf.<br />
<br />
The full datasheet is not publicly available but some documentation can be found.<br />
For example, Comtech Technology has a [http://comtech.myweb.hinet.net/pdf/dvbs2-6899.pdf product brief]<br />
for a tuner module containing the STB6100 & STB0899, that outlines the basic register and timing info.<br />
<br />
Fortunately the information available is sufficient to be able to write a driver for this IC.<br />
[[Category:Tuners]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=Cypress_EZ-USB_FX2&diff=34840Cypress EZ-USB FX22016-05-19T17:28:05Z<p>Yannick56: add link</p>
<hr />
<div>A High-speed 8051-based [[USB interface chipsets|USB interface chipset]] from [[Cypress Semiconductor]].<br />
<br />
Family Variants of the EZ-USB FX2 include the CY7C68013/13A/14A/15A/16A ICs.<br />
<br />
==External Links==<br />
* [http://www.cypress.com/?id=193 CY7C680xx Product page] <br />
* [http://www.cypress.com/?rID=38232 EZ-USB FX1/FX2 Technical Reference Manual]<br />
* [http://www.cypress.com/file/138911/download Manual for EZ-USB FX2LP USB Microcontroller High-Speed USB Peripheral Controller] <br />
* [http://linuxtv.org/cgi-bin/viewvc.cgi/dvb-hw/dvbusb-fx2/termini/ An example firmware for the FX2] ... plus other info in the parent directory<br />
* [http://sourceforge.net/projects/fx2lib/ fx2lib project]<br />
** [https://github.com/mulicheng/fx2lib fx2lib git repo]<br />
* [http://www.triplespark.net/elec/periph/USB-FX2/software CycFX2Prog]<br />
* [http://www.ztex.de/firmware-kit/ ZTEX EZ-USB FX2 java based SDK (Linux && Windows)], dedicated for ztex boards, but may be useful<br />
* [http://www.linux-usb.org/ezusb/ EZ-USB on Linux]<br />
<br />
[[Category:Chipsets]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=Cypress_EZ-USB_FX2&diff=34839Cypress EZ-USB FX22016-05-19T17:22:31Z<p>Yannick56: add link for manual</p>
<hr />
<div>A High-speed 8051-based [[USB interface chipsets|USB interface chipset]] from [[Cypress Semiconductor]].<br />
<br />
Family Variants of the EZ-USB FX2 include the CY7C68013/13A/14A/15A/16A ICs.<br />
<br />
==External Links==<br />
* [http://www.cypress.com/?id=193 CY7C680xx Product page] <br />
* [http://www.cypress.com/?rID=38232 EZ-USB FX1/FX2 Technical Reference Manual]<br />
* [http://www.cypress.com/file/138911/download Manual for EZ-USB FX2LP USB Microcontroller High-Speed USB Peripheral Controller] <br />
* [http://linuxtv.org/cgi-bin/viewvc.cgi/dvb-hw/dvbusb-fx2/termini/ An example firmware for the FX2] ... plus other info in the parent directory<br />
* [http://sourceforge.net/projects/fx2lib/ fx2lib project]<br />
** [https://github.com/mulicheng/fx2lib fx2lib git repo]<br />
* [http://www.triplespark.net/elec/periph/USB-FX2/software CycFX2Prog]<br />
* [http://www.ztex.de/firmware-kit/ ZTEX EZ-USB FX2 java based SDK (Linux && Windows)], dedicated for ztex boards, but may be useful<br />
<br />
[[Category:Chipsets]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34838TBS5980 (aka TBS Qbox CI)2016-05-19T17:18:30Z<p>Yannick56: /* Components Used */ add information about usb chipset</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
* [[Cypress EZ-USB FX2]] CY7C68013A (USB 2.0 interface chipset)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/english/product/QBoxS2CI.html Qbox 2 CI product page]<br />
* [http://www.tbsdtv.com/forum/index.php TBSDTV forum]<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS_Technologies&diff=34837TBS Technologies2016-05-19T17:07:37Z<p>Yannick56: /* DVB-S2 USB Device */</p>
<hr />
<div>== Company Profile ==<br />
<br />
'''TBS''' Technologies is a company which specializes in developing, manufacturing and marketing of digital TV tuner cards for PC. Main products include PC cards for DVB S/S2, DVB-T/T2, DVB-C with single, dual, and quad tuner, CAM CI box for DVB-S2, USB TV Box for DVB-S/S2,DVB-T/T2,DVB-C. Most TV tuner products are Linux driver ready up to the latest kernel.<br />
<br />
== Products ==<br />
<br />
=== IPTV Streamer===<br />
*[[ TBS MOI DVB-S2 Streaming Box]]<br />
*[[ TBS MOI IPTV Streaming Server ]]<br />
*[[ TBS MOI Pro Linux Free IPTV Streaming Server]]<br />
*[[ TBS MOI Pro AMD Professional IPTV Streaming Server]]<br />
<br />
=== HDMI Encoder===<br />
*[[ TBS2216 H.264 HD HDMI Encoder ]]<br />
*[[ TBS2600 HD-SDI Video Encoder - Professional ]]<br />
*[[ TBS2601 HD HDMI/CVBS Video Encoder ]]<br />
*[[ TBS2603 HD H.264/H.265 HDMI Video Encoder ]]<br />
<br />
===Multi-standard TV Tuner===<br />
*[[ TBS6522 Multi-standard Dual Tuner PCIe Card NEW!]] <br />
*[[ TBS5520 Multi-standard TV Tuner USB Box NEW!]]<br />
<br />
=== ARM mini PC ===<br />
*[[ TBS Matrix ARM Linux mini PC]]<br />
<br />
=== ISDB-T TV Tuner Mini PCIe ===<br />
*[[ TBS6814 ISDB-T Quad Tuner PCIe Card]]<br />
<br />
=== DVB-S2 TV Tuner PCIe ===<br />
<br />
*[[TBS6920]] DVB-S2 TV Tuner PCIe Card<br />
*[[TBS6921]] DVB-S2 TV Tuner PCIe Card<br />
*[[TBS6922]] DVB-S2 TV Tuner PCIe Card<br />
*[[TBS6922SE]] DVB-S2 TV Tuner PCIe Card<br />
*[[TBS6925]] DVB-S2 TV Tuner PCIe Card(16APSK,32APSK,CCM, VCM, ACM, GS,multiple Transport Stream)<br />
*[[TBS6983 Professional DVB-S2 Dual Tuner PCIe Card]](16APSK,32APSK,CCM, VCM, ACM, GS,multiple Transport Stream)<br />
*[[TBS6908 Professional DVB-S2 Quad Tuner PCIe Card]](16APSK,32APSK,CCM, VCM, ACM, GS,multiple Transport Stream)<br />
*[[TBS6928]] DVB-S2 TV Tuner CI PCIe Card(For PayTV)<br />
*[[TBS6981]] DVB-S2 Dual Tuner PCIe Card(Dual Tuner)<br />
*[[TBS6984 PCIe DVB S2 Quad Tuner TV Card]]<br />
*[[TBS6985 PCIe DVB S2 Quad Tuner TV Card]]<br />
*[[TBS6905 DVB-S2 Quad Tuner PCIe Card]] <br />
*[[TBS6904 DVB-S2 Quad Tuner PCIe Card]] <br />
*[[TBS6991 DVB-S2 Dual Tuner Dual CI PCIe Card]](Dual Tuner+Dual CI)<br />
*[[TBS6991SE DVB-S2 Dual Tuner Dual CI PCIe Card]]<br />
*[[TBS6909 DVB-S2 8 Tuner PCIe Card]]<br />
*[[TBS6903 Professional DVB-S2 Dual Tuner PCIe Card]]<br />
<br />
=== DVB-S2 TV Tuner PCI ===<br />
*[[TBS8920]] DVB-S2 TV Tuner PCI Card<br />
*[[TBS8921]] DVB-S2 TV Tuner PCI Card<br />
*[[TBS8922]] DVB-S2 TV Tuner PCI Card<br />
<br />
=== DVB-S2 USB Device ===<br />
<br />
*[[TBS QBox II]] DVB-S2 TV Tuner USB<br />
*[[TBS QBOX3]] DVB-S2 TV Tuner USB<br />
*[[TBS5922]] DVB-S2 TV Tuner USB<br />
*[[TBS5922SE]] DVB-S2 TV Tuner USB<br />
*[[TBS5925]] DVB-S2 TV Tuner USB((16APSK,32APSK,CCM, VCM, ACM,multiple Transport Stream)<br />
*[[TBS5980 (aka TBS Qbox CI)]] DVB-S2 TV Tuner USB and CI slot<br />
*[[TBS5990 DVB-S2 Dual Tuner Dual CI USB TV BOX]]<br />
<br />
=== DVB-T2 TV Tuner PCIe ===<br />
<br />
*[[TBS6220]] PCI-E DVB-T2/T TV Tuner Card<br />
*[[TBS6280]] PCI-E DVB-T2/T TV Dual Tuner Card<br />
*[[TBS6284]] PCI-E DVB-T2/T TV Quad Tuner Card<br />
*[[TBS6285]] PCI-E DVB-T2/T TV Quad Tuner Card<br />
*[[TBS6205]] DVB-T2/T/C Quad TV Tuner PCIe Card NEW!<br />
*[[TBS6290]] DVB-T2/T/C Dual Tuner Dual CI PCIe Card NEW!<br />
*[[TBS7220]] DVB-T2/T/C TV Tuner mini PCIe Card NEW!<br />
<br />
=== DVB-T2 TV Tuner USB Device ===<br />
*[[TBS5220 USB DVB-T2/T/C Freeview HD TV stick]]<br />
*[[TBS5280 USB DVB-T2/T/C Dual Tuner TV Box]]<br />
*[[TBS5281 USB DVB-T2/T/C Dual Tuner TV Box]]<br />
*[[TBS5880 USB DVB-T2/T/C CI hybrid TV Box]]<br />
*[[TBS5881 USB DVB-T2/T/C CI hybrid TV Box]]<br />
<br />
=== DVB-C TV Tuner PCIe ===<br />
*[[TBS6618 DVB-C TV Tuner CI PCIe Card]]<br />
*[[TBS7610 DVB-C TV Tuner PCIe Mini Card]]<br />
*[[TBS6205]] DVB-T2/T/C Quad TV Tuner PCIe Card<br />
*[[TBS6290]] DVB-T2/T/C Dual Tuner Dual CI PCIe Card<br />
*[[TBS7220]] DVB-T2/T/C TV Tuner mini PCIe Card<br />
<br />
=== DVB-C USB Device ===<br />
*[[TBS5680 DVB-C TV Tuner CI USB]]<br />
<br />
== Linux Driver ==<br />
<br />
See [[TBS driver installation]] for instructions on how to install drivers for TBS devices.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com Company website] <br />
* [http://www.buydvb.net Where to buy]<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category: Vendor]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS_Qbox_DVB-S2_CI_USB2.0&diff=34836TBS Qbox DVB-S2 CI USB2.02016-05-19T17:06:16Z<p>Yannick56: Yannick56 moved page TBS Qbox DVB-S2 CI USB2.0 to TBS5980 (aka TBS Qbox CI): (more easy to find for research)</p>
<hr />
<div>#REDIRECT [[TBS5980 (aka TBS Qbox CI)]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS5980_(aka_TBS_Qbox_CI)&diff=34835TBS5980 (aka TBS Qbox CI)2016-05-19T17:06:15Z<p>Yannick56: Yannick56 moved page TBS Qbox DVB-S2 CI USB2.0 to TBS5980 (aka TBS Qbox CI): (more easy to find for research)</p>
<hr />
<div>The Qbox DVB-S2 CI USB2.0, as the name suggests, is a [[DVB-S2]] [[DVB-S2_USB_Devices|USB 2.0]] adapter from [http://www.tbsdtv.com/ TurboSight]. It has been on the market since early 2011. The company has no distribution network, but their products can be ordered online. Shipping of my device to Western Europe took less than three days.<br />
<br />
The Qbox DVB-S2 CI is supported under Linux. The minimum required kernel version is (yet) unknown, the driver requires DVB version 5.1.<br />
<br />
[[Image:Qbox_red.jpg|right|thumb|200px|The Qbox CI switched on. The CAM module has not been inserted]]<br />
<br />
==Overview/Features==<br />
<br />
* USB 2.0 interface (B-connector)<br />
* Inputs: Antenna (F-connector), remote and CI-slot <br />
* Separate power supply: 7.5V, 3.5A<br />
* Indication LED, mostly red, sometimes blue, meaning yet unknown.<br />
<br />
===Components Used===<br />
* [[STMicroelectronics STB6100]] (tuner)<br />
* [[STMicroelectronics STV0903]] (demodulator)<br />
<br />
===Other Images===<br />
<gallery perrow=4><br />
Image:Qbox_blue.jpg|Qbox with LED turned blue<br />
Image:Qbox_CAM.jpg|Qbox with astoncrypt CAM<br />
Image:Qbox_remote.jpg|Qbox remote control<br />
Image:Qbox_package.jpg|Qbox package<br />
</gallery><br />
<br />
===Identification===<br />
lsusb output: <br />
# lsusb -v<br />
Bus 001 Device 009: ID 734c:5980 TBS Technologies China <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
idVendor 0x734c TBS Technologies China<br />
idProduct 0x5980 <br />
bcdDevice 0.00<br />
iManufacturer 1 TBS-Tech<br />
iProduct 2 DVBS2BOX<br />
iSerial 0 <br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 32<br />
bNumInterfaces 1<br />
bConfigurationValue 1<br />
iConfiguration 0 <br />
bmAttributes 0x80<br />
(Bus Powered)<br />
MaxPower 100mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 255 Vendor Specific Class<br />
bInterfaceSubClass 0 <br />
bInterfaceProtocol 0 <br />
iInterface 0 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x82 EP 2 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 1<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0200 1x 512 bytes<br />
bInterval 0<br />
Device Qualifier (for other device speed):<br />
bLength 10<br />
bDescriptorType 6<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 64<br />
bNumConfigurations 1<br />
Device Status: 0x0000<br />
(Bus Powered)<br />
<br />
==Making it Work==<br />
The device is actively supported to run under Linux. Every few months the driver gets updated, and the company actively supports users through a forum.<br />
By downloading, compiling and installing the drivers and firmware, the device works (at least, in my distro, Fedora 14 x86-64). Together with the manufacturer-supplied source code for scanning and zapping (slightly modified versions of scan-s2 and szap-s2) DVB-S2 reception works. Newer versions of szap and scan work just as well.<br />
<br />
===Firmware===<br />
The driver software package contains the firmware file: dvb-usb-tbsqbox-id5980.fw. Just install it in /lib/firmware.<br />
<br />
===Drivers===<br />
Available [http://www.tbsdtv.com/english/Download.html here]. Look for the TBS5980 driver. Latest update: july 10. Apart from the firmware file, there is no closed-source object code included in the software. All code has been released under GPLv2.<br />
<br />
===Sample Kernel Output===<br />
The kernel outputs the information below, CAM module inserted (with module verbosity wide open):<br />
# dmesg<br />
[18814.387092] usb 1-7: new high speed USB device using ehci_hcd and address 9<br />
[18814.502322] usb 1-7: New USB device found, idVendor=734c, idProduct=5980<br />
[18814.502334] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
[18814.502343] usb 1-7: Product: DVBS2BOX<br />
[18814.502349] usb 1-7: Manufacturer: TBS-Tech<br />
[18814.684522] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in cold state, will try to load a firmware<br />
[18814.688745] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5980.fw'<br />
[18814.691532] tbsqbox2ci: start downloading TBSQBOX2CI firmware<br />
[18814.810199] dvb-usb: found a 'TBS Qbox DVB-S2 CI USB2.0' in warm state.<br />
[18814.810330] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br />
[18814.810751] DVB: registering new adapter (TBS Qbox DVB-S2 CI USB2.0)<br />
[18815.048073] dvb-usb: MAC address: xx:xx:xx:xx:xx:xx ''(edited by me)''<br />
[18815.048077] <br />
[18815.050881] stv090x_attach: Create New Internal Structure!<br />
[18815.156679] stv090x_attach: Attaching STV0903 demodulator(1) Cut=0x30<br />
[18815.156689] tbsqbox2ci: Attached stv0903!<br />
[18815.156692] <br />
[18815.157478] tbsqbox2ci: CI initialized.<br />
[18815.157488] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...<br />
[18815.157590] stb6100_attach: Attaching STB6100 <br />
[18815.159811] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-7/input/input12<br />
[18815.159952] dvb-usb: schedule remote query interval to 150 msecs.<br />
[18815.159961] dvb-usb: TBS Qbox DVB-S2 CI USB2.0 successfully initialized and connected.<br />
[18815.160051] usbcore: registered new interface driver tbsqbox2ci<br />
[18861.422201] tbsqbox2ci: CI enabled.<br />
[18861.422211] dvb_ca adapter 0: DVB CAM detected and initialised successfully<br />
<br />
To get maximum verbosity, relevant parts of /etc/modprobe.d/modprobe.conf were set as follows:<br />
<br />
options dvb_usb debug=511<br />
options dvb_usb_tbsqbox2ci debug=3<br />
options stb6100 verbose=3<br />
options stv090x verbose=3<br />
<br />
===Remote Control Support===<br />
The device comes with a remote, but that has not been tested yet. Tbsdtv forum members complain about poor interoperability with LIRC.<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/english/product/QBoxS2CI.html Qbox 2 CI product page]<br />
* [http://www.tbsdtv.com/forum/index.php TBSDTV forum]<br />
==Issues==<br />
Remote control needs further research.<br />
<br />
CAM support is underway. So far, the astoncrypt v1.07 has been tested. Before this can be finalized, a working smartcard is required. Haven't got one yet ;-).<br />
<br />
Network support has not been addressed yet.<br />
<br />
[[Category:DVB-S2_USB_Devices]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6280&diff=34828TBS62802016-05-14T16:50:37Z<p>Yannick56: /* 1.Check that linux tool can find TV channels */ update</p>
<hr />
<div>A dual [[DVB-T]]/[[DVB-T2]] [[DVB-T2 PCIe Cards|PCIe card]] from [http://www.tbsdtv.com/ TurboSight].<br />
<br />
The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.<br />
<br />
There is also an [[#Making it Work (Open source)|open source driver]] for TBS 6280 developed by Luis Alves.<br />
<br />
==Overview/Features==<br />
<br />
* PCI-e x1<br />
* Dual Tuner DVB-T/DVB-T2 card<br />
* RF antenna pass-through<br />
* IR Receiver <br />
* Remote Controller <br />
<br />
===Components Used===<br />
<br />
* [[NXP SAA716x|NXP SAA7160ET]] (PCI Express Based Audio And Video Bridge), <b>driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card</b><br />
* [[NXP/Philips_TDA182xx#TDA18212HN|NXP (TDA) 18212/M]] (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, <b>(driver included in linux kernel >= 3.0)</b><br />
* [[Sony CXD2820|SONY CXD2820R]] (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, <b>(driver included in linux kernel >= 3.0)</b><br />
<br />
===Identification===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
With working driver:<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x TBS<br />
<br />
If the driver is NOT yet installed or loaded, then output will instead be<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
<br />
The final line with "Kernel driver in use:" is missing because NO driver is loaded.<br />
<br />
With lspci -vvvnn (and working drivers):<br />
<br />
# lspci -vvvnn | grep --after-context=27 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-<br />
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-<br />
Latency: 0, Cache Line Size: 4 bytes<br />
Interrupt: pin A routed to IRQ 16<br />
Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Address: 0000000000000000 Data: 0000<br />
Capabilities: [50] Express (v1) Endpoint, MSI 00<br />
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us<br />
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-<br />
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-<br />
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-<br />
MaxPayload 128 bytes, MaxReadReq 128 bytes<br />
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-<br />
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us<br />
ClockPM- Suprise- LLActRep- BwNot-<br />
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+<br />
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-<br />
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-<br />
Capabilities: [74] Power Management version 2<br />
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)<br />
Status: D0 PME-Enable- DSel=0 DScale=0 PME-<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
==Making it Work==<br />
<br />
See [[TBS driver installation]]<br />
<br />
== IRQ Issues ==<br />
<br />
See [[TBS driver installation#IRQ_Issues]]<br />
<br />
==Sample kernel output==<br />
<br />
#dmesg | more<br />
<br />
SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16<br />
SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
DVB: registering new adapter (SAA716x dvb adapter)<br />
DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
<br />
With kernel 3.8.13.4 and Mageia Linux.<br />
<br />
#dmesg | more<br />
<br />
For IR remote control :<br />
<br />
[ 11.410478] IR NEC protocol handler initialized<br />
[ 11.660415] IR RC5(x) protocol handler initialized<br />
[ 11.701373] IR RC6 protocol handler initialized<br />
[ 11.943450] IR JVC protocol handler initialized<br />
...<br />
[ 12.102224] IR Sony protocol handler initialized<br />
[ 12.165011] Registered IR keymap rc-tbs-nec<br />
...<br />
[ 12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5<br />
[ 12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0<br />
<br />
For DBV-T TV :<br />
<br />
[ 11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 11.952061] Disabling lock debugging due to kernel taint<br />
...<br />
[ 12.165164] DVB: registering new adapter (SAA716x dvb adapter)<br />
...<br />
[ 14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
[ 14.115548] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
# lsmod<br />
<br />
dvb_core 109885 2 saa716x_core,saa716x_tbs_dvb<br />
saa716x_tbs_dvb 57909 0 <br />
saa716x_core 50899 1 saa716x_tbs_dvb / <br />
tbs6982fe 22408 1 saa716x_tbs_dvb /<br />
tbs6680fe 17791 1 saa716x_tbs_dvb /<br />
tbs6923fe 22408 1 saa716x_tbs_dvb /<br />
tbs6928se 17884 1 saa716x_tbs_dvb /<br />
tbs6991fe 17785 1 saa716x_tbs_dvb /<br />
tbs6618fe 17791 1 saa716x_tbs_dvb /<br />
tbs6922fe 22478 1 saa716x_tbs_dvb /<br />
tbs6928fe 17785 1 saa716x_tbs_dvb / <br />
stv090x 62235 1 saa716x_tbs_dvb / <br />
tbs62x0fe 23069 2 <br />
---<br />
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<br />
i2c_algo_bit 13413 1 saa716x_tbs_dvb<br />
i2c_i801 22443 0<br />
<br />
--> 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. <br />
<br />
* Only remote control by IRC for TV tuner card<br />
# lsmod<br />
<br />
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<br />
ir_lirc_codec 12898 0 <br />
lirc_dev 19166 1 ir_lirc_codec<br />
ir_nec_decoder 12546 0 <br />
rc_tbs_nec 12502 0 <br />
ir_mce_kbd_decoder 12879 0 <br />
ir_sony_decoder 12549 0 <br />
ir_jvc_decoder 12546 0 <br />
ir_rc6_decoder 12546 0 <br />
ir_rc5_decoder 12546 0<br />
<br />
== Check that your tuner card works ==<br />
<br />
=== 1.Check that linux tool can find TV channels ===<br />
<br />
* Use the [http://www.linuxtv.org/wiki/index.php/Scan scan command line]. Others scan tools are available [[Frequency scan|here]].<br />
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find<br />
file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file.<br><br />
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.<br><br />
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 :<br />
# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs <br />
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx><br />
#<br />
# updated by/mis a jour par : Yannick, date: 05/2016<br />
# <br />
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : <br />
# http://www.recevoirlatnt.fr/fileadmin/contenu/Passage_TNT_HD/liste_des_canaux_en_IDF_au_5_avril_2016_v2.1.pdf<br />
# Chaines dans chaque multiplexe :<br />
# http://www.recevoirlatnt.fr/fileadmin/contenu/Passage_TNT_HD/Doc_technique_B700_-_Phase_0_-_IDF_V2.0.pdf<br />
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : <br />
# http://www.recevoirlatnt.fr/fileadmin/contenu/Passage_TNT_HD/TNT_HD_-_recherche_manuelle_des_chaines.pdf<br />
#<br />
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : <br />
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, <br />
# selectionnez votre region sur la carte, en bas de la nouvelle page, <br />
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", <br />
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.<br />
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ <br />
#<br />
# All french DVB-T channels / toutes les chaines de la TNT en France<br />
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT<br />
#<br />
# City R1 R2 R3 R4 R6 R7 R15 <br />
# Paris - Tour Eiffel : 35 25 22 30 32 42 28 <br />
# <br />
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy<br />
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie<br />
#<br />
# R1 - Canal 35 - Groupe GR1 A (France 2 HD, France 4 HD, France Ô), Groupe GR 1 (France 3-Paris Ile de France), Groupe R1 TFL (BFM Business Paris HD)<br />
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
#<br />
# R2 - Canal 25 - Groupe NTN (D8, BFM TV, I-Télé, D17, Gulli)<br />
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R3 - Canal 22 - Groupe CNH (Canal+, Canal+ Cinéma, Canal+ Sport, LCI, Paris Premiere, Planète+, ?, ?, ?, DATASYSTEM R7, ?)<br />
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R4 - Canal 30 - Groupe Multi4 (M6, W9, Arte, France5, 6ter)<br />
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE <br />
#<br />
# R5 - Plus utiliser depuis le 05/04/2016 - Canal 28 reattribuer au R15<br />
#<br />
# R6 - Canal 32 - Groupe SMR6 (TF1, NRJ 12, TMC, NT1, LCP-Public Senat)<br />
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25, L equipe 21, RMC Decouverte, Numero 23) <br />
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R8 - Plus utiliser depuis le 05/04/2016 - Canal 58 plus utiliser<br />
#<br />
# R15 - Canal 28 - chaînes locales uniquement sur emetteur Paris - Tour Eiffel <br />
# Groupe Multi-7 (Canal 31, IDF1, France 24 Canal 34) <br />
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2<br />
# uniquement sur emetteur Paris - Tour Eiffel <br />
# Canaux de test nommes Test UHD1 et Test UHD2 (3840x2160 à 50 images/s) (audio en EAC-3 et video en HEVC (H.265))<br />
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), <br />
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)<br />
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/<br />
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
<br />
* Other tools here at [http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Testing your DVB device]<br />
<br />
=== 2.Check that you can listen/see audio/video stream for your TV channel ===<br />
<br />
==== With Me TV ====<br />
<br />
* Importing TV channels configuration in Me TV <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
launch Me TV<br />
menu View > Channels > Add , and open the file channels.conf in /home/your_user_account<br />
<br />
==== With vlc ====<br />
<br />
* Importing TV channels configuration in VLC <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
Now open up VLC. <br />
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.<br />
<br />
=== 3.Recording TV channel stream ===<br />
<br />
==== Record TV audio/video stream with vlc ====<br />
1) Choose the folder for the recording files : [http://askubuntu.com/questions/122398/how-can-i-change-the-folder-where-vlc-stores-its-streams How can I change the folder where VLC stores its streams?] <BR><br />
2) Enable the "Advanced controls" to get the button with red dot (recording button) : [http://www.dedoimedo.com/computers/vlc-streaming.html How to stream and record media in VLC / secondth part : Recording]<br />
<br />
==== Create a recording script ==== <br />
<br />
[http://wiki.gentoo.org/wiki/TV_Tuner#Scheduling Create a recording script]<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/download/ Driver download page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=52 TBS Official Support forum for 6280 card]<br />
* [http://www.buydvb.net/dvbt2-tv-tuner-pcie-c-12/tbs6280-pcie-dvbt2t-dual-tuner-card-p-38.html TBS6280 Product page at buydvb.net (USA)] with online purchase. Not widely available online.<br />
* [http://www.amazon.fr/TNT-T%C3%A9l%C3%A9vision-Num%C3%A9rique-Terrestre-r%C3%A9ception/dp/B007PYNGLO/ TBS6280 Product page at amazon.fr (France)] with online purchase. Not widely available online.<br />
* [http://www.amazon.co.uk/TBS-DVB-T2-Definition-Digital-Receiver/dp/B005JTA7TG/ TBS6280 Product page at amazon.co.uk (United Kingdom)] with online purchase. Not widely available online.<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category:DVB-T2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34495TBS69282015-11-21T15:44:12Z<p>Yannick56: /* Tested CAMs that work with TBS6928 */</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* [[NXP SAA716x|SAA7160]] (PCIe interface)<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. [https://en.wikipedia.org/wiki/Cyfrowy_Polsat CYFROWY POLSAT] ([https://en.wikipedia.org/wiki/Nagravision Nagravision]) (Polish DTH platform)<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34494TBS69282015-11-21T15:43:19Z<p>Yannick56: /* Tested CAMs that work with TBS6928 */ add wikipedia links</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* [[NXP SAA716x|SAA7160]] (PCIe interface)<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. [https://en.wikipedia.org/wiki/Cyfrowy_Polsat CYFROWY POLSAT] ([https://en.wikipedia.org/wiki/Nagravision Nagravision])<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34493TBS69282015-11-21T15:39:20Z<p>Yannick56: /* Components Used */</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011 (Tuner)<br />
* Tmax TAS2100 (Demod)<br />
* [[NXP SAA716x|SAA7160]] (PCIe interface)<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. CYFROWY POLSAT (Nagravision)<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34492TBS69282015-11-21T15:38:24Z<p>Yannick56: /* Components Used */</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011(Tuner)<br />
* Tmax TAS2100(Demod)<br />
* [[NXP SAA716x|SAA7160]]<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. CYFROWY POLSAT (Nagravision)<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34491TBS69282015-11-21T15:38:00Z<p>Yannick56: /* Components Used */ ad internal link</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011(Tuner)<br />
* Tmax TAS2100(Demod)<br />
* [NXP SAA716x|SAA7160]<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. CYFROWY POLSAT (Nagravision)<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6928&diff=34490TBS69282015-11-21T15:33:00Z<p>Yannick56: /* Tested CAMs that work with TBS6928 */ add link</p>
<hr />
<div>TBS6928 is a PCI-Express interface DVB-S2 TV Tuner Card with CI slot from [[TBS]] technologies, which supports watching digital [[image:Tbs6928-1.jpg|thumb|image TBS6928]] satellite TV or downloading data from satellite in your computer. The CI slot on the board allows CAM insertion for watching payTV channels. It has updated with the latest kernels for Linux<br />
<br />
<br />
===Overview/Features===<br />
<br />
* 1XPCI express slot<br />
* CI slot with CAM insertion<br />
* Linux Support <br />
<br />
===Components Used===<br />
<br />
* AV2011(Tuner)<br />
* Tmax TAS2100(Demod)<br />
* SAA7160<br />
<br />
===Other Images===<br />
<br />
<gallery perrow=4><br />
Image:Tbs6928-1.jpg|<br />
Image:Tbs6928-2.jpg|<br />
Image:Tbs6928-3.jpg|<br />
Image:Tbs6928-4.jpg|<br />
</gallery><br />
<br />
<br />
===Tested CAMs that work with TBS6928===<br />
<br />
* 1. AlphaCrypt (Mascom)<br />
* 2. Conax (NCAM HD)<br />
* 3. Conax (NP4)<br />
* 4. Conax (SMiT)<br />
* 5. Conax (Technisat)<br />
* 6. Crysto Works (Philips)<br />
* 7. CYFROWY POLSAT (Nagravision)<br />
* 8. DIABLO CAM Ver. 2.3<br />
* 9. Easy TV (Mascom)<br />
* 10. Irdeto (SMiT)<br />
* 11. Irdeto Crystoworks acess (SMiT)<br />
* 12. Irdeto CI+ ([https://en.wikipedia.org/wiki/Skylink_%28TV_platform%29 Skylink]) (for Czech and Slovak TV and radio stations)<br />
* 13. Irdeto HD (SMiT)<br />
* 14. Viaccess (SCM)<br />
* 15. Viaccess (SMiT)<br />
* 16. PowerCAM Pro <br />
<br />
All of those CAMs both tested in linux and windows.<br />
<br />
===Identification===<br />
<br />
$lspci -v<br />
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6928:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at fd600000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: <access denied><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
===Making it work===<br />
<br />
I.1 extract linux-tbs-drivers.tar.bz2 archive:<br />
<br />
# tar xjvf linux-tbs-drivers.tar.bz2<br />
<br />
I.2 go to driver package directory:<br />
<br />
# cd linux-tbs-drivers<br />
<br />
I.3 build and install the driver:<br />
<br />
# make && make install<br />
<br />
I.4 reboot in order to load the newly installed driver:<br />
<br />
# shutdown -r now<br />
<br />
===Sample Kernel Output===<br />
<br />
$dmesg<br />
[ 11.437079] HDA Intel 0000:01:05.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19<br />
[ 11.437963] HDA Intel 0000:01:05.1: setting latency timer to 64<br />
[ 11.490496] SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
[ 11.490503] SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
[ 11.500245] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 11.948803] r8169 0000:04:00.0: eth0: link down<br />
[ 11.948810] r8169 0000:04:00.0: eth0: link down<br />
[ 11.949046] ADDRCONF(NETDEV_UP): eth0: link is not ready<br />
[ 11.972015] TurboSight TBS 6928 Frontend Attaching...<br />
[ 12.674307] TurboSight TBS6928 DVB-S2 card MAC=00:22:ab:e0:23:e2<br />
[ 12.680059] TBS 6928 CI Extention for Adapter 0 attached and CAM inserted: no<br />
[ 12.680372] tbsci: Adapter 0 CI initialized<br />
[ 12.680375] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6928 DVBS/S<br />
<br />
===External Links===<br />
<br />
* [http://www.tbsdtv.com Company Website]<br />
* [http://www.tbsdtv.com/forum/index.php TBS Technologies Support forum]<br />
* [http://www.buydvb.net Buy it Online]<br />
<br />
[[Category:DVB-S2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6280&diff=33754TBS62802014-11-27T21:50:21Z<p>Yannick56: /* Making it Work (Open source) */ add more testing</p>
<hr />
<div>A dual [[DVB-T]]/[[DVB-T2]] [[DVB-T2 PCIe Cards|PCIe card]] from [http://www.tbsdtv.com/ TurboSight].<br />
<br />
The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.<br />
<br />
There is also an [[#Making it Work (Open source)|open source driver]] for TBS 6280 developed by Luis Jalves.<br />
<br />
==Overview/Features==<br />
<br />
* PCI-e x1<br />
* Dual Tuner DVB-T/DVB-T2 card<br />
* RF antenna pass-through<br />
* IR Receiver <br />
* Remote Controller <br />
<br />
===Components Used===<br />
<br />
* [[NXP SAA716x|NXP SAA7160ET]] (PCI Express Based Audio And Video Bridge), <b>driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card</b><br />
* [[NXP/Philips_TDA182xx#TDA18212HN|NXP (TDA) 18212/M]] (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, <b>(driver included in linux kernel >= 3.0)</b><br />
* [[Sony CXD2820|SONY CXD2820R]] (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, <b>(driver included in linux kernel >= 3.0)</b><br />
<br />
===Identification===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
If the driver is NOT yet installed or loaded, then output will instead be<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
<br />
The final line with "Kernel driver in use:" is missing because NO driver is loaded.<br />
<br />
==Making it Work (Open source)==<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. These instructions are taken directly from those pages.<br />
<br />
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.<br />
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)). <br />
<br />
===Building the Open Source Driver===<br />
<br />
These instructions are taken from [https://github.com/ljalves/linux_media/wiki/Installating here]:<br />
<br />
git clone git://linuxtv.org/media_build.git<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
cd media_build<br />
make dir DIR=../media<br />
make distclean<br />
make<br />
sudo make install<br />
<br />
===Loading the Modules===<br />
<br />
The simplest option is to reboot, but if you would rather not, execute these commands:<br />
<br />
sudo make rmmod<br />
sudo modprobe saa716x_budget int_type=1<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
With kernel 3.14.24 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget<br />
<br />
You need to see the 2 following lines that show that the SAA716x driver for the TBS TV card is loaded :<br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget <br />
<br />
=== Check if dvb adaptor nodes are created ===<br />
<br />
Now, if the SAA716x driver is loaded, the dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
<br />
SAA716x Budget (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (Sony CXD2820R) <br />
FE_OFDM Fmin=48MHz Fmax=864MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (Sony CXD2820R) <br />
FE_OFDM Fmin=48MHz Fmax=864MHz<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
<br />
We can saw the driver modules needed by TBS TV card : saa716x_budget, tda18212, cxd2820r. <br />
<br />
# lsmod<br />
<br />
...<br />
tda18212 13180 2 <br />
regmap_i2c 12915 1 tda18212<br />
...<br />
saa716x_budget 34859 0 <br />
tas2101 19952 1 saa716x_budget<br />
cxd2820r 31562 1 saa716x_budget<br />
mb86a16 27647 1 saa716x_budget<br />
cx24117 25174 1 saa716x_budget<br />
saa716x_core 71005 1 saa716x_budget<br />
stv090x 70354 1 saa716x_budget<br />
dvb_core 117590 3 saa716x_core,saa716x_budget,cxd2820r<br />
i2c_mux 12896 1 tas2101<br />
...<br />
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<br />
<br />
===Troubleshooting===<br />
<br />
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).<br />
<br />
sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*<br />
<br />
===Upgrading Sources and Re-installing===<br />
<br />
cd media<br />
git remote update<br />
git pull<br />
cd ../media_build<br />
git remote update<br />
git pull<br />
make<br />
sudo make install<br />
<br />
You should now reboot or unload/reload the modules manually.<br />
<br />
===Supporting the Open Source Driver===<br />
<br />
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.<br />
<br />
Luis also has a [https://github.com/ljalves/linux_media/wiki donate link] on github.<br />
<br />
==Making it Work (Closed source)==<br />
<br />
===Drivers===<br />
<br />
Available [http://www.tbsdtv.com/download/#tbs6280 here]. <br />
<br />
TurboSight Proprietary by Konstantin Dimitrov <kosio.dimitrov@gmail.com> for TurboSight TBS 62x0 DVBT/T2/C frontend driver module of www.turbosight.com<br />
<br />
Old release for drivers if you have problem with your kernel :<br />
<br />
* v141019 (2014-10-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v141019.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v141019., which has below updating:<br />
* Fix numerous bugs from the previous release<br />
<br />
* v140707 (2014-07-07)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140707.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140707., which has below updating:<br />
* improve work of TBS 5990<br />
* add support for latest hardware revisions of TBS 5220, TBS 5881, TBS 5281<br />
* numerous improvements in bug fixes in drivers for TBS 6221, TBS6281, TBS 6285 and TBS 6290<br />
<br />
* v140425 (2014-04-25)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140425.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140425., which has below updating:<br />
* Fixed the TBS6928SE ID problem<br />
<br />
* v140323 (2014-03-23)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140323.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140323., which has below updating:<br />
* Add support for 5922SE<br />
* Add proper support for retail version of 6922SE<br />
* Add T2 lite support for latest hardware revision of 6221, 6281, 6285<br />
* Add "ClearQAM" (J83B) US Digital Cable support to DVB-C driver for latest T2 lite hardware revision of 6221, 6281, 6285<br />
<br />
* v140113 (2014-01-13)<br />
http://tbsdtv.com/download/document/common/tbs-linux-drivers_v140113.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140113, which has below updating: <br />
* Improve compatibility with the upcoming Linux kernel 3.13.x<br />
* Add full support (both DVBT/T2 and DVBC are supported) for TBS 5281 <br />
<br />
* v130927 (2013-09-27)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130927, which has below updating:<br />
* Add DVB-C driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Finalize DVB-T/T2 driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Improve software compatibility for all DVB-C products<br />
* Improve software compatibility for all DVB-T/T2 products<br />
* Make power control for TBS 6984 more reliable<br />
<br />
* v130802 (2013-08-02)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130802.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130802, which has below updating:<br />
* improve compatibility with Linux kernel version 3.10<br />
* preliminary support for Linux kernel version 3.11<br />
* add support for all revisions of TBS 6982<br />
* add support for all revisions of TBS 6928SE<br />
* add PLP (Physical Layer Pipe) support for 6220, 6280, 6284 (PLP, see http://en.wikipedia.org/wiki/DVB-T2#Technical_details)<br />
* fix bug for DVB-C products (TBS 6618, TBS 6680, TBS 5680 and DVB-C USB Stick): improve performance in some DVB-C networks<br />
<br />
* v130506 (2013-05-06)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130506, which has below updating:<br />
* Further improve compatibility with 32-bit Linux kernels version 3.8.x and 3.9.x.<br />
* Add module parameter "enable_ir" that allows disabling IR support for TBS cards.<br />
<br />
* v121119 (2012-11-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v121119.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v121119, which has belowed updating:<br />
* Add support for dBm reporting with TBS 6922.<br />
* Improve performance of TBS 6922 and TBS 6985 in case lock can't be acquired.<br />
<br />
* v120617 (2012-06-17)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip<br />
Changelog :<br />
TBS6280 linux driver is updated to v120617:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120503 (2012-05-03)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120503.zip<br />
Changelog :<br />
BS6280 linux driver is updated to v120503:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120412 (2012-04-12)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120412.zip<br />
Changelog :<br />
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.<br />
<br />
* v120216 (2012-02-16)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120216.zip<br />
Changelog :<br />
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.<br />
<br />
=== Compiling ===<br />
<br />
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. <br />
<br />
These instructions can all be carried out as a non-root user, until "make install".<br />
<br />
'''0. Download the drivers'''<br />
Download driver zip from the [http://www.tbsdtv.com/download/#tbs6280 manufacturer]<br />
or<br />
by the wget command line <br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
<br />
'''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.<br />
<br />
mkdir tbs-linux-drivers_v130927<br />
cd tbs-linux-drivers_v130927<br />
unzip ../tbs-linux-drivers_v130927.zip<br />
<br />
'''2. Extract linux-tbs-drivers.tar.bz2 archive'''<br />
<br />
bzip2 -d linux-tbs-drivers.tar.bz2<br />
tar xvf linux-tbs-drivers.tar<br />
<br />
'''3. Change to driver package directory'''<br />
<br />
cd linux-tbs-drivers<br />
<br />
'''4. Fix the file permissions''' <br />
<br />
At this point, the supplied tar.bz2 is completely knackered in respect of the file permissions. To fix run<br />
find -type d -exec chmod 755 \{\} \;<br />
find -type f -exec chmod 644 \{\} \;<br />
find -name '*.sh' -exec chmod 755 \{\} \;<br />
find -name '*.pl' -exec chmod 755 \{\} \;<br />
<br />
'''5. Select platform architecture'''<br />
<br />
Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981<br />
<br />
for x86 kernel 3.x (x86 32 bit installations of kernel 3.x)<br />
./v4l/tbs-x86_r3.sh<br />
<br />
''or'' for x86 kernel 2.6.x (x86 32 bit installations of kernel 2.6.x)<br />
./v4l/tbs-x86.sh<br />
<br />
''or'' for any x86_64 kernel (x86 64 bit installations of Linux)<br />
./v4l/tbs-x86_64.sh<br />
<br />
You should then receive a message along these lines:<br />
TBS drivers configured for [NAME OF PLATFORM] platform.<br />
where [NAME OF PLATFORM] is x86_r3 or x86 or 86_64<br />
<br />
'''6. Build the driver.''' Recompiles v4l for a wide range of cards, currently about 500, will take many minutes.<br />
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.<br />
make <br />
<br />
If you get -bash: make: command not found, then sudo apt-get install build-essential<br />
<br />
'''7. Install driver.''' Existing drivers for other v4l related hardware, such as lirc could also get updated.<br />
sudo make install<br />
<br />
'''8A. Reboot'''<br />
sudo reboot<br />
<br />
'''OR'''<br />
<br />
'''8B-1. Load newly installed driver'''<br />
sudo modprobe -v tbs62x0fe<br />
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko<br />
<br />
'''8B-2. Check it loaded correctly'''<br />
tail /var/log/syslog<br />
<br />
You should get a message about tainting the kernel. This is fine.<br />
<br />
kernel: tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
<br />
Running '''<code>dmesg | tail</code>''' should end with something along these lines:<br />
<br />
[ 7330.361868] tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
[ 7330.361875] Disabling lock debugging due to kernel taint<br />
<br />
'''9. Check if dvb adaptor nodes are created'''<br />
after steps 8A or 8B, dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
SAA716x TBS (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
# lspci -vvvnn | grep --after-context=27 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-<br />
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-<br />
Latency: 0, Cache Line Size: 4 bytes<br />
Interrupt: pin A routed to IRQ 16<br />
Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Address: 0000000000000000 Data: 0000<br />
Capabilities: [50] Express (v1) Endpoint, MSI 00<br />
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us<br />
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-<br />
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-<br />
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-<br />
MaxPayload 128 bytes, MaxReadReq 128 bytes<br />
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-<br />
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us<br />
ClockPM- Suprise- LLActRep- BwNot-<br />
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+<br />
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-<br />
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-<br />
Capabilities: [74] Power Management version 2<br />
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)<br />
Status: D0 PME-Enable- DSel=0 DScale=0 PME-<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
or with kernel 3.8.13.4 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x TBS<br />
<br />
===Sample kernel output===<br />
<br />
#dmesg | more<br />
<br />
SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16<br />
SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
DVB: registering new adapter (SAA716x dvb adapter)<br />
DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
<br />
With kernel 3.8.13.4 and Mageia Linux.<br />
<br />
#dmesg | more<br />
<br />
For IR remote control :<br />
<br />
[ 11.410478] IR NEC protocol handler initialized<br />
[ 11.660415] IR RC5(x) protocol handler initialized<br />
[ 11.701373] IR RC6 protocol handler initialized<br />
[ 11.943450] IR JVC protocol handler initialized<br />
...<br />
[ 12.102224] IR Sony protocol handler initialized<br />
[ 12.165011] Registered IR keymap rc-tbs-nec<br />
...<br />
[ 12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5<br />
[ 12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0<br />
<br />
For DBV-T TV :<br />
<br />
[ 11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 11.952061] Disabling lock debugging due to kernel taint<br />
...<br />
[ 12.165164] DVB: registering new adapter (SAA716x dvb adapter)<br />
...<br />
[ 14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
[ 14.115548] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
# lsmod<br />
<br />
dvb_core 109885 2 saa716x_core,saa716x_tbs_dvb<br />
saa716x_tbs_dvb 57909 0 <br />
saa716x_core 50899 1 saa716x_tbs_dvb / <br />
tbs6982fe 22408 1 saa716x_tbs_dvb /<br />
tbs6680fe 17791 1 saa716x_tbs_dvb /<br />
tbs6923fe 22408 1 saa716x_tbs_dvb /<br />
tbs6928se 17884 1 saa716x_tbs_dvb /<br />
tbs6991fe 17785 1 saa716x_tbs_dvb /<br />
tbs6618fe 17791 1 saa716x_tbs_dvb /<br />
tbs6922fe 22478 1 saa716x_tbs_dvb /<br />
tbs6928fe 17785 1 saa716x_tbs_dvb / <br />
stv090x 62235 1 saa716x_tbs_dvb / <br />
tbs62x0fe 23069 2 <br />
---<br />
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<br />
i2c_algo_bit 13413 1 saa716x_tbs_dvb<br />
i2c_i801 22443 0<br />
<br />
--> 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. <br />
<br />
* Only remote control by IRC for TV tuner card<br />
# lsmod<br />
<br />
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<br />
ir_lirc_codec 12898 0 <br />
lirc_dev 19166 1 ir_lirc_codec<br />
ir_nec_decoder 12546 0 <br />
rc_tbs_nec 12502 0 <br />
ir_mce_kbd_decoder 12879 0 <br />
ir_sony_decoder 12549 0 <br />
ir_jvc_decoder 12546 0 <br />
ir_rc6_decoder 12546 0 <br />
ir_rc5_decoder 12546 0<br />
<br />
===Errors and troubleshooting===<br />
<br />
* '''Bad platform for compiling'''<br />
<br />
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.<br />
<br />
Did you select the correct platform in step 5 above?<br />
<br />
* '''More than 2 TV card''' <br />
<br />
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747<br />
<br />
Fix UDEV problems : <BR><br />
[http://www.linuxtv.org/wiki/index.php/Device_nodes_and_character_devices Device nodes and character devices] <BR><br />
[http://windycitytech.blogspot.fr/2013/03/notes-for-configuring-udev-rules-for.html Notes for configuring udev rules for em28xx USB capture card] <BR><br />
[http://www.djsadhu.com/software/linux-howto-avoid-video-devices-getting-mixed-up-after-reboot-using-udev-rules/ Linux: howto avoid video devices getting mixed up after reboot, using udev rules] <BR><br />
[https://wiki.archlinux.org/index.php/udev#About_udev_rules About udev rules] <BR><br />
[http://www.thelinuxdaily.com/2010/01/statically-assign-dev-nodes-to-hardware-devices-in-linux/ Statically Assign /dev Nodes to Hardware Devices in Linux] <BR><br />
[http://forums.fedoraforum.org/archive/index.php/t-94775.html /dev/video0 problem] <BR> <br />
<br />
* '''Missing C header files installed for your Linux kernel version'''<br />
<br />
During compilation:<br />
make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.<br />
<br />
Make sure you have the right C header files installed for your Linux kernel version.<br />
<br />
* '''Missing /dev/dvb directory'''<br />
<br />
Some weeks later your /dev/dvb directory has disappeared? <br />
<br />
Perhaps your kernel was updated, and your machine rebooted. <br />
<br />
The driver needs to be recompiled.<br />
<br />
If you just run make, it will try to compile against the old kernel headers, so first run<br />
<br />
make distclean<br />
<br />
Then go back to step 6.<br />
<br />
* '''After rebooting, "Unknown symbol" error'''<br />
<br />
disagrees about version of symbol dvb_frontend_detach http://www.tbsdtv.com/forum/viewtopic.php?f=47&t=8195<br />
<br />
===Re-installing after a kernel upgrade===<br />
<br />
* cd to the linux-tbs-drivers directory that was created in the Making it Work section above.<br />
* Clean out the previously built objects<br />
make distclean<br />
* Choose 32bit or 64bit for our drivers again. <br />
** ./v4l/tbs-x86.sh for 32bit<br />
** ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x<br />
** ./v4l/tbs-x86_64.sh for 64bit.<br />
<br />
* Build and install the modules<br />
make -j3<br />
sudo make install<br />
* Reboot your machine or manually remove and reload the appropriate modules (see above).<br />
<br />
== Check that your tuner card works ==<br />
<br />
=== 1.Check that linux tool can find TV channels ===<br />
<br />
* Use the [http://www.linuxtv.org/wiki/index.php/Scan scan command line]. Others scan tools are available [[Frequency scan|here]].<br />
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find<br />
file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file.<br><br />
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.<br><br />
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 :<br />
# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs <br />
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx><br />
#<br />
# updated by/mis a jour par : Yannick, date: 11/2014<br />
# <br />
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : <br />
# http://pros.toutelatnt.fr/sites/default/files/dossier_technique_phase_1_v2.pdf<br />
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : <br />
# http://www.recevoirlatnt.fr/professionnels/la-tnt/correspondance-canauxfrequences/<br />
#<br />
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : <br />
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, <br />
# selectionnez votre region sur la carte, en bas de la nouvelle page, <br />
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", <br />
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.<br />
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ <br />
#<br />
# All french DVB-T channels / toutes les chaines de la TNT en France<br />
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT<br />
#<br />
# City R1 R2 R3 R4 R5 R6 R7 R8 R15(ex-L8) <br />
# Paris - Tour Eiffel : 35 25 22 30 28 32 42 58 33 <br />
# Paris Est - Chennevières : 35 25 22 30 28 32 42 58 <br />
# Paris Nord - Sannois : 35 25 22 30 28 32 42 58 <br />
# Paris Sud - Villebon : 35 25 22 30 28 32 42 58<br />
# <br />
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy<br />
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie<br />
#<br />
# R1 - Canal 35 - Groupe GR1 (France 2,France 5,France Ô,LCP/Public Sénat,France 3)<br />
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
#<br />
# R2 - Canal 25 - Groupe NTN (D8,BFM TV,I-Télé,D17,Gulli,France 4)<br />
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R3 - Canal 22 - Groupe CNH (Canal+,Canal+ Cinéma,Canal+ Sport,Planète+,DataSystem R7)<br />
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R4 - Canal 30 - Groupe Multi4 (M6,W9,NT1,Paris Première,Arte HD)<br />
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R5 - Canal 28 - Groupe MR5 (TF1 HD,France 2 HD,M6 HD)<br />
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R6 - Canal 32 - Groupe SMR6 (TF1,NRJ 12,Eurosport,LCI,TMC,TF6,Arte)<br />
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25,L equipe 21) <br />
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R8 - Canal 58 - Groupe R8 (6ter,Numero 23, RMC Decouverte)<br />
T 770166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R15 chaînes locales uniquement sur emetteur Paris - Tour Eiffel <br />
# R15 (ex-L8) Canal 33 - Groupe Multi-7 (Canal 31,IDF1,France 24,BFM Business Paris) <br />
T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2<br />
# uniquement sur emetteur Paris - Tour Eiffel <br />
# Canaux de test nommes Test UHD1 et Test UHD2 (audio en AAC et video en HEVC (H.265))<br />
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), <br />
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)<br />
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/<br />
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
<br />
* Other tools here at [http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Testing your DVB device]<br />
<br />
=== 2.Check that you can listen/see audio/video stream for your TV channel ===<br />
<br />
==== With Me TV ====<br />
<br />
* Importing TV channels configuration in Me TV <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
launch Me TV<br />
menu View > Channels > Add , and open the file channels.conf in /home/your_user_account<br />
<br />
==== With vlc ====<br />
<br />
* Importing TV channels configuration in VLC <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
Now open up VLC. <br />
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.<br />
<br />
=== 3.Recording TV channel stream ===<br />
<br />
==== Record TV audio/video stream with vlc ====<br />
1) Choose the folder for the recording files : [http://askubuntu.com/questions/122398/how-can-i-change-the-folder-where-vlc-stores-its-streams How can I change the folder where VLC stores its streams?] <BR><br />
2) Enable the "Advanced controls" to get the button with red dot (recording button) : [http://www.dedoimedo.com/computers/vlc-streaming.html How to stream and record media in VLC / secondth part : Recording]<br />
<br />
==== Create a recording script ==== <br />
<br />
[http://wiki.gentoo.org/wiki/TV_Tuner#Scheduling Create a recording script]<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/download/ Driver download page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=52 TBS Official Support forum for 6280 card]<br />
* [http://www.buydvb.net/dvbt2-tv-tuner-pcie-c-12/tbs6280-pcie-dvbt2t-dual-tuner-card-p-38.html TBS6280 Product page at buydvb.net (USA)] with online purchase. Not widely available online.<br />
* [http://www.amazon.fr/TNT-T%C3%A9l%C3%A9vision-Num%C3%A9rique-Terrestre-r%C3%A9ception/dp/B007PYNGLO/ TBS6280 Product page at amazon.fr (France)] with online purchase. Not widely available online.<br />
* [http://www.amazon.co.uk/TBS-DVB-T2-Definition-Digital-Receiver/dp/B005JTA7TG/ TBS6280 Product page at amazon.co.uk (United Kingdom)] with online purchase. Not widely available online.<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category:DVB-T2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6280&diff=33753TBS62802014-11-27T21:40:24Z<p>Yannick56: /* Making it Work (Open source) */ add more testing</p>
<hr />
<div>A dual [[DVB-T]]/[[DVB-T2]] [[DVB-T2 PCIe Cards|PCIe card]] from [http://www.tbsdtv.com/ TurboSight].<br />
<br />
The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.<br />
<br />
There is also an [[#Making it Work (Open source)|open source driver]] for TBS 6280 developed by Luis Jalves.<br />
<br />
==Overview/Features==<br />
<br />
* PCI-e x1<br />
* Dual Tuner DVB-T/DVB-T2 card<br />
* RF antenna pass-through<br />
* IR Receiver <br />
* Remote Controller <br />
<br />
===Components Used===<br />
<br />
* [[NXP SAA716x|NXP SAA7160ET]] (PCI Express Based Audio And Video Bridge), <b>driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card</b><br />
* [[NXP/Philips_TDA182xx#TDA18212HN|NXP (TDA) 18212/M]] (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, <b>(driver included in linux kernel >= 3.0)</b><br />
* [[Sony CXD2820|SONY CXD2820R]] (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, <b>(driver included in linux kernel >= 3.0)</b><br />
<br />
===Identification===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
If the driver is NOT yet installed or loaded, then output will instead be<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
<br />
The final line with "Kernel driver in use:" is missing because NO driver is loaded.<br />
<br />
==Making it Work (Open source)==<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. These instructions are taken directly from those pages.<br />
<br />
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.<br />
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)). <br />
<br />
===Building the Open Source Driver===<br />
<br />
These instructions are taken from [https://github.com/ljalves/linux_media/wiki/Installating here]:<br />
<br />
git clone git://linuxtv.org/media_build.git<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
cd media_build<br />
make dir DIR=../media<br />
make distclean<br />
make<br />
sudo make install<br />
<br />
===Loading the Modules===<br />
<br />
The simplest option is to reboot, but if you would rather not, execute these commands:<br />
<br />
sudo make rmmod<br />
sudo modprobe saa716x_budget int_type=1<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
With kernel 3.14.24 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget<br />
<br />
You need to see the 2 following lines that show that the SAA716x driver for the TBS TV card is loaded :<br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget <br />
<br />
=== Check if dvb adaptor nodes are created ===<br />
<br />
Now, if the SAA716x driver is loaded, the dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
<br />
SAA716x Budget (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (Sony CXD2820R) <br />
FE_OFDM Fmin=48MHz Fmax=864MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (Sony CXD2820R) <br />
FE_OFDM Fmin=48MHz Fmax=864MHz<br />
<br />
===Troubleshooting===<br />
<br />
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).<br />
<br />
sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*<br />
<br />
===Upgrading Sources and Re-installing===<br />
<br />
cd media<br />
git remote update<br />
git pull<br />
cd ../media_build<br />
git remote update<br />
git pull<br />
make<br />
sudo make install<br />
<br />
You should now reboot or unload/reload the modules manually.<br />
<br />
===Supporting the Open Source Driver===<br />
<br />
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.<br />
<br />
Luis also has a [https://github.com/ljalves/linux_media/wiki donate link] on github.<br />
<br />
==Making it Work (Closed source)==<br />
<br />
===Drivers===<br />
<br />
Available [http://www.tbsdtv.com/download/#tbs6280 here]. <br />
<br />
TurboSight Proprietary by Konstantin Dimitrov <kosio.dimitrov@gmail.com> for TurboSight TBS 62x0 DVBT/T2/C frontend driver module of www.turbosight.com<br />
<br />
Old release for drivers if you have problem with your kernel :<br />
<br />
* v141019 (2014-10-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v141019.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v141019., which has below updating:<br />
* Fix numerous bugs from the previous release<br />
<br />
* v140707 (2014-07-07)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140707.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140707., which has below updating:<br />
* improve work of TBS 5990<br />
* add support for latest hardware revisions of TBS 5220, TBS 5881, TBS 5281<br />
* numerous improvements in bug fixes in drivers for TBS 6221, TBS6281, TBS 6285 and TBS 6290<br />
<br />
* v140425 (2014-04-25)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140425.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140425., which has below updating:<br />
* Fixed the TBS6928SE ID problem<br />
<br />
* v140323 (2014-03-23)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140323.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140323., which has below updating:<br />
* Add support for 5922SE<br />
* Add proper support for retail version of 6922SE<br />
* Add T2 lite support for latest hardware revision of 6221, 6281, 6285<br />
* Add "ClearQAM" (J83B) US Digital Cable support to DVB-C driver for latest T2 lite hardware revision of 6221, 6281, 6285<br />
<br />
* v140113 (2014-01-13)<br />
http://tbsdtv.com/download/document/common/tbs-linux-drivers_v140113.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140113, which has below updating: <br />
* Improve compatibility with the upcoming Linux kernel 3.13.x<br />
* Add full support (both DVBT/T2 and DVBC are supported) for TBS 5281 <br />
<br />
* v130927 (2013-09-27)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130927, which has below updating:<br />
* Add DVB-C driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Finalize DVB-T/T2 driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Improve software compatibility for all DVB-C products<br />
* Improve software compatibility for all DVB-T/T2 products<br />
* Make power control for TBS 6984 more reliable<br />
<br />
* v130802 (2013-08-02)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130802.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130802, which has below updating:<br />
* improve compatibility with Linux kernel version 3.10<br />
* preliminary support for Linux kernel version 3.11<br />
* add support for all revisions of TBS 6982<br />
* add support for all revisions of TBS 6928SE<br />
* add PLP (Physical Layer Pipe) support for 6220, 6280, 6284 (PLP, see http://en.wikipedia.org/wiki/DVB-T2#Technical_details)<br />
* fix bug for DVB-C products (TBS 6618, TBS 6680, TBS 5680 and DVB-C USB Stick): improve performance in some DVB-C networks<br />
<br />
* v130506 (2013-05-06)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130506, which has below updating:<br />
* Further improve compatibility with 32-bit Linux kernels version 3.8.x and 3.9.x.<br />
* Add module parameter "enable_ir" that allows disabling IR support for TBS cards.<br />
<br />
* v121119 (2012-11-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v121119.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v121119, which has belowed updating:<br />
* Add support for dBm reporting with TBS 6922.<br />
* Improve performance of TBS 6922 and TBS 6985 in case lock can't be acquired.<br />
<br />
* v120617 (2012-06-17)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip<br />
Changelog :<br />
TBS6280 linux driver is updated to v120617:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120503 (2012-05-03)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120503.zip<br />
Changelog :<br />
BS6280 linux driver is updated to v120503:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120412 (2012-04-12)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120412.zip<br />
Changelog :<br />
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.<br />
<br />
* v120216 (2012-02-16)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120216.zip<br />
Changelog :<br />
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.<br />
<br />
=== Compiling ===<br />
<br />
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. <br />
<br />
These instructions can all be carried out as a non-root user, until "make install".<br />
<br />
'''0. Download the drivers'''<br />
Download driver zip from the [http://www.tbsdtv.com/download/#tbs6280 manufacturer]<br />
or<br />
by the wget command line <br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
<br />
'''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.<br />
<br />
mkdir tbs-linux-drivers_v130927<br />
cd tbs-linux-drivers_v130927<br />
unzip ../tbs-linux-drivers_v130927.zip<br />
<br />
'''2. Extract linux-tbs-drivers.tar.bz2 archive'''<br />
<br />
bzip2 -d linux-tbs-drivers.tar.bz2<br />
tar xvf linux-tbs-drivers.tar<br />
<br />
'''3. Change to driver package directory'''<br />
<br />
cd linux-tbs-drivers<br />
<br />
'''4. Fix the file permissions''' <br />
<br />
At this point, the supplied tar.bz2 is completely knackered in respect of the file permissions. To fix run<br />
find -type d -exec chmod 755 \{\} \;<br />
find -type f -exec chmod 644 \{\} \;<br />
find -name '*.sh' -exec chmod 755 \{\} \;<br />
find -name '*.pl' -exec chmod 755 \{\} \;<br />
<br />
'''5. Select platform architecture'''<br />
<br />
Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981<br />
<br />
for x86 kernel 3.x (x86 32 bit installations of kernel 3.x)<br />
./v4l/tbs-x86_r3.sh<br />
<br />
''or'' for x86 kernel 2.6.x (x86 32 bit installations of kernel 2.6.x)<br />
./v4l/tbs-x86.sh<br />
<br />
''or'' for any x86_64 kernel (x86 64 bit installations of Linux)<br />
./v4l/tbs-x86_64.sh<br />
<br />
You should then receive a message along these lines:<br />
TBS drivers configured for [NAME OF PLATFORM] platform.<br />
where [NAME OF PLATFORM] is x86_r3 or x86 or 86_64<br />
<br />
'''6. Build the driver.''' Recompiles v4l for a wide range of cards, currently about 500, will take many minutes.<br />
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.<br />
make <br />
<br />
If you get -bash: make: command not found, then sudo apt-get install build-essential<br />
<br />
'''7. Install driver.''' Existing drivers for other v4l related hardware, such as lirc could also get updated.<br />
sudo make install<br />
<br />
'''8A. Reboot'''<br />
sudo reboot<br />
<br />
'''OR'''<br />
<br />
'''8B-1. Load newly installed driver'''<br />
sudo modprobe -v tbs62x0fe<br />
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko<br />
<br />
'''8B-2. Check it loaded correctly'''<br />
tail /var/log/syslog<br />
<br />
You should get a message about tainting the kernel. This is fine.<br />
<br />
kernel: tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
<br />
Running '''<code>dmesg | tail</code>''' should end with something along these lines:<br />
<br />
[ 7330.361868] tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
[ 7330.361875] Disabling lock debugging due to kernel taint<br />
<br />
'''9. Check if dvb adaptor nodes are created'''<br />
after steps 8A or 8B, dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
SAA716x TBS (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
# lspci -vvvnn | grep --after-context=27 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-<br />
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-<br />
Latency: 0, Cache Line Size: 4 bytes<br />
Interrupt: pin A routed to IRQ 16<br />
Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Address: 0000000000000000 Data: 0000<br />
Capabilities: [50] Express (v1) Endpoint, MSI 00<br />
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us<br />
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-<br />
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-<br />
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-<br />
MaxPayload 128 bytes, MaxReadReq 128 bytes<br />
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-<br />
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us<br />
ClockPM- Suprise- LLActRep- BwNot-<br />
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+<br />
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-<br />
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-<br />
Capabilities: [74] Power Management version 2<br />
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)<br />
Status: D0 PME-Enable- DSel=0 DScale=0 PME-<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
or with kernel 3.8.13.4 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x TBS<br />
<br />
===Sample kernel output===<br />
<br />
#dmesg | more<br />
<br />
SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16<br />
SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
DVB: registering new adapter (SAA716x dvb adapter)<br />
DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
<br />
With kernel 3.8.13.4 and Mageia Linux.<br />
<br />
#dmesg | more<br />
<br />
For IR remote control :<br />
<br />
[ 11.410478] IR NEC protocol handler initialized<br />
[ 11.660415] IR RC5(x) protocol handler initialized<br />
[ 11.701373] IR RC6 protocol handler initialized<br />
[ 11.943450] IR JVC protocol handler initialized<br />
...<br />
[ 12.102224] IR Sony protocol handler initialized<br />
[ 12.165011] Registered IR keymap rc-tbs-nec<br />
...<br />
[ 12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5<br />
[ 12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0<br />
<br />
For DBV-T TV :<br />
<br />
[ 11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 11.952061] Disabling lock debugging due to kernel taint<br />
...<br />
[ 12.165164] DVB: registering new adapter (SAA716x dvb adapter)<br />
...<br />
[ 14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
[ 14.115548] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
# lsmod<br />
<br />
dvb_core 109885 2 saa716x_core,saa716x_tbs_dvb<br />
saa716x_tbs_dvb 57909 0 <br />
saa716x_core 50899 1 saa716x_tbs_dvb / <br />
tbs6982fe 22408 1 saa716x_tbs_dvb /<br />
tbs6680fe 17791 1 saa716x_tbs_dvb /<br />
tbs6923fe 22408 1 saa716x_tbs_dvb /<br />
tbs6928se 17884 1 saa716x_tbs_dvb /<br />
tbs6991fe 17785 1 saa716x_tbs_dvb /<br />
tbs6618fe 17791 1 saa716x_tbs_dvb /<br />
tbs6922fe 22478 1 saa716x_tbs_dvb /<br />
tbs6928fe 17785 1 saa716x_tbs_dvb / <br />
stv090x 62235 1 saa716x_tbs_dvb / <br />
tbs62x0fe 23069 2 <br />
---<br />
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<br />
i2c_algo_bit 13413 1 saa716x_tbs_dvb<br />
i2c_i801 22443 0<br />
<br />
--> 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. <br />
<br />
* Only remote control by IRC for TV tuner card<br />
# lsmod<br />
<br />
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<br />
ir_lirc_codec 12898 0 <br />
lirc_dev 19166 1 ir_lirc_codec<br />
ir_nec_decoder 12546 0 <br />
rc_tbs_nec 12502 0 <br />
ir_mce_kbd_decoder 12879 0 <br />
ir_sony_decoder 12549 0 <br />
ir_jvc_decoder 12546 0 <br />
ir_rc6_decoder 12546 0 <br />
ir_rc5_decoder 12546 0<br />
<br />
===Errors and troubleshooting===<br />
<br />
* '''Bad platform for compiling'''<br />
<br />
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.<br />
<br />
Did you select the correct platform in step 5 above?<br />
<br />
* '''More than 2 TV card''' <br />
<br />
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747<br />
<br />
Fix UDEV problems : <BR><br />
[http://www.linuxtv.org/wiki/index.php/Device_nodes_and_character_devices Device nodes and character devices] <BR><br />
[http://windycitytech.blogspot.fr/2013/03/notes-for-configuring-udev-rules-for.html Notes for configuring udev rules for em28xx USB capture card] <BR><br />
[http://www.djsadhu.com/software/linux-howto-avoid-video-devices-getting-mixed-up-after-reboot-using-udev-rules/ Linux: howto avoid video devices getting mixed up after reboot, using udev rules] <BR><br />
[https://wiki.archlinux.org/index.php/udev#About_udev_rules About udev rules] <BR><br />
[http://www.thelinuxdaily.com/2010/01/statically-assign-dev-nodes-to-hardware-devices-in-linux/ Statically Assign /dev Nodes to Hardware Devices in Linux] <BR><br />
[http://forums.fedoraforum.org/archive/index.php/t-94775.html /dev/video0 problem] <BR> <br />
<br />
* '''Missing C header files installed for your Linux kernel version'''<br />
<br />
During compilation:<br />
make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.<br />
<br />
Make sure you have the right C header files installed for your Linux kernel version.<br />
<br />
* '''Missing /dev/dvb directory'''<br />
<br />
Some weeks later your /dev/dvb directory has disappeared? <br />
<br />
Perhaps your kernel was updated, and your machine rebooted. <br />
<br />
The driver needs to be recompiled.<br />
<br />
If you just run make, it will try to compile against the old kernel headers, so first run<br />
<br />
make distclean<br />
<br />
Then go back to step 6.<br />
<br />
* '''After rebooting, "Unknown symbol" error'''<br />
<br />
disagrees about version of symbol dvb_frontend_detach http://www.tbsdtv.com/forum/viewtopic.php?f=47&t=8195<br />
<br />
===Re-installing after a kernel upgrade===<br />
<br />
* cd to the linux-tbs-drivers directory that was created in the Making it Work section above.<br />
* Clean out the previously built objects<br />
make distclean<br />
* Choose 32bit or 64bit for our drivers again. <br />
** ./v4l/tbs-x86.sh for 32bit<br />
** ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x<br />
** ./v4l/tbs-x86_64.sh for 64bit.<br />
<br />
* Build and install the modules<br />
make -j3<br />
sudo make install<br />
* Reboot your machine or manually remove and reload the appropriate modules (see above).<br />
<br />
== Check that your tuner card works ==<br />
<br />
=== 1.Check that linux tool can find TV channels ===<br />
<br />
* Use the [http://www.linuxtv.org/wiki/index.php/Scan scan command line]. Others scan tools are available [[Frequency scan|here]].<br />
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find<br />
file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file.<br><br />
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.<br><br />
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 :<br />
# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs <br />
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx><br />
#<br />
# updated by/mis a jour par : Yannick, date: 11/2014<br />
# <br />
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : <br />
# http://pros.toutelatnt.fr/sites/default/files/dossier_technique_phase_1_v2.pdf<br />
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : <br />
# http://www.recevoirlatnt.fr/professionnels/la-tnt/correspondance-canauxfrequences/<br />
#<br />
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : <br />
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, <br />
# selectionnez votre region sur la carte, en bas de la nouvelle page, <br />
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", <br />
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.<br />
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ <br />
#<br />
# All french DVB-T channels / toutes les chaines de la TNT en France<br />
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT<br />
#<br />
# City R1 R2 R3 R4 R5 R6 R7 R8 R15(ex-L8) <br />
# Paris - Tour Eiffel : 35 25 22 30 28 32 42 58 33 <br />
# Paris Est - Chennevières : 35 25 22 30 28 32 42 58 <br />
# Paris Nord - Sannois : 35 25 22 30 28 32 42 58 <br />
# Paris Sud - Villebon : 35 25 22 30 28 32 42 58<br />
# <br />
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy<br />
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie<br />
#<br />
# R1 - Canal 35 - Groupe GR1 (France 2,France 5,France Ô,LCP/Public Sénat,France 3)<br />
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
#<br />
# R2 - Canal 25 - Groupe NTN (D8,BFM TV,I-Télé,D17,Gulli,France 4)<br />
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R3 - Canal 22 - Groupe CNH (Canal+,Canal+ Cinéma,Canal+ Sport,Planète+,DataSystem R7)<br />
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R4 - Canal 30 - Groupe Multi4 (M6,W9,NT1,Paris Première,Arte HD)<br />
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R5 - Canal 28 - Groupe MR5 (TF1 HD,France 2 HD,M6 HD)<br />
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R6 - Canal 32 - Groupe SMR6 (TF1,NRJ 12,Eurosport,LCI,TMC,TF6,Arte)<br />
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25,L equipe 21) <br />
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R8 - Canal 58 - Groupe R8 (6ter,Numero 23, RMC Decouverte)<br />
T 770166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R15 chaînes locales uniquement sur emetteur Paris - Tour Eiffel <br />
# R15 (ex-L8) Canal 33 - Groupe Multi-7 (Canal 31,IDF1,France 24,BFM Business Paris) <br />
T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2<br />
# uniquement sur emetteur Paris - Tour Eiffel <br />
# Canaux de test nommes Test UHD1 et Test UHD2 (audio en AAC et video en HEVC (H.265))<br />
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), <br />
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)<br />
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/<br />
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
<br />
* Other tools here at [http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Testing your DVB device]<br />
<br />
=== 2.Check that you can listen/see audio/video stream for your TV channel ===<br />
<br />
==== With Me TV ====<br />
<br />
* Importing TV channels configuration in Me TV <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
launch Me TV<br />
menu View > Channels > Add , and open the file channels.conf in /home/your_user_account<br />
<br />
==== With vlc ====<br />
<br />
* Importing TV channels configuration in VLC <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
Now open up VLC. <br />
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.<br />
<br />
=== 3.Recording TV channel stream ===<br />
<br />
==== Record TV audio/video stream with vlc ====<br />
1) Choose the folder for the recording files : [http://askubuntu.com/questions/122398/how-can-i-change-the-folder-where-vlc-stores-its-streams How can I change the folder where VLC stores its streams?] <BR><br />
2) Enable the "Advanced controls" to get the button with red dot (recording button) : [http://www.dedoimedo.com/computers/vlc-streaming.html How to stream and record media in VLC / secondth part : Recording]<br />
<br />
==== Create a recording script ==== <br />
<br />
[http://wiki.gentoo.org/wiki/TV_Tuner#Scheduling Create a recording script]<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/download/ Driver download page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=52 TBS Official Support forum for 6280 card]<br />
* [http://www.buydvb.net/dvbt2-tv-tuner-pcie-c-12/tbs6280-pcie-dvbt2t-dual-tuner-card-p-38.html TBS6280 Product page at buydvb.net (USA)] with online purchase. Not widely available online.<br />
* [http://www.amazon.fr/TNT-T%C3%A9l%C3%A9vision-Num%C3%A9rique-Terrestre-r%C3%A9ception/dp/B007PYNGLO/ TBS6280 Product page at amazon.fr (France)] with online purchase. Not widely available online.<br />
* [http://www.amazon.co.uk/TBS-DVB-T2-Definition-Digital-Receiver/dp/B005JTA7TG/ TBS6280 Product page at amazon.co.uk (United Kingdom)] with online purchase. Not widely available online.<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category:DVB-T2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6280&diff=33752TBS62802014-11-27T18:36:23Z<p>Yannick56: fix</p>
<hr />
<div>A dual [[DVB-T]]/[[DVB-T2]] [[DVB-T2 PCIe Cards|PCIe card]] from [http://www.tbsdtv.com/ TurboSight].<br />
<br />
The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.<br />
<br />
There is also an [[#Making it Work (Open source)|open source driver]] for TBS 6280 developed by Luis Jalves.<br />
<br />
==Overview/Features==<br />
<br />
* PCI-e x1<br />
* Dual Tuner DVB-T/DVB-T2 card<br />
* RF antenna pass-through<br />
* IR Receiver <br />
* Remote Controller <br />
<br />
===Components Used===<br />
<br />
* [[NXP SAA716x|NXP SAA7160ET]] (PCI Express Based Audio And Video Bridge), <b>driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card</b><br />
* [[NXP/Philips_TDA182xx#TDA18212HN|NXP (TDA) 18212/M]] (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, <b>(driver included in linux kernel >= 3.0)</b><br />
* [[Sony CXD2820|SONY CXD2820R]] (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, <b>(driver included in linux kernel >= 3.0)</b><br />
<br />
===Identification===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
If the driver is NOT yet installed or loaded, then output will instead be<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
<br />
The final line with "Kernel driver in use:" is missing because NO driver is loaded.<br />
<br />
==Making it Work (Open source)==<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. These instructions are taken directly from those pages.<br />
<br />
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.<br />
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)). <br />
<br />
===Building the Open Source Driver===<br />
<br />
These instructions are taken from [https://github.com/ljalves/linux_media/wiki/Installating here]:<br />
<br />
git clone git://linuxtv.org/media_build.git<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
cd media_build<br />
make dir DIR=../media<br />
make distclean<br />
make<br />
sudo make install<br />
<br />
===Loading the Modules===<br />
<br />
The simplest option is to reboot, but if you would rather not, execute these commands:<br />
<br />
sudo make rmmod<br />
sudo modprobe saa716x_budget int_type=1<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
With kernel 3.14.24 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget<br />
<br />
===Troubleshooting===<br />
<br />
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).<br />
<br />
sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*<br />
<br />
===Upgrading Sources and Re-installing===<br />
<br />
cd media<br />
git remote update<br />
git pull<br />
cd ../media_build<br />
git remote update<br />
git pull<br />
make<br />
sudo make install<br />
<br />
You should now reboot or unload/reload the modules manually.<br />
<br />
===Supporting the Open Source Driver===<br />
<br />
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.<br />
<br />
Luis also has a [https://github.com/ljalves/linux_media/wiki donate link] on github.<br />
<br />
==Making it Work (Closed source)==<br />
<br />
===Drivers===<br />
<br />
Available [http://www.tbsdtv.com/download/#tbs6280 here]. <br />
<br />
TurboSight Proprietary by Konstantin Dimitrov <kosio.dimitrov@gmail.com> for TurboSight TBS 62x0 DVBT/T2/C frontend driver module of www.turbosight.com<br />
<br />
Old release for drivers if you have problem with your kernel :<br />
<br />
* v141019 (2014-10-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v141019.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v141019., which has below updating:<br />
* Fix numerous bugs from the previous release<br />
<br />
* v140707 (2014-07-07)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140707.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140707., which has below updating:<br />
* improve work of TBS 5990<br />
* add support for latest hardware revisions of TBS 5220, TBS 5881, TBS 5281<br />
* numerous improvements in bug fixes in drivers for TBS 6221, TBS6281, TBS 6285 and TBS 6290<br />
<br />
* v140425 (2014-04-25)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140425.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140425., which has below updating:<br />
* Fixed the TBS6928SE ID problem<br />
<br />
* v140323 (2014-03-23)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140323.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140323., which has below updating:<br />
* Add support for 5922SE<br />
* Add proper support for retail version of 6922SE<br />
* Add T2 lite support for latest hardware revision of 6221, 6281, 6285<br />
* Add "ClearQAM" (J83B) US Digital Cable support to DVB-C driver for latest T2 lite hardware revision of 6221, 6281, 6285<br />
<br />
* v140113 (2014-01-13)<br />
http://tbsdtv.com/download/document/common/tbs-linux-drivers_v140113.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140113, which has below updating: <br />
* Improve compatibility with the upcoming Linux kernel 3.13.x<br />
* Add full support (both DVBT/T2 and DVBC are supported) for TBS 5281 <br />
<br />
* v130927 (2013-09-27)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130927, which has below updating:<br />
* Add DVB-C driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Finalize DVB-T/T2 driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Improve software compatibility for all DVB-C products<br />
* Improve software compatibility for all DVB-T/T2 products<br />
* Make power control for TBS 6984 more reliable<br />
<br />
* v130802 (2013-08-02)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130802.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130802, which has below updating:<br />
* improve compatibility with Linux kernel version 3.10<br />
* preliminary support for Linux kernel version 3.11<br />
* add support for all revisions of TBS 6982<br />
* add support for all revisions of TBS 6928SE<br />
* add PLP (Physical Layer Pipe) support for 6220, 6280, 6284 (PLP, see http://en.wikipedia.org/wiki/DVB-T2#Technical_details)<br />
* fix bug for DVB-C products (TBS 6618, TBS 6680, TBS 5680 and DVB-C USB Stick): improve performance in some DVB-C networks<br />
<br />
* v130506 (2013-05-06)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130506, which has below updating:<br />
* Further improve compatibility with 32-bit Linux kernels version 3.8.x and 3.9.x.<br />
* Add module parameter "enable_ir" that allows disabling IR support for TBS cards.<br />
<br />
* v121119 (2012-11-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v121119.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v121119, which has belowed updating:<br />
* Add support for dBm reporting with TBS 6922.<br />
* Improve performance of TBS 6922 and TBS 6985 in case lock can't be acquired.<br />
<br />
* v120617 (2012-06-17)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip<br />
Changelog :<br />
TBS6280 linux driver is updated to v120617:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120503 (2012-05-03)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120503.zip<br />
Changelog :<br />
BS6280 linux driver is updated to v120503:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120412 (2012-04-12)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120412.zip<br />
Changelog :<br />
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.<br />
<br />
* v120216 (2012-02-16)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120216.zip<br />
Changelog :<br />
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.<br />
<br />
=== Compiling ===<br />
<br />
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. <br />
<br />
These instructions can all be carried out as a non-root user, until "make install".<br />
<br />
'''0. Download the drivers'''<br />
Download driver zip from the [http://www.tbsdtv.com/download/#tbs6280 manufacturer]<br />
or<br />
by the wget command line <br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
<br />
'''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.<br />
<br />
mkdir tbs-linux-drivers_v130927<br />
cd tbs-linux-drivers_v130927<br />
unzip ../tbs-linux-drivers_v130927.zip<br />
<br />
'''2. Extract linux-tbs-drivers.tar.bz2 archive'''<br />
<br />
bzip2 -d linux-tbs-drivers.tar.bz2<br />
tar xvf linux-tbs-drivers.tar<br />
<br />
'''3. Change to driver package directory'''<br />
<br />
cd linux-tbs-drivers<br />
<br />
'''4. Fix the file permissions''' <br />
<br />
At this point, the supplied tar.bz2 is completely knackered in respect of the file permissions. To fix run<br />
find -type d -exec chmod 755 \{\} \;<br />
find -type f -exec chmod 644 \{\} \;<br />
find -name '*.sh' -exec chmod 755 \{\} \;<br />
find -name '*.pl' -exec chmod 755 \{\} \;<br />
<br />
'''5. Select platform architecture'''<br />
<br />
Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981<br />
<br />
for x86 kernel 3.x (x86 32 bit installations of kernel 3.x)<br />
./v4l/tbs-x86_r3.sh<br />
<br />
''or'' for x86 kernel 2.6.x (x86 32 bit installations of kernel 2.6.x)<br />
./v4l/tbs-x86.sh<br />
<br />
''or'' for any x86_64 kernel (x86 64 bit installations of Linux)<br />
./v4l/tbs-x86_64.sh<br />
<br />
You should then receive a message along these lines:<br />
TBS drivers configured for [NAME OF PLATFORM] platform.<br />
where [NAME OF PLATFORM] is x86_r3 or x86 or 86_64<br />
<br />
'''6. Build the driver.''' Recompiles v4l for a wide range of cards, currently about 500, will take many minutes.<br />
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.<br />
make <br />
<br />
If you get -bash: make: command not found, then sudo apt-get install build-essential<br />
<br />
'''7. Install driver.''' Existing drivers for other v4l related hardware, such as lirc could also get updated.<br />
sudo make install<br />
<br />
'''8A. Reboot'''<br />
sudo reboot<br />
<br />
'''OR'''<br />
<br />
'''8B-1. Load newly installed driver'''<br />
sudo modprobe -v tbs62x0fe<br />
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko<br />
<br />
'''8B-2. Check it loaded correctly'''<br />
tail /var/log/syslog<br />
<br />
You should get a message about tainting the kernel. This is fine.<br />
<br />
kernel: tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
<br />
Running '''<code>dmesg | tail</code>''' should end with something along these lines:<br />
<br />
[ 7330.361868] tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
[ 7330.361875] Disabling lock debugging due to kernel taint<br />
<br />
'''9. Check if dvb adaptor nodes are created'''<br />
after steps 8A or 8B, dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
SAA716x TBS (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
# lspci -vvvnn | grep --after-context=27 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-<br />
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-<br />
Latency: 0, Cache Line Size: 4 bytes<br />
Interrupt: pin A routed to IRQ 16<br />
Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Address: 0000000000000000 Data: 0000<br />
Capabilities: [50] Express (v1) Endpoint, MSI 00<br />
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us<br />
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-<br />
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-<br />
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-<br />
MaxPayload 128 bytes, MaxReadReq 128 bytes<br />
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-<br />
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us<br />
ClockPM- Suprise- LLActRep- BwNot-<br />
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+<br />
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-<br />
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-<br />
Capabilities: [74] Power Management version 2<br />
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)<br />
Status: D0 PME-Enable- DSel=0 DScale=0 PME-<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
or with kernel 3.8.13.4 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x TBS<br />
<br />
===Sample kernel output===<br />
<br />
#dmesg | more<br />
<br />
SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16<br />
SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
DVB: registering new adapter (SAA716x dvb adapter)<br />
DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
<br />
With kernel 3.8.13.4 and Mageia Linux.<br />
<br />
#dmesg | more<br />
<br />
For IR remote control :<br />
<br />
[ 11.410478] IR NEC protocol handler initialized<br />
[ 11.660415] IR RC5(x) protocol handler initialized<br />
[ 11.701373] IR RC6 protocol handler initialized<br />
[ 11.943450] IR JVC protocol handler initialized<br />
...<br />
[ 12.102224] IR Sony protocol handler initialized<br />
[ 12.165011] Registered IR keymap rc-tbs-nec<br />
...<br />
[ 12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5<br />
[ 12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0<br />
<br />
For DBV-T TV :<br />
<br />
[ 11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 11.952061] Disabling lock debugging due to kernel taint<br />
...<br />
[ 12.165164] DVB: registering new adapter (SAA716x dvb adapter)<br />
...<br />
[ 14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
[ 14.115548] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
# lsmod<br />
<br />
dvb_core 109885 2 saa716x_core,saa716x_tbs_dvb<br />
saa716x_tbs_dvb 57909 0 <br />
saa716x_core 50899 1 saa716x_tbs_dvb / <br />
tbs6982fe 22408 1 saa716x_tbs_dvb /<br />
tbs6680fe 17791 1 saa716x_tbs_dvb /<br />
tbs6923fe 22408 1 saa716x_tbs_dvb /<br />
tbs6928se 17884 1 saa716x_tbs_dvb /<br />
tbs6991fe 17785 1 saa716x_tbs_dvb /<br />
tbs6618fe 17791 1 saa716x_tbs_dvb /<br />
tbs6922fe 22478 1 saa716x_tbs_dvb /<br />
tbs6928fe 17785 1 saa716x_tbs_dvb / <br />
stv090x 62235 1 saa716x_tbs_dvb / <br />
tbs62x0fe 23069 2 <br />
---<br />
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<br />
i2c_algo_bit 13413 1 saa716x_tbs_dvb<br />
i2c_i801 22443 0<br />
<br />
--> 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. <br />
<br />
* Only remote control by IRC for TV tuner card<br />
# lsmod<br />
<br />
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<br />
ir_lirc_codec 12898 0 <br />
lirc_dev 19166 1 ir_lirc_codec<br />
ir_nec_decoder 12546 0 <br />
rc_tbs_nec 12502 0 <br />
ir_mce_kbd_decoder 12879 0 <br />
ir_sony_decoder 12549 0 <br />
ir_jvc_decoder 12546 0 <br />
ir_rc6_decoder 12546 0 <br />
ir_rc5_decoder 12546 0<br />
<br />
===Errors and troubleshooting===<br />
<br />
* '''Bad platform for compiling'''<br />
<br />
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.<br />
<br />
Did you select the correct platform in step 5 above?<br />
<br />
* '''More than 2 TV card''' <br />
<br />
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747<br />
<br />
Fix UDEV problems : <BR><br />
[http://www.linuxtv.org/wiki/index.php/Device_nodes_and_character_devices Device nodes and character devices] <BR><br />
[http://windycitytech.blogspot.fr/2013/03/notes-for-configuring-udev-rules-for.html Notes for configuring udev rules for em28xx USB capture card] <BR><br />
[http://www.djsadhu.com/software/linux-howto-avoid-video-devices-getting-mixed-up-after-reboot-using-udev-rules/ Linux: howto avoid video devices getting mixed up after reboot, using udev rules] <BR><br />
[https://wiki.archlinux.org/index.php/udev#About_udev_rules About udev rules] <BR><br />
[http://www.thelinuxdaily.com/2010/01/statically-assign-dev-nodes-to-hardware-devices-in-linux/ Statically Assign /dev Nodes to Hardware Devices in Linux] <BR><br />
[http://forums.fedoraforum.org/archive/index.php/t-94775.html /dev/video0 problem] <BR> <br />
<br />
* '''Missing C header files installed for your Linux kernel version'''<br />
<br />
During compilation:<br />
make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.<br />
<br />
Make sure you have the right C header files installed for your Linux kernel version.<br />
<br />
* '''Missing /dev/dvb directory'''<br />
<br />
Some weeks later your /dev/dvb directory has disappeared? <br />
<br />
Perhaps your kernel was updated, and your machine rebooted. <br />
<br />
The driver needs to be recompiled.<br />
<br />
If you just run make, it will try to compile against the old kernel headers, so first run<br />
<br />
make distclean<br />
<br />
Then go back to step 6.<br />
<br />
* '''After rebooting, "Unknown symbol" error'''<br />
<br />
disagrees about version of symbol dvb_frontend_detach http://www.tbsdtv.com/forum/viewtopic.php?f=47&t=8195<br />
<br />
===Re-installing after a kernel upgrade===<br />
<br />
* cd to the linux-tbs-drivers directory that was created in the Making it Work section above.<br />
* Clean out the previously built objects<br />
make distclean<br />
* Choose 32bit or 64bit for our drivers again. <br />
** ./v4l/tbs-x86.sh for 32bit<br />
** ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x<br />
** ./v4l/tbs-x86_64.sh for 64bit.<br />
<br />
* Build and install the modules<br />
make -j3<br />
sudo make install<br />
* Reboot your machine or manually remove and reload the appropriate modules (see above).<br />
<br />
== Check that your tuner card works ==<br />
<br />
=== 1.Check that linux tool can find TV channels ===<br />
<br />
* Use the [http://www.linuxtv.org/wiki/index.php/Scan scan command line]. Others scan tools are available [[Frequency scan|here]].<br />
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find<br />
file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file.<br><br />
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.<br><br />
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 :<br />
# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs <br />
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx><br />
#<br />
# updated by/mis a jour par : Yannick, date: 11/2014<br />
# <br />
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : <br />
# http://pros.toutelatnt.fr/sites/default/files/dossier_technique_phase_1_v2.pdf<br />
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : <br />
# http://www.recevoirlatnt.fr/professionnels/la-tnt/correspondance-canauxfrequences/<br />
#<br />
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : <br />
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, <br />
# selectionnez votre region sur la carte, en bas de la nouvelle page, <br />
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", <br />
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.<br />
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ <br />
#<br />
# All french DVB-T channels / toutes les chaines de la TNT en France<br />
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT<br />
#<br />
# City R1 R2 R3 R4 R5 R6 R7 R8 R15(ex-L8) <br />
# Paris - Tour Eiffel : 35 25 22 30 28 32 42 58 33 <br />
# Paris Est - Chennevières : 35 25 22 30 28 32 42 58 <br />
# Paris Nord - Sannois : 35 25 22 30 28 32 42 58 <br />
# Paris Sud - Villebon : 35 25 22 30 28 32 42 58<br />
# <br />
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy<br />
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie<br />
#<br />
# R1 - Canal 35 - Groupe GR1 (France 2,France 5,France Ô,LCP/Public Sénat,France 3)<br />
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
#<br />
# R2 - Canal 25 - Groupe NTN (D8,BFM TV,I-Télé,D17,Gulli,France 4)<br />
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R3 - Canal 22 - Groupe CNH (Canal+,Canal+ Cinéma,Canal+ Sport,Planète+,DataSystem R7)<br />
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R4 - Canal 30 - Groupe Multi4 (M6,W9,NT1,Paris Première,Arte HD)<br />
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R5 - Canal 28 - Groupe MR5 (TF1 HD,France 2 HD,M6 HD)<br />
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R6 - Canal 32 - Groupe SMR6 (TF1,NRJ 12,Eurosport,LCI,TMC,TF6,Arte)<br />
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25,L equipe 21) <br />
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R8 - Canal 58 - Groupe R8 (6ter,Numero 23, RMC Decouverte)<br />
T 770166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R15 chaînes locales uniquement sur emetteur Paris - Tour Eiffel <br />
# R15 (ex-L8) Canal 33 - Groupe Multi-7 (Canal 31,IDF1,France 24,BFM Business Paris) <br />
T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2<br />
# uniquement sur emetteur Paris - Tour Eiffel <br />
# Canaux de test nommes Test UHD1 et Test UHD2 (audio en AAC et video en HEVC (H.265))<br />
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), <br />
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)<br />
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/<br />
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
<br />
* Other tools here at [http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Testing your DVB device]<br />
<br />
=== 2.Check that you can listen/see audio/video stream for your TV channel ===<br />
<br />
==== With Me TV ====<br />
<br />
* Importing TV channels configuration in Me TV <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
launch Me TV<br />
menu View > Channels > Add , and open the file channels.conf in /home/your_user_account<br />
<br />
==== With vlc ====<br />
<br />
* Importing TV channels configuration in VLC <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
Now open up VLC. <br />
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.<br />
<br />
=== 3.Recording TV channel stream ===<br />
<br />
==== Record TV audio/video stream with vlc ====<br />
1) Choose the folder for the recording files : [http://askubuntu.com/questions/122398/how-can-i-change-the-folder-where-vlc-stores-its-streams How can I change the folder where VLC stores its streams?] <BR><br />
2) Enable the "Advanced controls" to get the button with red dot (recording button) : [http://www.dedoimedo.com/computers/vlc-streaming.html How to stream and record media in VLC / secondth part : Recording]<br />
<br />
==== Create a recording script ==== <br />
<br />
[http://wiki.gentoo.org/wiki/TV_Tuner#Scheduling Create a recording script]<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/download/ Driver download page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=52 TBS Official Support forum for 6280 card]<br />
* [http://www.buydvb.net/dvbt2-tv-tuner-pcie-c-12/tbs6280-pcie-dvbt2t-dual-tuner-card-p-38.html TBS6280 Product page at buydvb.net (USA)] with online purchase. Not widely available online.<br />
* [http://www.amazon.fr/TNT-T%C3%A9l%C3%A9vision-Num%C3%A9rique-Terrestre-r%C3%A9ception/dp/B007PYNGLO/ TBS6280 Product page at amazon.fr (France)] with online purchase. Not widely available online.<br />
* [http://www.amazon.co.uk/TBS-DVB-T2-Definition-Digital-Receiver/dp/B005JTA7TG/ TBS6280 Product page at amazon.co.uk (United Kingdom)] with online purchase. Not widely available online.<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category:DVB-T2 PCIe Cards]]</div>Yannick56https://www.linuxtv.org/wiki/index.php?title=TBS6280&diff=33751TBS62802014-11-27T18:35:02Z<p>Yannick56: /* Identification / Check module loaded correctly */ update information</p>
<hr />
<div>A dual [[DVB-T]]/[[DVB-T2]] [[DVB-T2 PCIe Cards|PCIe card]] from [http://www.tbsdtv.com/ TurboSight].<br />
<br />
The manufacturer officially supports Linux, and there is on-going development of their driver, although it is supplied as a binary blob.<br />
<br />
There is also an [[#Open Source Driver|open source driver]] for TBS 6280 developed by Luis Jalves.<br />
<br />
==Overview/Features==<br />
<br />
* PCI-e x1<br />
* Dual Tuner DVB-T/DVB-T2 card<br />
* RF antenna pass-through<br />
* IR Receiver <br />
* Remote Controller <br />
<br />
===Components Used===<br />
<br />
* [[NXP SAA716x|NXP SAA7160ET]] (PCI Express Based Audio And Video Bridge), <b>driver is NOT included in linux kernel, you must compile a closed (proprietary) or open source driver above to use your TBS6280 card</b><br />
* [[NXP/Philips_TDA182xx#TDA18212HN|NXP (TDA) 18212/M]] (alias TDA18212HN with master) (Silicon Tuner for terrestrial and cable digital TV reception) X2, <b>(driver included in linux kernel >= 3.0)</b><br />
* [[Sony CXD2820|SONY CXD2820R]] (demodulator LSI for "DVB-T2", compatible with three standards ("DVB-T2", "DVB-T" and "DVB-C") X2, <b>(driver included in linux kernel >= 3.0)</b><br />
<br />
===Identification===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
If the driver is NOT yet installed or loaded, then output will instead be<br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0001<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
<br />
The final line with "Kernel driver in use:" is missing because NO driver is loaded.<br />
<br />
==Making it Work (Open source)==<br />
<br />
The open source driver is available [https://github.com/ljalves/linux_media/wiki here]. These instructions are taken directly from those pages.<br />
<br />
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.<br />
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)). <br />
<br />
===Building the Open Source Driver===<br />
<br />
These instructions are taken from [https://github.com/ljalves/linux_media/wiki/Installating here]:<br />
<br />
git clone git://linuxtv.org/media_build.git<br />
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media<br />
cd media_build<br />
make dir DIR=../media<br />
make distclean<br />
make<br />
sudo make install<br />
<br />
===Loading the Modules===<br />
<br />
The simplest option is to reboot, but if you would rather not, execute these commands:<br />
<br />
sudo make rmmod<br />
sudo modprobe saa716x_budget int_type=1<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
With kernel 3.14.24 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x Budget<br />
Kernel modules: saa716x_budget<br />
<br />
===Troubleshooting===<br />
<br />
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).<br />
<br />
sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*<br />
<br />
===Upgrading Sources and Re-installing===<br />
<br />
cd media<br />
git remote update<br />
git pull<br />
cd ../media_build<br />
git remote update<br />
git pull<br />
make<br />
sudo make install<br />
<br />
You should now reboot or unload/reload the modules manually.<br />
<br />
===Supporting the Open Source Driver===<br />
<br />
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.<br />
<br />
Luis also has a [https://github.com/ljalves/linux_media/wiki donate link] on github.<br />
<br />
==Making it Work (Closed source)==<br />
<br />
===Drivers===<br />
<br />
Available [http://www.tbsdtv.com/download/#tbs6280 here]. <br />
<br />
TurboSight Proprietary by Konstantin Dimitrov <kosio.dimitrov@gmail.com> for TurboSight TBS 62x0 DVBT/T2/C frontend driver module of www.turbosight.com<br />
<br />
Old release for drivers if you have problem with your kernel :<br />
<br />
* v141019 (2014-10-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v141019.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v141019., which has below updating:<br />
* Fix numerous bugs from the previous release<br />
<br />
* v140707 (2014-07-07)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140707.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140707., which has below updating:<br />
* improve work of TBS 5990<br />
* add support for latest hardware revisions of TBS 5220, TBS 5881, TBS 5281<br />
* numerous improvements in bug fixes in drivers for TBS 6221, TBS6281, TBS 6285 and TBS 6290<br />
<br />
* v140425 (2014-04-25)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140425.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140425., which has below updating:<br />
* Fixed the TBS6928SE ID problem<br />
<br />
* v140323 (2014-03-23)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v140323.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140323., which has below updating:<br />
* Add support for 5922SE<br />
* Add proper support for retail version of 6922SE<br />
* Add T2 lite support for latest hardware revision of 6221, 6281, 6285<br />
* Add "ClearQAM" (J83B) US Digital Cable support to DVB-C driver for latest T2 lite hardware revision of 6221, 6281, 6285<br />
<br />
* v140113 (2014-01-13)<br />
http://tbsdtv.com/download/document/common/tbs-linux-drivers_v140113.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v140113, which has below updating: <br />
* Improve compatibility with the upcoming Linux kernel 3.13.x<br />
* Add full support (both DVBT/T2 and DVBC are supported) for TBS 5281 <br />
<br />
* v130927 (2013-09-27)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130927, which has below updating:<br />
* Add DVB-C driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Finalize DVB-T/T2 driver for TBS 6221, 6281, 6285, 5220, 5881<br />
* Improve software compatibility for all DVB-C products<br />
* Improve software compatibility for all DVB-T/T2 products<br />
* Make power control for TBS 6984 more reliable<br />
<br />
* v130802 (2013-08-02)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130802.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130802, which has below updating:<br />
* improve compatibility with Linux kernel version 3.10<br />
* preliminary support for Linux kernel version 3.11<br />
* add support for all revisions of TBS 6982<br />
* add support for all revisions of TBS 6928SE<br />
* add PLP (Physical Layer Pipe) support for 6220, 6280, 6284 (PLP, see http://en.wikipedia.org/wiki/DVB-T2#Technical_details)<br />
* fix bug for DVB-C products (TBS 6618, TBS 6680, TBS 5680 and DVB-C USB Stick): improve performance in some DVB-C networks<br />
<br />
* v130506 (2013-05-06)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v130506, which has below updating:<br />
* Further improve compatibility with 32-bit Linux kernels version 3.8.x and 3.9.x.<br />
* Add module parameter "enable_ir" that allows disabling IR support for TBS cards.<br />
<br />
* v121119 (2012-11-19)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v121119.zip<br />
Changelog :<br />
TBS6280 Linux Driver is updated to v121119, which has belowed updating:<br />
* Add support for dBm reporting with TBS 6922.<br />
* Improve performance of TBS 6922 and TBS 6985 in case lock can't be acquired.<br />
<br />
* v120617 (2012-06-17)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip<br />
Changelog :<br />
TBS6280 linux driver is updated to v120617:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120503 (2012-05-03)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120503.zip<br />
Changelog :<br />
BS6280 linux driver is updated to v120503:<br />
A) Add driver and software downloand for TBS5880.<br />
B) Add DVB-C driver support for TBS6220, TBS6280 and TBS6284.<br />
<br />
* v120412 (2012-04-12)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120412.zip<br />
Changelog :<br />
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.<br />
<br />
* v120216 (2012-02-16)<br />
http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120216.zip<br />
Changelog :<br />
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.<br />
<br />
=== Compiling ===<br />
<br />
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. <br />
<br />
These instructions can all be carried out as a non-root user, until "make install".<br />
<br />
'''0. Download the drivers'''<br />
Download driver zip from the [http://www.tbsdtv.com/download/#tbs6280 manufacturer]<br />
or<br />
by the wget command line <br />
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130927.zip<br />
<br />
'''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.<br />
<br />
mkdir tbs-linux-drivers_v130927<br />
cd tbs-linux-drivers_v130927<br />
unzip ../tbs-linux-drivers_v130927.zip<br />
<br />
'''2. Extract linux-tbs-drivers.tar.bz2 archive'''<br />
<br />
bzip2 -d linux-tbs-drivers.tar.bz2<br />
tar xvf linux-tbs-drivers.tar<br />
<br />
'''3. Change to driver package directory'''<br />
<br />
cd linux-tbs-drivers<br />
<br />
'''4. Fix the file permissions''' <br />
<br />
At this point, the supplied tar.bz2 is completely knackered in respect of the file permissions. To fix run<br />
find -type d -exec chmod 755 \{\} \;<br />
find -type f -exec chmod 644 \{\} \;<br />
find -name '*.sh' -exec chmod 755 \{\} \;<br />
find -name '*.pl' -exec chmod 755 \{\} \;<br />
<br />
'''5. Select platform architecture'''<br />
<br />
Note: The next lines are explained in more detail in the manifacturers README: README_TBS62XY, linking to README_TBS6981<br />
<br />
for x86 kernel 3.x (x86 32 bit installations of kernel 3.x)<br />
./v4l/tbs-x86_r3.sh<br />
<br />
''or'' for x86 kernel 2.6.x (x86 32 bit installations of kernel 2.6.x)<br />
./v4l/tbs-x86.sh<br />
<br />
''or'' for any x86_64 kernel (x86 64 bit installations of Linux)<br />
./v4l/tbs-x86_64.sh<br />
<br />
You should then receive a message along these lines:<br />
TBS drivers configured for [NAME OF PLATFORM] platform.<br />
where [NAME OF PLATFORM] is x86_r3 or x86 or 86_64<br />
<br />
'''6. Build the driver.''' Recompiles v4l for a wide range of cards, currently about 500, will take many minutes.<br />
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.<br />
make <br />
<br />
If you get -bash: make: command not found, then sudo apt-get install build-essential<br />
<br />
'''7. Install driver.''' Existing drivers for other v4l related hardware, such as lirc could also get updated.<br />
sudo make install<br />
<br />
'''8A. Reboot'''<br />
sudo reboot<br />
<br />
'''OR'''<br />
<br />
'''8B-1. Load newly installed driver'''<br />
sudo modprobe -v tbs62x0fe<br />
insmod /lib/modules/3.(your kernel version)-generic/kernel/drivers/media/dvb/frontends/tbs62x0fe.ko<br />
<br />
'''8B-2. Check it loaded correctly'''<br />
tail /var/log/syslog<br />
<br />
You should get a message about tainting the kernel. This is fine.<br />
<br />
kernel: tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
<br />
Running '''<code>dmesg | tail</code>''' should end with something along these lines:<br />
<br />
[ 7330.361868] tbs62x0fe: module license 'TurboSight Proprietary' taints kernel.<br />
[ 7330.361875] Disabling lock debugging due to kernel taint<br />
<br />
'''9. Check if dvb adaptor nodes are created'''<br />
after steps 8A or 8B, dvb adaptor nodes should now exist<br />
ls -al /dev/dvb<br />
<br />
drwxr-xr-x 4 root root 80 oct. 23 08:37 ./<br />
drwxr-xr-x 19 root root 4140 oct. 23 08:40 ../<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter0/<br />
drwxr-xr-x 2 root root 120 oct. 23 08:37 adapter1/<br />
<br />
# lsdvb<br />
lsdvb: Simple utility to list PCI/PCIe DVB devices<br />
Version: 0.0.4<br />
Copyright (C) Manu Abraham<br />
SAA716x TBS (1131:7160 6280:11) on PCI Domain:0 Bus:4 Device:0 Function:0<br />
DEVICE:0 ADAPTER:0 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
DEVICE:0 ADAPTER:1 FRONTEND:0 (TurboSight TBS 62x0 DVBT/T2 frontend) <br />
FE_OFDM Fmin=47MHz Fmax=870MHz<br />
<br />
===Identification / Check module loaded correctly ===<br />
<br />
Note : "Capabilities" information are only show if you use the root account, else you will have "Capabilities: <access denied>".<br />
<br />
# lspci -vvvnn | grep --after-context=27 7160<br />
<br />
02:00.0 Multimedia controller: Philips Semiconductors Device 7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-<br />
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-<br />
Latency: 0, Cache Line Size: 4 bytes<br />
Interrupt: pin A routed to IRQ 16<br />
Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ Queue=0/5 Enable-<br />
Address: 0000000000000000 Data: 0000<br />
Capabilities: [50] Express (v1) Endpoint, MSI 00<br />
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us<br />
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-<br />
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-<br />
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-<br />
MaxPayload 128 bytes, MaxReadReq 128 bytes<br />
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-<br />
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us<br />
ClockPM- Suprise- LLActRep- BwNot-<br />
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+<br />
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-<br />
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-<br />
Capabilities: [74] Power Management version 2<br />
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-)<br />
Status: D0 PME-Enable- DSel=0 DScale=0 PME-<br />
Capabilities: [80] Vendor Specific Information <?><br />
Capabilities: [100] Vendor Specific Information <?><br />
Kernel driver in use: SAA716x TBS<br />
Kernel modules: saa716x_tbs-dvb<br />
<br />
or with kernel 3.8.13.4 and Mageia Linux. <br />
<br />
# lspci -v | grep --after-context=10 7160<br />
<br />
04:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03)<br />
Subsystem: Device 6280:0011<br />
Flags: bus master, fast devsel, latency 0, IRQ 18<br />
Memory at e0300000 (64-bit, non-prefetchable) [size=1M]<br />
Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+<br />
Capabilities: [50] Express Endpoint, MSI 00<br />
Capabilities: [74] Power Management version 2<br />
Capabilities: [80] Vendor Specific Information: Len=50 <?><br />
Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?><br />
Kernel driver in use: SAA716x TBS<br />
<br />
===Sample kernel output===<br />
<br />
#dmesg | more<br />
<br />
SAA716x TBS 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16<br />
SAA716x TBS 0000:02:00.0: setting latency timer to 64<br />
DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
DVB: registering new adapter (SAA716x dvb adapter)<br />
DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
<br />
With kernel 3.8.13.4 and Mageia Linux.<br />
<br />
#dmesg | more<br />
<br />
For IR remote control :<br />
<br />
[ 11.410478] IR NEC protocol handler initialized<br />
[ 11.660415] IR RC5(x) protocol handler initialized<br />
[ 11.701373] IR RC6 protocol handler initialized<br />
[ 11.943450] IR JVC protocol handler initialized<br />
...<br />
[ 12.102224] IR Sony protocol handler initialized<br />
[ 12.165011] Registered IR keymap rc-tbs-nec<br />
...<br />
[ 12.165085] input: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0/input5<br />
[ 12.165129] rc0: saa716x IR (TurboSight TBS 6280) as /devices/pci0000:00/0000:00:1c.2/0000:04:00.0/rc/rc0<br />
<br />
For DBV-T TV :<br />
<br />
[ 11.952059] tbs6991se: module license 'TurboSight Proprietary: www.tbsdtv.com' taints kernel.<br />
[ 11.952061] Disabling lock debugging due to kernel taint<br />
...<br />
[ 12.165164] DVB: registering new adapter (SAA716x dvb adapter)<br />
...<br />
[ 14.115412] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.115417] DVB: registering adapter 0 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
[ 14.115548] DVB: registering new adapter (SAA716x dvb adapter)<br />
[ 14.165439] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff<br />
[ 14.165442] DVB: registering adapter 1 frontend 0 (TurboSight TBS 62x0 DVBT/T2 frontend)...<br />
<br />
=== Linux kernel modules loaded ===<br />
<br />
* DVB Tuner card part only<br />
# lsmod<br />
<br />
dvb_core 109885 2 saa716x_core,saa716x_tbs_dvb<br />
saa716x_tbs_dvb 57909 0 <br />
saa716x_core 50899 1 saa716x_tbs_dvb / <br />
tbs6982fe 22408 1 saa716x_tbs_dvb /<br />
tbs6680fe 17791 1 saa716x_tbs_dvb /<br />
tbs6923fe 22408 1 saa716x_tbs_dvb /<br />
tbs6928se 17884 1 saa716x_tbs_dvb /<br />
tbs6991fe 17785 1 saa716x_tbs_dvb /<br />
tbs6618fe 17791 1 saa716x_tbs_dvb /<br />
tbs6922fe 22478 1 saa716x_tbs_dvb /<br />
tbs6928fe 17785 1 saa716x_tbs_dvb / <br />
stv090x 62235 1 saa716x_tbs_dvb / <br />
tbs62x0fe 23069 2 <br />
---<br />
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<br />
i2c_algo_bit 13413 1 saa716x_tbs_dvb<br />
i2c_i801 22443 0<br />
<br />
--> 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. <br />
<br />
* Only remote control by IRC for TV tuner card<br />
# lsmod<br />
<br />
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<br />
ir_lirc_codec 12898 0 <br />
lirc_dev 19166 1 ir_lirc_codec<br />
ir_nec_decoder 12546 0 <br />
rc_tbs_nec 12502 0 <br />
ir_mce_kbd_decoder 12879 0 <br />
ir_sony_decoder 12549 0 <br />
ir_jvc_decoder 12546 0 <br />
ir_rc6_decoder 12546 0 <br />
ir_rc5_decoder 12546 0<br />
<br />
===Errors and troubleshooting===<br />
<br />
* '''Bad platform for compiling'''<br />
<br />
make[3]: *** No rule to make target `tbs8921ctrl.o', needed by `v4l/media.o'. Stop.<br />
<br />
Did you select the correct platform in step 5 above?<br />
<br />
* '''More than 2 TV card''' <br />
<br />
Fighting with another tuner card in load order at boot time - http://www.tbsdtv.com/forum/viewtopic.php?f=62&t=7747<br />
<br />
Fix UDEV problems : <BR><br />
[http://www.linuxtv.org/wiki/index.php/Device_nodes_and_character_devices Device nodes and character devices] <BR><br />
[http://windycitytech.blogspot.fr/2013/03/notes-for-configuring-udev-rules-for.html Notes for configuring udev rules for em28xx USB capture card] <BR><br />
[http://www.djsadhu.com/software/linux-howto-avoid-video-devices-getting-mixed-up-after-reboot-using-udev-rules/ Linux: howto avoid video devices getting mixed up after reboot, using udev rules] <BR><br />
[https://wiki.archlinux.org/index.php/udev#About_udev_rules About udev rules] <BR><br />
[http://www.thelinuxdaily.com/2010/01/statically-assign-dev-nodes-to-hardware-devices-in-linux/ Statically Assign /dev Nodes to Hardware Devices in Linux] <BR><br />
[http://forums.fedoraforum.org/archive/index.php/t-94775.html /dev/video0 problem] <BR> <br />
<br />
* '''Missing C header files installed for your Linux kernel version'''<br />
<br />
During compilation:<br />
make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.<br />
<br />
Make sure you have the right C header files installed for your Linux kernel version.<br />
<br />
* '''Missing /dev/dvb directory'''<br />
<br />
Some weeks later your /dev/dvb directory has disappeared? <br />
<br />
Perhaps your kernel was updated, and your machine rebooted. <br />
<br />
The driver needs to be recompiled.<br />
<br />
If you just run make, it will try to compile against the old kernel headers, so first run<br />
<br />
make distclean<br />
<br />
Then go back to step 6.<br />
<br />
* '''After rebooting, "Unknown symbol" error'''<br />
<br />
disagrees about version of symbol dvb_frontend_detach http://www.tbsdtv.com/forum/viewtopic.php?f=47&t=8195<br />
<br />
===Re-installing after a kernel upgrade===<br />
<br />
* cd to the linux-tbs-drivers directory that was created in the Making it Work section above.<br />
* Clean out the previously built objects<br />
make distclean<br />
* Choose 32bit or 64bit for our drivers again. <br />
** ./v4l/tbs-x86.sh for 32bit<br />
** ./v4l/tbs-x86_r3.sh for 32bit running kernel 3.x<br />
** ./v4l/tbs-x86_64.sh for 64bit.<br />
<br />
* Build and install the modules<br />
make -j3<br />
sudo make install<br />
* Reboot your machine or manually remove and reload the appropriate modules (see above).<br />
<br />
== Check that your tuner card works ==<br />
<br />
=== 1.Check that linux tool can find TV channels ===<br />
<br />
* Use the [http://www.linuxtv.org/wiki/index.php/Scan scan command line]. Others scan tools are available [[Frequency scan|here]].<br />
If the file for terrestrial transmitters in your town is not in the /usr/share/dvb/dvb-t folder, then you can find<br />
file in scan-s2/dvb-t folder in the scan-s2.tar.bz2 that is in the tbs-linux-drivers_vRELEASE_NUMBER.zip file.<br><br />
A list, not up to date, for french users is available here : doc.ubuntu-fr.org/tnt_frequences.<br><br />
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 :<br />
# Paris - France - various DVB-T transmitters / differents DVB-T (TNT) emetteurs <br />
# contributed by / contribution par : Alexis de Lattre <alexis@xxxxxxxxxx><br />
#<br />
# updated by/mis a jour par : Yannick, date: 11/2014<br />
# <br />
# Ile-de-France french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) d'Ile de France : <br />
# http://pros.toutelatnt.fr/sites/default/files/dossier_technique_phase_1_v2.pdf<br />
# Matching channel number with channel Frequency / Correspondance entre les canaux TNT et leurs fréquences de diffusion : <br />
# http://www.recevoirlatnt.fr/professionnels/la-tnt/correspondance-canauxfrequences/<br />
#<br />
# All french DVB-T transmitters list / liste des emetteurs DVB-T(TNT) de France : <br />
# Allez a http://pros.toutelatnt.fr/pros/profil/antennistes-revendeurs, <br />
# selectionnez votre region sur la carte, en bas de la nouvelle page, <br />
# cliquez sur le lien "Telechargez la liste des emetteurs et des frequences", <br />
# un fichier PDF vous indique alors le numero de canal pour chaque multiplex ou groupe de chaines de l emetteur de votre region.<br />
# Si vous ne connaissez pas le nom de la commune de votre emetteur, passez par http://www.matnt.tdf.fr/ <br />
#<br />
# All french DVB-T channels / toutes les chaines de la TNT en France<br />
# http://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9vision_num%C3%A9rique_terrestre_en_France#Offre_des_cha.C3.AEnes_de_la_TNT<br />
#<br />
# City R1 R2 R3 R4 R5 R6 R7 R8 R15(ex-L8) <br />
# Paris - Tour Eiffel : 35 25 22 30 28 32 42 58 33 <br />
# Paris Est - Chennevières : 35 25 22 30 28 32 42 58 <br />
# Paris Nord - Sannois : 35 25 22 30 28 32 42 58 <br />
# Paris Sud - Villebon : 35 25 22 30 28 32 42 58<br />
# <br />
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy<br />
# T frequence bande_passante fec_hi fec_lo type_modulation mode_transmission intervalle_de_garde hierarchie<br />
#<br />
# R1 - Canal 35 - Groupe GR1 (France 2,France 5,France Ô,LCP/Public Sénat,France 3)<br />
T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
#<br />
# R2 - Canal 25 - Groupe NTN (D8,BFM TV,I-Télé,D17,Gulli,France 4)<br />
T 506166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R3 - Canal 22 - Groupe CNH (Canal+,Canal+ Cinéma,Canal+ Sport,Planète+,DataSystem R7)<br />
T 482166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R4 - Canal 30 - Groupe Multi4 (M6,W9,NT1,Paris Première,Arte HD)<br />
T 546166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R5 - Canal 28 - Groupe MR5 (TF1 HD,France 2 HD,M6 HD)<br />
T 530166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R6 - Canal 32 - Groupe SMR6 (TF1,NRJ 12,Eurosport,LCI,TMC,TF6,Arte)<br />
T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R7 - Canal 42 - Groupe MHD7 (HD1, Cherie 25,L equipe 21) <br />
T 642166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R8 - Canal 58 - Groupe R8 (6ter,Numero 23, RMC Decouverte)<br />
T 770166000 8MHz 3/4 NONE QAM64 8k 1/32 NONE<br />
#<br />
# R15 chaînes locales uniquement sur emetteur Paris - Tour Eiffel <br />
# R15 (ex-L8) Canal 33 - Groupe Multi-7 (Canal 31,IDF1,France 24,BFM Business Paris) <br />
T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE<br />
#<br />
# first french experimental DVB-T2 broadcasting / experimentation de diffusion en DVB-T2<br />
# uniquement sur emetteur Paris - Tour Eiffel <br />
# Canaux de test nommes Test UHD1 et Test UHD2 (audio en AAC et video en HEVC (H.265))<br />
# Necessite vlc >= 2.1.1 et vlc compiler avec support du AAC et H265 (verif par vlc --list en ligne de commande), <br />
# plus un PC puissant avec un processeur intel core i7 4 coeurs pour decoder la video en Ultra HD (UHD)<br />
# http://www.journaldulapin.com/2014/06/07/recevoir-la-tnt-ultra-hd-sur-un-pc-sous-windows/<br />
T 514166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE<br />
<br />
* Other tools here at [http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Testing your DVB device]<br />
<br />
=== 2.Check that you can listen/see audio/video stream for your TV channel ===<br />
<br />
==== With Me TV ====<br />
<br />
* Importing TV channels configuration in Me TV <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
launch Me TV<br />
menu View > Channels > Add , and open the file channels.conf in /home/your_user_account<br />
<br />
==== With vlc ====<br />
<br />
* Importing TV channels configuration in VLC <br />
Example with terrestrial transmitters in Paris (France) <br />
(with root account)<br />
cd<br />
scan /usr/share/dvb/dvb-t/fr-Paris > channels.conf<br />
cp channels.conf /home/your_user_account<br />
(with user account)<br />
Now open up VLC. <br />
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.<br />
<br />
=== 3.Recording TV channel stream ===<br />
<br />
==== Record TV audio/video stream with vlc ====<br />
1) Choose the folder for the recording files : [http://askubuntu.com/questions/122398/how-can-i-change-the-folder-where-vlc-stores-its-streams How can I change the folder where VLC stores its streams?] <BR><br />
2) Enable the "Advanced controls" to get the button with red dot (recording button) : [http://www.dedoimedo.com/computers/vlc-streaming.html How to stream and record media in VLC / secondth part : Recording]<br />
<br />
==== Create a recording script ==== <br />
<br />
[http://wiki.gentoo.org/wiki/TV_Tuner#Scheduling Create a recording script]<br />
<br />
==External Links==<br />
* [http://www.tbsdtv.com/download/ Driver download page]<br />
* [http://www.tbsdtv.com/forum/viewforum.php?f=52 TBS Official Support forum for 6280 card]<br />
* [http://www.buydvb.net/dvbt2-tv-tuner-pcie-c-12/tbs6280-pcie-dvbt2t-dual-tuner-card-p-38.html TBS6280 Product page at buydvb.net (USA)] with online purchase. Not widely available online.<br />
* [http://www.amazon.fr/TNT-T%C3%A9l%C3%A9vision-Num%C3%A9rique-Terrestre-r%C3%A9ception/dp/B007PYNGLO/ TBS6280 Product page at amazon.fr (France)] with online purchase. Not widely available online.<br />
* [http://www.amazon.co.uk/TBS-DVB-T2-Definition-Digital-Receiver/dp/B005JTA7TG/ TBS6280 Product page at amazon.co.uk (United Kingdom)] with online purchase. Not widely available online.<br />
* [http://www.tbsdtv.com/worldwide-distributors.html TBS Worldwide Distributors - Find the good distributor for your country and the good website to buy your TBS TV card]<br />
<br />
[[Category:DVB-T2 PCIe Cards]]</div>Yannick56