Jan 122010

This how-to describes which hardware and software components I used to build my Home Theater PC, with the ability to watch satellite television too. It includes a step-by-step guide for installing and configuring the required software, which appeared to be quite an adventure if you want to use a softcam, because the information was scattered around the internet.

Some people consider the use of a softcam illegal. My opinion is that a softcam can be used illegally, but if you use it in combination with a valid subscription on one PC only it is perfectly legal. In fact I see no difference with a real CAM, which contains the same kind of software (firmware).

For installing the software at least some experience using the Linux CLI is required.

Comments, corrections and additions are as always very welcome!



  • Small size
  • Low power
  • Low noise
  • HD ready
  • Satellite reception
  • Softcam
  • Linux compatible
  • Affordable


Power usage

Asrock ION 330HT-BD + TeVii S660

watt kWh/year Per year
Powered down ~3 26 €5,55
Ubuntu running ~29 254 €53,60
VDR running, no client ~31 271 €57,29
Watching SD channel ~36 315 €66,53

Assuming an average of 21,1 cent per kWh



  • Open source
  • Repositories, only compilation when really necessary
  • User friendly
  • Recent, stable, supported, actively developed software


  • Install Ubuntu Lucid Lynx 32 bit (use CD or unetbootin)
  • Pin kernel 2.6.32-25 (for remote control)
    • sudo gedit /etc/apt/preferences
      • Package: linux-generic linux-headers-generic linux-image-generic
      • Pin: version 2.6.32-25
      • Pin-Priority: 1001
  • Setup network (wireless or wired)
  • Update Ubuntu
    • sudo apt-get update
    • sudo apt-get upgrade
    • sudo apt-get install linux-image-2.6.32-25-generic linux-headers-2.6.32-25
  • Blacklist nouveau driver
    • sudo gedit /etc/modprobe.d/blacklist.conf
      • Add blacklist nouveau
  • Install NVIDIA driver
    • sudo apt-get install nvidia-current nvidia-current-dev nvidia-current-modaliases
    • sudo nvidia-xconfig
    • Reboot
  • To prevent tearing
    • System | Preferences | Appearance: Visual Effects: None
  • Setup build environment
    • sudo apt-get install linux-headers-2.6.35-25 build-essential libncurses-dev subversion cmake gcc libusb-dev libssl-dev
  • Install TeVii S660 driver
    • sudo apt-get install unrar
    • Download and extract to home folder
    • sudo cp -v tevii_s2_liplianin-*/linux/firmware/*.fw /lib/firmware
    • cd tevii_s2_liplianin-*
    • sudo make menuconfig
      • Disable Multimedia Support > DVB/ATSC Adapters > FireDTV and FloppyDTV
    • make -j2 (this takes some time)
    • sudo make install
    • Reboot
    • dmesg | grep dvb
      • Check TEVII S660 DVBS2 USB2.0 successfully initialized and connected
    • Redo when new kernel
  • Install newcs card server
  • Install oscam card server
    • Install libusb
    • svn co http://streamboard.gmc.to/svn/oscam/tags/1.10 oscam-1.10
    • cd oscam-1.10
    • make i386-pc-linux-libusb
    • sudo cp -v Distribution/oscam-* /usr/bin/oscam
    • Download config files
    • sudo mkdir -p /etc/oscam
    • sudo tar xzvf oscam_conf.tar.gz -C /etc/oscam
    • lsusb
    • Find ‘Bus xxx Device yyy: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
    • sudo gedit /etc/oscam/oscam.server
    • set ‘Device = xxx:yyy
  • Install softcam sasc-ng
    • sudo apt-get install linux-headers-`uname -r` build-essential mercurial openssl libssl-dev gettext
    • cd ~
    • hg clone (bleeding edge!)
    • cd sc
    • gedit Makefile
      • Find and remove -O3 from CSAFLAGS
    • cd ~/sc/contrib/sasc-ng
    • chmod +x configure
    • chmod +x ./dvbloopback/module/config_dvb.pl
    • ./configure –dvb-dir=~/linux_tevii_ds3000/linux-tevii-ds3000
    • make
    • make module
    • sudo -s
    • cp sasc-ng /usr/bin
    • mkdir /lib/modules/`uname -r`/misc
    • /usr/bin/install dvbloopback.ko /lib/modules/`uname -r`/misc/
    • depmod
    • modprobe dvbloopback
    • ls /dev/dvb
      • Check adapter1 (assuming one tuner)
    • mkdir /etc/sc
    • cp cardclient.conf /etc/sc
    • When FTDI bug is fixed: cp cardslot.conf /etc/sc
    • Redo when new kernel
  • Create card server script
    • Download script
    • sudo -s
    • cp oscam /etc/init.d
    • update-rc.d oscam defaults 19
    • /etc/init.d/oscam start
  • Install CIR receiver driver
    • Download and install
    • Remote control configuration
      • 1st config: None, None
      • 2nd config: Nuvotron Transceivers/Remotes, None
    • Redo when new kernel (because it is a patch actually)
  • Install VDR
    • deb http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu lucid main
      • System | Administration | Software Sources, Other
    • sudo -s
    • apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 6CF20474
    • apt-get install vdr vdr-plugin-xineliboutput xineliboutput-sxfe libxine-dev libxine2 cpupowerd
    • gedit /etc/default/vdr
      • OPTIONS=”-w 60 -D 1 –lirc=/dev/null
    • More than one LNB
      • gedit /etc/vdr/diseqc.conf (Astra 19E2/23E5)
      • gedit /var/lib/vdr/setup.conf(create file)
        • DiSEqC = 1
    • gedit /var/lib/vdr/setup.conf(create file)
      • UpdateChannels = 0
    • Download channels.conf (syntax)
      • grep -v ‘:-‘ channels.conf | grep ‘CANALDIGITAAL’ >/var/lib/vdr/channels.conf
      • grep -v ‘:-‘ channels.conf | grep -v ‘CANALDIGITAAL‘ >>/var/lib/vdr/channels.conf
    • Or scan channels
      • sudo apt-get install w-scan
      • sudo /etc/init.d/sc stop
      • w_scan -fs -sS19E2 -o7 -D0c >channels.conf
      • w_scan -fs -sS23E5 -o7 -D1c >>channels.conf
      • sudo /etc/init.d/sc start
      • Make channels FTA:
        • awk -F: ‘{if ($1 == “” ) print $0 ; else \
        • print $1″:”$2″:”$3″:”$4″:”$5″:”$6″:”$7″:”$8″:0:”$10″:”$11″:”$12″:”$13}’  \
        • channels.conf >>/var/lib/vdr/channels.conf
    • cp remote.conf /var/lib/vdr (info)
    • sudo /etc/init.d/vdr start
      • Check /var/log/user.log
    • Optional: apt-get install vdr-plugin-femon vdr-plugin-eepg
  • Install Tvheadend
    • Add this to /etc/init.d/tvheadend at the start of do_start()
      • LOGGER="/usr/bin/logger -t tvheadend "
        while [ ! -e /dev/dvb/adapter0/frontend0 ] ; do
        		if [ $i -gt 20 ] ; then
        				$LOGGER "dvb adapter not ready"
        				return 2
        		sleep 3
        		i=$(($i + 1))
        sleep 15
    • Configure: http://localhost:9981/
      • Code Word Client:
        • Hostname:
        • Port: 34000
        • Username: oscam
        • Password: oscam
        • DES Key: 01:02:03:04:05:06:07:08:09:10:11:12:13:14
        • Update Card -> check
  • Install XBMC
  • Watch
    • Disable screen saver
      • System | Preferences | Screensaver: Active …: Never
      • System | Preferences | Power Management -> Display: Never
    • Dowload vdr-sxfe.sh to home folder
      • System | Preferences | Startup Applications: Add
      • Command: browse to vdr-sxfe.sh
    • Alternative
      • Put .lircrc in the home folder
      • Add irexec -d to startup applications
      • Start/stop vdr-sxfe using Enter/Clear on the remote control
      • Easy when vdr-sxfe crashes
    • Start XBMC


  • FTDI bug
    • Linux kernel must be pinned
    • newcs is needed to read smartcard, which it sometimes fails to do at startup
  • Communication sasc-ng/newcs sometimes fails
  • Zap time encrypted channels >= 5 sec
  • The German FTA HD channels work, but the Dutch HD channels have only sound so far
  • No official repositories, some compilation necessary
  • I have to set the listed frequencies about 25 MHz lower to get signal. This is annoying, because scanning channels does not work properly. The cause is most probably the TeVii S660 device, since using Windows doesn’t make any difference (assuming the drivers are different) and because my LNB has been replaced in the meantime. My local supplier will replace the device when it is restocked (probably within a week).
  • The IR driver doesn’t work with the latest kernel
  • The fans of the Asrock are a little noisy, however the high pitch can be canceled:

To remove the heatsinks the motherboard has to be removed (four screws and some cables).


  • Does anybody know how to compile vdr-plugin-sc without compiling vdr too?
    • Without getting the message below when starting vdr
      • WARNING: The following plugins have been left out due to really binary incompatibility: sc.
    • See comments for pointers to solutions
  • Does anbody know the difference between the oscam version here and here?
    • June 6, 2010: both version will be merged


http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu lucid main
 Posted by at 8:30  Tagged with:

  73 Responses to “Ubuntu HTPC with satellite TV”

  1. Hi Marcel,
    At a certain moment you switched from vdr to tvheadend. Years ago I tried Mythtv and I was fond of it. When I changed from analog to digital tv however I started using vdr as at that time Mythtv was only able to decrypt streams on the first adapter (don’t know if this has changed since then)
    Now I’m still using vdr + sxfe as I find this the most stable solution. I tried xbmc-pvr2 as a frondtend. It’s beautifull but in my opinion a little unstable.
    Can you please tell me the reason why you switched to tvheadend and maybe why others should too? I know it’s a lot easier to setup, but is it also better in terms of stability?

    • The reason is mainly that I wanted a all-in-one solution. tvheadend is quite stable and the same applies to XBMC, although I have to say I am not a daily user. Both tvheadend (changelog) and XBMC are actively developed. For XBMC we can expect Eden in the near future. VDR doesn’t seems to be developed active anymore (changelog).

  2. Thanks for sharing your experiences, it really helped me. But how did you manage to get Dutch channels in tvheadend? I have configured Oscam with my Canal Digital smartcard. That works great, I can watch the available channels in xbmc, also the encoded ones.
    But every time I try tvheadend fails to find the Dutch channels (BVN,ned1,ned2,ned3,RTL4,etc. etc.). BVN is free to air, the rest are Canal Digital paid channels as you will know. The only ‘Dutch’ channels I have are Canvas and één from Belgium (which are also paid channels).
    I’ve spend quite some time on scanning channels as this is really slow, it drives me crazy it doesn’t find the Dutch channels each time… So I am eager to know how you managed to get them, if you did.

    • I never had the patience to wait for the channels to be scanned. I added the transponders and channels I wanted manually with the info Canal Digitaal provides here (“zenderlijst”).

      • Thanks a lot Marcel! However, I still can’t get it to work. I try to add a mux for Ned1 with this info (mostly from Canal Digitaal):
        Freqency (kHz): 11856
        Symbolrate (baud): 27500000
        FEC: 5/6
        Delivery System: SYS_DVDS2
        Constellation: I don’t know what to choose here, but I tried QPSK and PSK_8
        Polarisation: Vertical
        Satellite Config: Port 0, Universal LNB

        After adding the mux I immediately get this in the log window:
        Nov 26 11:08:18 dvb: “/dev/dvb/adapter0” tuning to “11,856 kHz Vertical (Default (Port 0, Universal LNB))” — Front configuration failed — Invalid argument, frequency: 9738144

        Do you see what I did wrong?

        One other thing that I don’t quite understand is how to use my triple sat dish. In other comments I (think I) read that I have to add three LNB’s in tvheadend for this dish. That surprises me as other tools (scan, w_scan) don’t need this. But following the advice I added two entries to the ‘satellite config’ tab, one with switchport 1 and one with switchport 2 (switchport 0 already exists). When adding muxes I now can choose one of these three under (Satellite Config), but I don’t know which one to choose. And again I really doubt if this is necessary?

        • The frequency is in kHz, so you need to add three zero’s: 11856000.
          The constellation for Canal Digitaal is QPSK.

          For your triple sat dish you need to add three LNB’s in Tvheadend. Take care to select the right port and do this before you add transponders, because Tvheadend needs to know which port to use for the transponder. Most of this you already discovered 🙂 The port number is needed to select the right LNB. I cannot tell you which port is for which LNB / sat. Maybe you can find this in the manual of your dish, else you will have to guess. Mostly the first LNB is port zero and the next one has number one and so on. The trick is to find out if the ports are counted from the left or from the right.

          scan and w_scan definitely need the LNB information too, else only the first LNB will be scanned.

          • It works! Thank you so much! I now have Ned1 on the second LNB (port 1, Astra 23.5). I didn’t know the frequencies in the Canal Digitaal are in MHz, but you are right, I had to add three zero’s.
            How can I know if a channel uses QPSK of PSK_8? For some channels I can find it on http://www.lyngsat.com, but for others I can’t. Is there a rule for this, or should I just try it each time if the info is not available?

            • You have to try if this info is not available.
              The only thing I know the Dutch channels are all QPSK.

              • Thanks. Now that things work I am a bit disappointed at the XBMC integration. There is no overall EPG table available like MythTV has. Also it’s not possible to set recordings within XBMC. In tvheadend on the other hand I am not able to watch recordings (the ‘VLC player’ browser screen remains black). So that will force me (and more important, my girlfriend) to switch between XBMC and tvheadend over and over again.

                I really liked the MythTV interface. I used MythTV for free to air DVB-T channels and that worked great. Unfortunately MythTV needs sasc-ng to decode channels and sasc-ng fails to work on Ubuntu 11.10… So I will have to wait for a working sasc-ng version, or for a more usable XBMC plugin for tvheadend.

                • Small update: after a lot of frustration with MythTV and sasc-ng I am now back to XBMC. As you may know XMBC 11 is almost ready, and I decided to install a version 11 pre-release (see http://packages.pulse-eight.net/UbuntuInstall). To my surprise I can schedule records from within XBMC now! Also I found a very nice EPG table in this version. This version works very well for me. It occasionally crashes but I hope that will be fixed in the final release.

                  I also compiled the latest tvheadend from source (git) and this also fixed some problems I had before.

  3. Hello Marcel,

    I run Tvheadend and xbmc on my htpc the last 6 month, but finally I wish to get the Sky channels over my htpc? For the moment I have also the Pace receiver which descramble the Sky channels without any problem. But I’d like to use only one unit for TV, so I have bought an Alphacrypt modul und I have the Sky S02 card (Nagravision). If I follow your guide will I have success or do I have to change something?

    • The guide is based on a softcam. I don’t know how your hardcam works, but if it is transparent for the software nothing has to be done. Else you will have to look into the TvHeadend documentation if it is supported.

  4. Marcel,

    Do you have any experencience with diseqC settings in Tv Headend with an duo lnb from Canal Digitaal ( 19.2 & 23.5 ) ?

    I can get 19.2 but not the 23.5. I know i have to tell the diseqC to switch to 23.5 but how ?

    • Just create two LNB’s with channel number 0 and 1 and it will work automatically. I have the same configuration.

      • Hi Marcel,

        Again me about Diseqc settings, any chance that you have experience with an Canal Digital Technisat tripple LNB with settings point out within tvheadend ?


        • I don’t have experience with your LNB, but the principle stays the same, just create and configure the LNB’s in Tvheadend.

  5. Updated for XBMC + Tvheadend and lastest versions of drivers and oscam.

  6. Hey nice post – a bit hard to fully grasp because Im pretty new to building HTPC, but sounds good. Are you pleased with the final outcome or are you still tweaking?

    • It works most of the time, but not perfect.

      • I am about to do a very similiar setup, Ill use a atom D525 as server with the same USB receiver, a Nvidia GS8400 to decode HD channels, a smargo, and use an apple tv2 with tvheadend as client.

        I read that Dutch HD channels are without image??
        I assume this is still the case? Do you happen to use a triple sat, and how’s BBC HD if so?

        • I do not pay for the Dutch HD channel, so I cannot tell if this is still the case. I don’t have BBC HD either, but most of the German FTA HD channels are okay.

          I have to warn about Tvheadend and the Dutch/Flemish paid channels: it doesn’t work. See for details this unresolved bug, which I filed a long time ago.

  7. Really Nice. Thanks for this

  8. I thing this could be niuce for your:


    Grüße / Greetings


  9. Hello,

    nice guide.
    I have two additional questions.

    1.) Is it also possible to watch films in full hd?
    2.) Can I play a bluray disc?


  10. very nice! could I do the same compiling this step ./configure –dvb-dir=~/linux_tevii_ds3000/linux-tevii-ds3000 for my 3 dvb-t terratec device? could you help me please?

    • If you have the sources of the Linux driver for your device available you could do something similar. Of course the folder name should match that of your driver.

  11. Guide updated for Ubuntu Lucid Lynx

  12. What version of ubuntu did you install. When I click the link it downloads ubuntu-10.04.1-desktop-i386.iso. Is this the version the correct version and is it stable. One more question please, how is the picture quality of the HD channels produced by Tevii S660 compared to Real HD reciever like VU+ or DM800 HD? Thanks

    • So far I only used Ubuntu Karmic Koala, but it should work with Lucid Linx as well. I can’t compare the image quality with a real HD receiver, because I don’t have one, sorry.

      • Marcel, thanks for reply.

        In your own experience how do rate the S660 HD picture quality 1 to 10 (1 poor…10 excellent).


        • I really have nothing to compare my HD ready quality to, but I am quite satisfied with it. I think the quality of your TV or monitor will play an important role too.

        • I have the Tevii S660 and the Azbox Premium. The HD picture quality are the same to both. The video of HD channels as Tevii S660 as Azbox Premium is excellent.

  13. Thanks for the How-to. It was a great help to setup my system.
    You say that one of the problems to solve was that you had only sound for Nederland HD. Were you able to find a solution, as I have the same problem?

    • No, I couldn’t solve that problem. If you have found a solution, please let me know.

      • I experimented a lot with the pvrtesting2 branch of xbmc, thus using xbmc as a client instead of sxfe. My server (OpenSuSE) runs VDR 1.7.15. Xbmc uses the vnsiserver plugin to communicate with VDR. Vnsiserver is said to be much faster than xineliboutput.
        All versions of Xbmx pvrtesting2 i tried have problems starting up (switching to) oscam-sasc decrypted streams. With each subsequent svn version this behavior bettered. Sometimes (not always) the first time you switch to the channel you get a “Channel can not be played” or “channel unavailable” error. Most of the times (not always) the first time you get an image and sound but not synchronized and with hiccups. The third or fourth time you have perfect image + sound. A question of sasc not being able to feed VDR fast enough with a decrypted stream (VDR not waiting long enough?) A question of buffers? My humble opinion is that it is a VDR problem, VDR crashing on recordings on this channels.
        I didn’t try YAVDR as a frontend until now, but I’m planning to.
        The setup (all channels) works perfectly with Kaffeine, mythtv…

  14. Hi,
    I am going from Ubuntu 9.4 to Ubuntu 10.04 and i can’t get it to work,
    I am using the same sources as you do;

    apt-get install unrar libncurses5-dev
    mkdir dvb
    cd /usr/local/src/dvb/
    wget http://www.tevii.com/100315_Beta_linux_tevii_ds3000.rar
    #wget http://www.tevii.com/linux_tevii_ds3000.rar
    unrar x 100302_linux-tevii-ds3000.rar
    sudo cp -R *.fw /lib/firmware/
    tar xvf linux-tevii-ds3000.tar.bz2
    #tar xvf linux-tevii-ds3000.tar.bz
    cd /user/local/src/dvb/linux-tevii-ds3000/
    make menuconfig ## mandatory, defaults work
    make -j2
    make install
    apt-get install linux-headers-`uname -r` build-essential subversion mercurial openssl gettext libssl-dev screen rtorrent samba nload iotop nmap
    cp /mnt/nas/print/.rtorrent.rc /home/pluisje/
    cd /usr/local/src/
    hg clone
    cd /usr/local/src/sc/
    chmod +x contrib/sasc-ng/configure
    chmod +x contrib/sasc-ng/dvbloopback/module/config_dvb.pl
    cd /usr/local/src/sc/contrib/sasc-ng/
    ./configure --dvb-dir=/usr/local/src/dvb/linux-tevii-ds3000/
    make module

    but I can’t get the make module to work..

    I am using a tevii s470 with Mythtv.


    root@mediabox:/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module# make module
    make: *** No rule to make target `module'.  Stop.
    root@mediabox:/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module# cd ..
    root@mediabox:/usr/local/src/sc/contrib/sasc-ng/dvbloopback# cd ..
    root@mediabox:/usr/local/src/sc/contrib/sasc-ng# make module
    cd dvbloopback/module && make DVB_DIR=/usr/local/src/dvb/linux-tevii-ds3000//linux
    make[1]: Entering directory `/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module'
    cp -f /usr/local/src/dvb/linux-tevii-ds3000//linux/../v4l/Module.symvers .
    ./config_dvb.pl "BUILD_DIR=/lib/modules/2.6.32-22-generic/build" "EXTRA_CFLAGS=-I/usr/local/src/dvb/linux-tevii-ds3000//linux -I/usr/local/src/dvb/linux-tevii-ds3000//linux/drivers/media/dvb/dvb-core -Idrivers/media/dvb/dvb-core/ -I/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module"
    Found dvbdev.h from 2.6.22 or later
    make -C /lib/modules/2.6.32-22-generic/build M=/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module modules
    make[2]: Entering directory `/usr/src/linux-headers-2.6.32-22-generic'
      CC [M]  /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.o
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: In function âdvblb_fake_ioctlâ:
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:281: error: âTASK_INTERRUPTIBLEâ undeclared (first use in this function)
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:281: error: (Each undeclared identifier is reported only once
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:281: error: for each function it appears in.)
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:283: error: implicit declaration of function âsignal_pendingâ
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:283: error: implicit declaration of function âschedule_timeoutâ
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:292: error: âTASK_UNINTERRUPTIBLEâ undeclared (first use in this function)
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: In function âdvblb_openâ:
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:408: error: dereferencing pointer to incomplete type
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c: In function âdvblb_ioctlâ:
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:752: error: âTASK_INTERRUPTIBLEâ undeclared (first use in this function)
    /usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c:808: error: âTASK_NORMALâ undeclared (first use in this function)
    make[3]: *** [/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module/dvb_loopback.o] Error 1
    make[2]: *** [_module_/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module] Error 2
    make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-22-generic'
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/usr/local/src/sc/contrib/sasc-ng/dvbloopback/module'
    make: *** [module] Error 2
    root@mediabox:/usr/local/src/sc/contrib/sasc-ng# nano dvbloopback/module/dvb_loopback.c
    • It seems that sasc-ng is not ready for the kernel of Ubuntu 10.04 yet.
      I didn’t try it yet, but if I have done I will report back.
      Are you sure your dvb_dir is okay?
      Maybe it should be –dvb-dir=/usr/local/src/dvb/linux_tevii_ds3000/linux-tevii-ds3000

      • with

        cd /usr/local/src/dvb/
        wget http://www.tevii.com/100315_Beta_linux_tevii_ds3000.rar

        you don’t get an empty directory /usr/local/src/dvb/linux_tevii_ds3000/
        with nothing else as a extra directory linux-tevii-ds3000

        i tryed a fresh install out of Ubuntu 10.04 out of the box,
        but then there is no MythTV and a lot of other things missing…
        my network and dhcp (controlled by this mediabox) keep collapsing,
        so my whole house-network is instable…

        we are going down, abandon house!!

        • I am using the S470 card with Lucid 64 and 2.6.33 kernel.
          The card was recognized directly:

          [    6.170069] cx23885 driver version 0.0.2 loaded
          [    6.170107] cx23885 0000:04:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
          [    6.170150] CORE cx23885[0]: subsystem: d470:9022, board: TeVii S470 [card=15,autodetected]
          [    6.297730] cx23885_dvb_register() allocating 1 frontend(s)
          [    6.297733] cx23885[0]: cx23885 based dvb card
          [    6.309508] DS3000 chip version: 0.192 attached.
          [    6.309511] DVB: registering new adapter (cx23885[0])
          [    6.309514] DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
          [    6.336865] TeVii S470 MAC= 00:18:BD:5B:2E:66
          [    6.336870] cx23885_dev_checkrevision() Hardware revision = 0xb0
          [    6.336877] cx23885[0]/0: found at 0000:04:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xfb800000
          [    6.336883] cx23885 0000:04:00.0: setting latency timer to 64
          [    6.336886] IRQ 16/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs

          So I think you just need to install a newer kernel and then you are all set from a driver perspective.

          04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder (rev 02)
                  Subsystem: Device d470:9022
                  Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
                  Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
                  Latency: 0, Cache Line Size: 64 bytes
                  Interrupt: pin A routed to IRQ 16
                  Region 0: Memory at fb800000 (64-bit, non-prefetchable) [size=2M]
                  Capabilities: [40] Express (v1) Endpoint, MSI 00
                          DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                                  ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
                          DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                                  RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                                  MaxPayload 128 bytes, MaxReadReq 512 bytes
                          DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                          LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
                                  ClockPM- Suprise- LLActRep- BwNot-
                          LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
                                  ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                          LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                  Capabilities: [80] Power Management version 2
                          Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                          Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                  Capabilities: [90] Vital Product Data 
                  Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
                          Address: 0000000000000000  Data: 0000
                  Capabilities: [100] Advanced Error Reporting 
                  Capabilities: [200] Virtual Channel 
                  Kernel driver in use: cx23885
                  Kernel modules: cx23885


        • Anyway, my system is working great now,
          I won’t want to miss it,
          I have a lot of channels working with CCcam
          and all the Dutch channels with Canal+, even the HD ones.

          Unfortunatly the Dutch HD channels are all on a different satelite
          (Astra 3? in stead of Astra 1)
          and I still need to get my 4 heads on my 85cm disk right,
          i have 4.000+ channels on the middle 2, but only a few on the outside 2,
          so get your disk right first!

          got 1,5 TB harddrive for recording, a 60Gb SSD disc for the software,
          a Blue Ray disc (no need to burn if you can store), Spotify and
          much more disc space on my NAS, so i can’t be stopped now 🙂

          • Bernard,

            how did you manage to get your system stable ?
            I’m trying with a technisat sky2 card, but it keeps crashing randomly.
            The card is recognized by default by the kernel, but it can’t lock channels in myth when trying to scan my multi-head satellite dish.
            I’m using latest ubuntu 10.04, with myth 0.23.1

          • My system is perfectly stable, but I am using another tuner/driver and VDR instead of Myth TV. So either your tuner/driver is instable and/or Myth TV. Maybe you can try if VDR or Tvheadend is more stable than Myth TV.

  15. FYI: The upcoming Tvheadend 2.11 will have EMM smartcard update support for both Irdeto2 and Seca (next to the already existing Conax support)!
    See also http://trac.lonelycoder.com/hts/ticket/139 and http://trac.lonelycoder.com/hts/ticket/159

    • Unfortunately Tvheadend still doesn’t decode the seca signal of Canaal Digitaal and TV Vlaanderen correctly, see ticket #205.

    • I just tried the latest version (r5482) and part of the problem is solved. Decoding works, but giving only one still image about every second.

  16. Is this working on 2.6.31-17-generic?

    I have mythbuntu installed on an acer revo but I’m getting errors.

    [ 276.540026] usb 1-6: new high speed USB device using ehci_hcd and address 98
    [ 276.673440] usb 1-6: configuration #1 chosen from 1 choice
    [ 276.673752] dvb-usb: found a 'TEVII S660 DVBS2 USB2.0' in cold state, will try to load a firmware
    [ 276.673765] usb 1-6: firmware: requesting dvb-usb-teviis660.fw
    [ 276.698362] dvb-usb: downloading firmware from file 'dvb-usb-teviis660.fw'
    [ 276.698376] usb 1-6: firmware: requesting dvb-usb-teviis660.fw
    [ 276.711401] teviis660: start downloading TEVIIS660 firmware
    [ 276.748553] teviis660: error while transferring firmware
    [ 276.748566] teviis660: could not restart the USB controller CPU.
    [ 276.748573] teviis660: could not restart the USB controller CPU.
    [ 277.189266] usb 1-6: USB disconnect, address 98

    In syslog:

    teviis660: error while transferring firmware
    teviis660: could not restart the USB controller CPU.


    • Is this working on 2.6.31-17-generic?

      Yes, if you compile the driver for this kernel. I tried a lot of 2.6.31 kernels getting the FTDI driver to work, so I am quite sure about this.

      error while transferring firmware

      This seems a hardware (device, setup, driver, etc) problem to me. Maybe you can try to connect the TeVii device to another USB port and see if the problem remains.

      The log should continue with something like this:

      [    9.189676] teviis660: start downloading TEVIIS660 firmware
      [    9.312042] dvb-usb: found a 'TEVII S660 DVBS2 USB2.0' in warm state.
      [    9.312160] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
      [    9.312427] DVB: registering new adapter (TEVII S660 DVBS2 USB2.0)
      [    9.452744] dvb-usb: MAC address: 00:ff:ff:ff:ff:ff
      [    9.816784] DS3000 chip version: 0.192 attached.
      [    9.816792] S660: DS3000 attached.
      [    9.816802] DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
      [    9.819464] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:04.1/usb1/1-5/input/input6
      [    9.819600] dvb-usb: schedule remote query interval to 150 msecs.
      [    9.819613] dvb-usb: TEVII S660 DVBS2 USB2.0 successfully initialized and connected.
      [    9.819685] usbcore: registered new interface driver teviis660
      • Thanks Marcel. I have tried all ports without success.
        dmesg now shows

        [ 3954.416039] usb 1-6: new high speed USB device using ehci_hcd and address 89
        [ 3954.548757] usb 1-6: configuration #1 chosen from 1 choice
        [ 3954.549635] dvb-usb: found a 'TEVII S660 DVBS2 USB2.0' in cold state, will tr
        y to load a firmware
        [ 3954.549651] usb 1-6: firmware: requesting dvb-usb-teviis660.fw
        [ 3954.562172] dvb-usb: downloading firmware from file 'dvb-usb-teviis660.fw'
        [ 3954.562186] usb 1-6: firmware: requesting dvb-usb-teviis660.fw
        [ 3954.579926] teviis660: start downloading TEVIIS660 firmware
        [ 3954.709614] dvb-usb: found a 'TEVII S660 DVBS2 USB2.0' in warm state.
        [ 3954.709747] dvb-usb: will pass the complete MPEG2 transport stream to the sof
        tware demuxer.
        [ 3954.740416] DVB: registering new adapter (TEVII S660 DVBS2 USB2.0)
        [ 3954.804346] teviis660: read eeprom failed
        [ 3954.804358] dvb-usb: MAC address reading failed.
        [ 3954.891450] Invalid probe, probably not a DS3000 device
        [ 3954.891770] dvb-usb: no frontend was attached by 'TEVII S660 DVBS2 USB2.0'
        [ 3954.956794] input: IR-receiver inside an USB DVB receiver as /devices/pci0000
        [ 3954.956911] dvb-usb: schedule remote query interval to 150 msecs.
        [ 3954.956922] dvb-usb: TEVII S660 DVBS2 USB2.0 successfully initialized and con
        [ 3954.957030] usb 1-6: USB disconnect, address 89
        [ 3955.001046] dvb-usb: TEVII S660 DVBS2 USB2.0 successfully deinitialized and d

        I haven’t done the pinning for my kernel (2.6.31-17). Is that required?

        • It seems to me that the firmware is loaded now: “found a ‘…’ in warm state”, but communication with the device fails: “read eeprom failed” and “MAC address reading failed”, so you have to consider that the device is not functioning properly, although it still could be a communication problem, related to the USB bus or driver.

          Maybe it is best to try if the device initializes correctly using another PC.

          Pinning the kernel is required for newcs only.

          • Hello,

            I’m pretty sure that is not a hardware problem. I’m experiencing the same issue here on my Dell E6400:

            Using the v4l-dvb drivers, or the ones recommended above (‘try this version’) fails. I think something goes wrong during the firmware upload or card initialization because it becomes completely unusable afterwards. Unplugging the USB cable, thus leaving it in warm state, and plugging it back in shows that Linux won’t even detect it any more and indicates an error enumerating the USB device. (as if the firmware overwrote the USB IDs or something similar)

            Using the most recent drivers on Linux Kernel 2.6.32 works, except that I get the same ‘query RC’ errors and hangs as mentioned above. To work around those, I’ve simply disabled the remote control by putting this in my /etc/modules:

            options dvb-usb disable_rc_polling=1

  17. regarding your zapping times, you should tryout tvheadend + cccam, i have zapping times lower than 1sec with this combination on encrypted channels!

    • Unfortunately the tvheadend + cccam combination does not update my smartcard (so it will expire every month).

  18. Does anybody know how to compile vdr-plugin-opensc without compiling vdr too?

    I have read somewhere that you should make a softlink in the sc directory to your vdr’s Make.config, i.e.

    cd /usr/local/src/vdr/PLUGINS/src
    ln -s /usr/include/vdr/Make.config

    I haven’t tested this myself since I compile both vdr and vdr-sc; this used to work up until vdr 1.7.10 but for some reason I’m now getting this same “binary incompatibility” error too with vdr 1.7.11 🙁

    • Thanks for sharing this, I will try to do it this way and report back.

      • To reply to myself: I checked my system but don’t see any /usr/include/vdr in the ppa files from the-vdr-team. I think that there have been other (rpm?) vdr packages in the past which did contain these include files but that the the-vdr-team does not supply this…

        • Finally I have found the solution (on a German forum)! Do following as user root:

          apt-get build-dep vdr
          cd /usr/local/src
          apt-get source vdr
          cd vdr-1.7.10
          dpatch apply-all
          cd PLUGINS/src/
          rm -rvf ./*
          hg clone
          cd ../../
          make plugins
          cd PLUGINS/lib/
          sudo cp ./* /usr/lib/vdr/plugins/
          • Thanks for sharing! I will try it coming weekend and update the guide if it works.

            Could you please post the link to the German forum too?

          • The link is http://www.4freeboard.to/board/thread.php?postid=225726#post225726

            ps: just recently there is a distribution which contains vdr+xbmc by default, see http://yavdr.org/ which should make installing a linux-based htpc much easier than ever!

          • Here is a manual (in Dutch) for compiling the vdr-plugin-sc: http://www.sat4all.com/forums/ubbthreads.php/topics/1791405/Re_yaVDR_distributie_ervaringe#Post1791405

            I also use the ppa repositories of The-VDR-Team.

          • @Leechguy: thanks!

            Will this work for the sources from the hg repository too?

          • Yes, it pulls the source from the hg repositor. Most of the info came from the 4freeboard.to forum. I cannot lookup the exact URL due to te fact that it is being blocked by my corporate proxy.

          • Here’s the exact URL from where I got most of the info (it’s in German): http://www.4freeboard.to/board/thread.php?postid=225247#post225247

            Since you are using an Intel Atom processor, you should should probably use his 01_Makefile-MAXCAID.dpatch file. I’m using an AMD Athlon X2 and made some optimizations for that architecture. The debian/rules file is the same if I remember correctly.

          • Still no success:

            @Ed: Still getting “WARNING: The following plugins have been left out due to really binary incompatibility: sc.”

            @Leechguy: Where can I download vdr-plugin-sc_0.9.x-hg2-template.tar.bz2?

          • The combination vdr 1.7.10 + vdr-sc I managed to get working as mentioned above.
            The combination vdr 1.7.11 + vdr-sc however not entirely: I think that there is something which needs to be adapted in the plugin loader script, because I got this same error too.

            But when I started vdr directly in the shell instead as a service like this
            $ vdr -P sc
            I got it working. Unfortunately I don’t have vdr anymore on my pc so I can’t check anything anymore: I replaced vdr with tvheadend and got this working within an hour 🙂

            ps: smartcard updates in Tvheadend do work but only for Conax which I currently have (DVB-T digitenne)

          • We need request:
            “Long story short, I got the debian source package for vdr-plugin-opensc from mirak’s ppa https://launchpad.net/~mirak-mirak/+archive/ppa , then changed the vdr-sc source inside with hg clone from current source, then applied some patches to the Makefile in order to build successfully and finally build the packages with dpkg-buildpackage.

            I might put up a detailed guide if more people are interested in this.”

            From dvbn forum http://tinyurl.com/yffdvqg

            I use his vdr-plugin-opensc and work fine:

  19. Interesting…
    – CPU frequency Atom? (TeVii S660 DVB-S2 requirements 2.0GHz CPU (2.4GHz for HDTV)
    – CPU load encrypted channels?

    • – CPU frequency Atom? (TeVii S660 DVB-S2 requirements 2.0GHz CPU (2.4GHz for HDTV)

      Not overclocked: 1.6 Ghz. The requirements of TeVii are based on the CPU doing all the work, but in this case the GPU is helping significantly.

      – CPU load encrypted channels?

      Watching SD/encrypted:

      HTPC top

  20. Can you use CCcam with this?
    And does it play the 720p sat channels without stuttering?
    What was the total amount of money you spent on this?


    • Can you use CCcam with this?

      Yes, put something like this in your cardclient.conf:


      And does it play the 720p sat channels without stuttering?

      Yes, on my HD ready TV (1360×768), but I haven’t tried encrypted channels yet (I don’t expect problems)

      What was the total amount of money you spent on this?

      With Blu-ray, without satellite dish and subscription, about €495
      Without Blu-ray it will be about €80 less

      • Thanks m8!

        I already have a dish etc, just need the ION + the components.
        Don’t need a card reader either, want to use it for “FTA”

      • For the Dutch readers using Canal Digitaal as provider: caid=0100 with mask=ffff