Installing TBS 6981 DVB-S2 Dual Satellite Tuner on Ubuntu 11.04

UPDATE (2016/03/21): A lot of the links and instructions in this post are no longer valid/working. I recommend using a newer version of Linux (CentOS or Ubuntu), and the latest drivers from the TBS website (


This is my first post in a number of posts I will be making detailing how I’ve got the (Almost!) perfect TV Server & Client setup for my house.

In order to make a TV server, you will need some form of tuner. As I’m a paying Sky customer, I’ve chosen to purchase 2x TBS6981 DVB-S2 Dual Tuners. These are currently priced at about £89, which is a good deal.

The cards are low-profile cards, but come with a bracket in order to fit them in larger cases. I’ve decided to put mine in my HP Microserver (which I blogged about here).

Without going into too much detail on the spec of the cards, they are pretty meaty.

Being a dual tuner card, it requires two drops from the satellite LNB (you need to run one cable for each input on the card. Don’t use splitters!)

As I have two cards, I needed to run 4 cables direct from the LNB on the satellite. If you only have a standard dual-lnb, or you’ve filled up all the slots on your quad-LNB, you will need to purchase either a bigger LNB, or a bracket to mount two quad-LNB’s on the same dish. You don’t need to go buying a bigger dish yet!

The cards will churn out both DVB-S (SDTV) and DVB-S2 (HDTV), which is great if you’ve got Movies or Sports in HD.

Each tuner can be tuned to one multiplex at a time, which is different to a channel. Multiplexes contain multiple channels. For example the BBC multiplex contains BBC One, BBC Two, BBC Three (and CBBC), BBC Four (and CBeebies), BBC News and BBC Parliament.

When you change a channel, you are in fact changing a filter to filter out the channels you don’t want to see in the multiplex. So even when you are viewing BBC One, your box is in fact viewing all the BBC channels and just filtering out everything but the data for BBC One. This is great, because we can ‘exploit’ this to watch/record/stream more than one channel at a time on one tuner, leaving the other tuners free for someone/something else to use.

You can view all the mutiplexes and more information at Lyngsat. For Freesat/Sky UK we most commonly use the Astra satellite cluster at 28.2E (East). Details for all the 28.2E multiplexes are located here.

Now that we understand a little bit about multiplexing channels, we can get going on the installation.

Firstly, You will need a basic Ubuntu install. I’ve chosen 11.04 x86_64 with the 2.6.38-8-generic kernel. This is mainly because I had problems getting the TBS drivers to install on the 3.x kernel (which is shipped with anything higher!), and anything less than 2.6.32 will cause more issues with the drivers. It’s worth pointing out that you can do this on a 32bit install, but I’ve not tried it, and therefore I don’t know how stable the drivers are.

Ubuntu installation instructions are out of the scope of this tutorial. You need to visit the Ubuntu website if you need help with that.

After you’ve got that installed, it’s worth making sure everything is up-to-date with APT.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install build-essential checkinstall gcc

Install updates and reboot as required.

Next we need to download the required drivers from the TBS website. TBS have provided pretty stable linux drivers for all of their products. While sometimes they have issues on certain kernel levels, the TBS team do tend to quickly provided updates and patches to their drivers for both Windows and Linux. For a full list of drivers, check them out here.

For the TBS 6981, open a terminal and type the following:

sudo su -
cd ~

Now we have all the drivers downloaded and unzipped, we need to do something with the files.
First, we need to get the files we need for this card. As these are generic Linux drivers, they contain installation files for most of the other TBS cards. We only need a few files, so lets enter this into your terminal:

mkdir tbs
cp linux-tbs-drivers.tar.bz2 tbs/
cp szap-s2.tar.bz2 tbs/
cp scan-s2.tar.bz2 tbs/
cp astra_szap-s2.conf tbs/
cp astra_scan-s2.conf tbs/
cp v4l-cx23885-avcore-01.fw tbs/
cd tbs

Now we have the required TBS drivers in a folder called tbs, located in the users home directory. If you are root, we are in /root/tbs. For normal users, we are in /home/username/tbs.

We now need to extract some of the archives we’ve just moved, in order to see the goodies inside:

tar xjvf linux-tbs-drivers.tar.bz2
cd linux-tbs-drivers

For the X86_64 version, we need to do:


This kicks off the configuration for the installation.
Then we need to build and install the drivers (This might take a while):

make install

Now we need to install a few tools and testing packages:

cd ~/tbs
tar xjvf szap-s2.tar.bz2
cd szap-s2
make install

And a few more:

cd ~/tbs
tar xjvf scan-s2.tar.bz2
cd scan-s2
make install

After everything is installed, and we have no error messages, we need to reboot for the drivers to be loaded.

shutdown -r now

After reboot, check that the drivers have been loaded correctly by issuing the following into a terminal:

dmesg | grep frontend

You want to get back this, which confirms the drivers are working:

DVB: registering adapter 0 frontend 0 (TurboSight TBS 6981 DVBS/S2 frontend)...
DVB: registering adapter 1 frontend 0 (TurboSight TBS 6981 DVBS/S2 frontend)...

Now, if you’ve got your card linked up to a satellite, we can test the signal and locking.
First, create a new file in ~ called zaptest.conf, and insert the following:


Then, run the following command:

szap-s2 -p -H -r -a 0 -c zaptest.conf

This will use the szap-s2 application we installed earlier, to run a test on the values in zapfile.conf using adapter 0 on the TBS card.
If all is good, you will be able to see a signal percentage and ‘FE_HAS_LOCK’ at the end of the final line for each channel.

Job Done. You now have a working satellite tuner. Next, you will need to hook this up to some form of viewer or TV server backend. My next tutorial will feature the TBS 6981 running with TVHeadend.

  30 Replies to “Installing TBS 6981 DVB-S2 Dual Satellite Tuner on Ubuntu 11.04”

  1. alexanderkbrown
    July 22, 2012 at 15:05

    thanks for the informative posts. do you know just now much cpu usage this has when its actually recording 2 hd streams, and also warching a third stream on your microserver?

    I keep coming back to this as its small/cheap enough as a NAS/HTPC under the unit, but just the CPU power in the unit is the bit that bothers me, as i would have to find out its too slow, when im prepared to go with a more powerful solution.

    • July 27, 2012 at 18:41

      I’ve been recording both a BBC HD and Channel 4 HD stream at the same time (different muxes), as well as watching a 3rd SD stream in a different room and it doesn’t hit more than 15% CPU. I’ve also got Webmin and Samba running on this, with a Bind DNS server for local DNS too. Never had any problems with CPU power so far. I’d recommend getting a memory upgrade for it though. 8GB and it’s working like a dream!

  2. Mark
    August 10, 2012 at 11:08

    How are you powering the TBS 6981? I got mine today for my HP server but it requires 3 power connections. All mine are in use with 4 hard drives and DVD drive.

    • September 3, 2012 at 20:52

      I had to get a splitter to allow me to power it. I’m only using one of the power points though, as I’ve not got a motorised dish. You can just leave the other two unattached.

  3. Andrew
    September 26, 2012 at 21:42

    I have the same card. and have found it very slow to change channels with both adapters configured using tvheadend.

    Is there any advice you could give?

    • October 6, 2012 at 20:08

      I’ve not had any problems with speed when changing channels. What version of TVHeadend are you using?

  4. Rich
    October 6, 2012 at 18:53

    Have you had any joy getting this to work with tvheadend yet?

    • October 6, 2012 at 20:08

      Yes, working brilliantly with TVHeadend. Changes channels very quick!

      • October 6, 2012 at 20:09

        I’ll post a tutorial as soon as I get time! 🙂

        • Rich
          October 7, 2012 at 18:10

          Excellent! I’ve made some real progress once I switched from the XBMC PVR PPA to the the tvheadend beta PPA. I need to tidy up the channel list and get BBC HD working, but nearly there.

  5. PP
    October 17, 2012 at 16:31

    Hey thanks a lot for the tutorial. Everything perfect.

  6. Rob
    November 9, 2012 at 15:48

    Just stumbled across your blog post, I too have the N40L and have just installed the TBS 6981 which is much faster than my old Teevii S660 tuner and seems a great match for the microserver. I’m actually running win 7 + DVBlink to host the tuner to 2x Win7 MCE clients in the house.. I’ve recently been getting fed up with 7MCE and am eager to try XBMC pvr and live tv.. is TVheadend a good choice as dvb backend? What im not sure on is how the EPG is managed – is it TVheadend that looks after this or is it the xbmc client? With dvblink I have it connecting to for the guide data on the server & syncs it to the clients. Advice much appreciated. Cheers.

    • November 16, 2012 at 21:36

      TVHeadend is back under active development, and is now a core part of the XMBC-PVR Builds. It’s certainly the way to go, and is running very smooth here! TVHeadend is managing the EPG import OTA and from RadioTimes. XBMC displays it very nicely and cleanly. All the hardwork is done via TVHeadend.

      • Rob
        November 22, 2012 at 11:23

        Thanks Rob. Will def look at going for this same set up.. Did you say you were using this for Sky too? Been reading that the sky card can be used with tvheadend using a usb smargo reader & oscam.. interested to hear if thats what you’re using and if its reliable.

        • November 22, 2012 at 11:32

          Yes. I have Sky working with a card reader and OSCam via TVHeadend. I’ve only got the basic packages though, don’t pay for premiums (football etc). When I’m home ill find out exact versions 🙂

  7. MrFluffy
    November 12, 2012 at 14:45

    Hi, I see the date on this, and wonder how you are getting on day to day with it. I have the quad version of this card (TBS 6984) in my main mythtv backend server running gentoo, and have ran it for a year now I think. Software version reported in the dmesg line is :-
    tbs6984fe – software version is
    I assume your package listed in the wget is much newer, what version is reported in the dmesg by it?
    Apart from very very rare occasions (ive seen it 4 times in a year) where the card refuses to lock on the channels on any tuner which only a full on electrical power off reboot fixes, its been very well behaved. The lack of lock seems down to low signal and terrible weather, and under certain conditions it doesn’t seem to be able to recover, even if I unload and reload all the associated modules, so I think its on the firmware of the card itself. I’m thinking about gettign another and having 8 feeds so I can set a second quad up on hotbird etc if the bus of the server is up to it… I’m reluctant to upgrade the firmware as my wife and kids are heavy tv addicts, and we have no off the air tv in any of the rooms (LOTS of atom front ends dotted round!)

    I came here looking at the review of your lenovo q810 to replace the targa nettop atoms which are struggling on full hd (stuttering, can’t handle the bitrate, but they have only 1Gb of ram which I think is the problem). I don’t blog much normally…

    • November 16, 2012 at 21:46

      I’ve not had a chance to look at the software version because I’m not at home right now. I’ve not had any issues with locking channels, so I suspect it might be a signal issue. 8 feeds sounds very nice! I’d love to do the same. Yeah, the plan here is to place more frontends in the house too. Not totally switched over to this solution yet. I’ve not had any experience with the Targa, but the Lenovo will play full HD and 3D without any issues. Tempted to get the add-on Blu-ray drive, but not sure if it will work with OpenElec.

      • November 18, 2012 at 18:25

        Just to add to this. I’ve checked the software version. Running

  8. Methanoid
    March 23, 2013 at 13:03

    How did you connect the power for the 2 cards as they require additional power connectors?

  9. Pingback: Lloyd Irvin
  10. Rhys
    June 6, 2013 at 13:18

    Do your drivers stop working every now and again and require a complete reinstall? Is there a way to start the drivers if they’ve stopped?

  11. ralf
    August 11, 2013 at 21:58


    i had try to install the driver. it seems all ok, but if if the output

    is not got (or?)

    ralf@ubuntu:~$ dmesg | grep frontend
    [ 10.304878] videobuf_dvb: disagrees about version of symbol dvb_frontend_deta
    [ 10.304880] videobuf_dvb: Unknown symbol dvb_frontend_detach (err -22)
    [ 10.304894] videobuf_dvb: disagrees about version of symbol dvb_unregister_fr
    [ 10.304896] videobuf_dvb: Unknown symbol dvb_unregister_frontend (err -22)
    [ 10.304903] videobuf_dvb: disagrees about version of symbol dvb_register_fron
    [ 10.304905] videobuf_dvb: Unknown symbol dvb_register_frontend (err -22)

    i use the card on a ubuntu server 13.04

    • Ruud
      September 16, 2013 at 20:16

      # sudo rm -rf /lib/modules//kernel/drivers/media/

      where “” is replaced by the loaded kernel version
      and then reinstall the drivers with doing “make install”.

  12. ub40dd
    December 30, 2013 at 13:43

    Thanks for the useful and detailed guide.
    I also have a 6901, which has worked fine for a couple of years. Recently though I had to rebuild the box from scratch (based on Ubuntu 12.04.3) and I can’t get the driver to work. All the steps in your guide seem to work fine, with no errors in make or make install, but then
    dmesg | fgrep frontend
    shows nothing.

    Any clues on how to proceed?

    I remember having to recompile the driver every now and then whenever the distribution updated the kernel but it’s the first time I got totally stuck at this point.

    I’m using the latest TBS driver v130927 and the kernel is 3.8.0-34-generic #49~precise1-Ubuntu SMP Wed Nov 13 18:05:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    Thanks for any suggestions

    • will
      January 3, 2014 at 14:39

      Exactly the same problem. Did you get it to work?

      • will
        January 3, 2014 at 18:44

        Got it working in the end (dont know why i cant log in here??)

        Installed ubuntu 13.10

        Followed these instructions here:

        (remember to change the name of the zip file to the one on the downloads page i.e.

        before restarting, copy the firmware file “dvb-fe-cx24116.fw” (located in the root of the zip file) to /lib/firmware/ which can be done by typing in
        sudo mv dvb-fe-cx24116.fw /lib/firmware/

  13. February 5, 2016 at 20:21

    Hi Rob! I’m having some trouble installing a TBS tuner card, and some googling pointed me to your site and this fine article. You promised in the beginning that you’d be posting a continuation — but I guess that never happened, right? At least I didn’t find it on your site. (I know, keeping up with a blog is surprisingly much work!)
    I’d love to hear how you got on with this project?

    • February 7, 2016 at 16:47

      Hi Torben. Oh dear! What problems are you having? As you suspected, I got overloaded with work and other things, so my blog doesn’t get updated that much now. I switched my home server over to CentOS, shortly after ditching my satellite subscription, so the card isn’t being used at all now, which is a shame. 🙁

  14. March 13, 2016 at 18:04

    Hi, thanks for the tutorial.

    I had to use the latest version of drivers s your link is out of date.

    I recieve this error on grep

    jamie@mediaServer:~$ dmesg | grep frontend
    [ 20.028536] videobuf_dvb: disagrees about version of symbol dvb_frontend_detach
    [ 20.028537] videobuf_dvb: Unknown symbol dvb_frontend_detach (err -22)
    [ 20.028545] videobuf_dvb: disagrees about version of symbol dvb_unregister_frontend
    [ 20.028546] videobuf_dvb: Unknown symbol dvb_unregister_frontend (err -22)
    [ 20.028550] videobuf_dvb: disagrees about version of symbol dvb_register_frontend
    [ 20.028551] videobuf_dvb: Unknown symbol dvb_register_frontend (err -22)

    any ideas?

    thank you in advance of any help you can afford.

    Kind reards


    • March 21, 2016 at 15:12

      Hi Jamie,

      Thanks for letting me know about the links. I’ll update the post so that people know the links are dead.
      This is a pretty old post, and I doubt anyone will be trying to start using Ubuntu 11.04.

      As for your error, what version of Ubuntu are you using? It looks like when you installed the drivers, the correct kernel modules haven’t been installed or enabled. Have you updated the kernel since you installed the drivers?



Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.