Project

General

Profile

Tvheadend oscam ziggo » History » Revision 22

Revision 21 (ruud -, 2010-11-19 20:31) → Revision 22/27 (ruud -, 2010-11-19 20:45)

This article describes how to build and configure oscam. 

 Note that this oscam configuration is configured to work with Ziggo as provider. 
 It might work with other providers, but that needs to be confirmed. 

 Make sure you have cmake and subversion installed, these are required for checking out and building oscam. 

 Create a user for oscam and add it to the uucp group 

 {{{ 
 useradd oscam -s /sbin/nologin -m -d /opt/oscam/ 
 gpasswd -a oscam uucp 
 }}} 

 create the required directories 

 {{{ 
 mkdir /opt/oscam/src/ 
 }}} 

 Now we need to checkout the oscam source code using SVN 

 {{{ 
 svn co http://streamboard.gmc.to/svn/oscam /opt/oscam/src/ 
 }}} 

 Now we need to configure oscam 
 {{{ 
 cd /opt/oscam/src/trunk 
 ./config.sh 
 }}} 

 This is my configuration 
 {{{ 
 Addons: 
   [*] WEBIF 
   [*] HAVE_DVBAPI 
   [*] IRDETO_GUESSING 
   [*] CS_ANTICASC 
   [*] WITH_DEBUG 
   [ ] CS_WITH_DOUBLECHECK 
   [*] CS_LED 
   [*] CS_LOGHISTORY 

 Protocols: 
   [*] MODULE_CAMD33 
   [*] MODULE_CAMD35 
   [*] MODULE_CAMD35_TCP 
   [*] MODULE_NEWCAMD 
   [*] MODULE_CCCAM 
   [*] MODULE_RADEGAST 
   [*] MODULE_SERIAL 
   [*] MODULE_MONITOR 
   [*] MODULE_CONSTCW 

 Reader: 
   [*] READER_NAGRA 
   [*] READER_IRDETO 
   [*] READER_CONAX 
   [*] READER_CRYPTWORKS 
   [*] READER_SECA 
   [*] READER_VIACCESS 
   [*] READER_VIDEOGARD 
   [*] READER_DRE 
   [*] READER_TONGFANG 
 }}} 

 Now compile oscam 
 {{{ 
 make 
 }}} 

 After oscam is built you should have a file like 'oscam-1.00-unstable_svnxxxx-i686-pc-linux' in /opt/oscam/src/Distribution/. 
 We need to copy this file to an alternate location 

 {{{ 
 cd /opt/oscam/src/Distribution/ 
 cp ./oscam-* /opt/oscam/oscam.bin 
 }}} 

 Ok, the binaries are installed :) 
 Now we need to configure oscam first create the configuration directories 

 {{{ 
 mkdir -p /opt/oscam/etc/ 
 mkdir -p /opt/oscam/etc/cw/ 
 }}} 

 Note: /opt/oscam/etc/cw/ is used for caching keys.  

 Now, create oscam.conf in /opt/oscam/etc/oscam.conf 

 
 Note: replace example CAID with your own CAID (e.g. 0602) 

 {{{ 
 [global] 
 usrfile                         = /opt/oscam/oscamuser.log 
 logfile                         = /opt/oscam/oscam.log 
 cwlogdir                        = /opt/oscam/etc/cw 
 disablelog                      = 0 
 disableuserfile                 = 0 
 usrfileflag                     = 0 
 clienttimeout                   = 2000 
 fallbacktimeout                 = 1500 
 clientmaxidle                   = 120 
 failbantime                     = 0 
 bindwait                        = 120 
 netprio                         = 0 
 clientdyndns                    = 0 
 resolvedelay                    = 2 
 unlockparental                  = 0 
 nice                            = -1 
 serialreadertimeout             = 1000 
 maxlogsize                      = 10 
 waitforcards                    = 1 
 preferlocalcards                = 1 
 saveinithistory                 = 0 
 readerrestartseconds            = 5 
 lb_mode                         = 0 
 lb_save                         = 0 
 lb_nbest_readers                = 1 
 lb_nfb_readers                  = 1 
 lb_min_ecmcount                 = 5 
 lb_max_ecmcount                 = 500 
 lb_reopen_seconds               = 900 
 resolvegethostbyname            = 0 

 [newcamd] 
 port                            = 15050@0604:000000 
 key                             = 0102030405060708091011121314 
 allowed                         = 
 keepalive                       = 1 
 mgclient                        = 0 

 [webif] 
 httpport                        = 15080 
 httpuser                        = username 
 httppwd                         = password 
 httprefresh                     = 0 
 httpallowed                     = 127.0.0.1,YourIpRange 
 httphideidleclients             = 0 
 httpreadonly                    = 0 
 }}} 

 Now create oscam.server in /opt/oscam/etc/oscam.server 

 {{{ 
 [reader] 
 Label = Ziggo 
 Device = /dev/ttyUSB0 
 mhz = 600 
 cardmhz = 600 
 Protocol = mouse 
 EMMCache = 1,3,2 
 Group = 1 
 caid = 0604:0000 
 rsakey = 3C8633AAC0D367533DEC7BB2EEEDEB8CA3ADA52E58B99BB34672783277A1DAAC3B6106AD0909774E031B2A6E30195B437683AD0FC599B87D08CEA47BE1B6C76A 
 boxkey = 1122334455667788 
 fallback = 0 
 }}} 

 Now create oscam.user in /opt/oscam/etc/oscam.user 

 {{{ 
 [account] 
 user = tvheadend 
 pwd = tvheadend 
 uniq = 0 
 group = 1 
 ident = 0604:000000 
 caid = 0604 
 au = Ziggo 
 }}} 

 Now you need to change the owner and group of /opt/oscam to oscam (because you should run oscam as a unprivileged user) 

 {{{ 
 chown -R oscam:oscam /opt/oscam 
 }}} 

 Ok, if everything is configured correctly we can test the oscam installation 

 {{{ 
 /opt/oscam/oscam.bin -c /opt/oscam/etc/& touch /opt/oscam/oscam.log ; tail -f /opt/oscam/oscam.log ; killall oscam.bin 
 }}} 

 this should create some output like this 

 {{{ 
 ------------------------------------------------------------------------------- 
 >> OSCam <<    cardserver started at Thu Oct 28 11:06:01 2010 
 ------------------------------------------------------------------------------- 
 2010/10/28 11:06:01 B73DF6C0 s version=1.00-unstable_svn, build #, system=i686-pc-linux, nice=-1 
 2010/10/28 11:06:01 B73DF6C0 s client max. idle=120 sec, debug level=0 
 2010/10/28 11:06:01 B73DF6C0 s max. logsize=10 Kb 
 2010/10/28 11:06:01 B73DF6C0 s client timeout=2000 ms, fallback timeout=1500 ms, cache delay=0 ms 
 2010/10/28 11:06:01 B73DF6C0 s auth size=4788 
 2010/10/28 11:06:01 B73DF6C0 s Cannot open file "/opt/oscam/etc//oscam.services" (errno=2) 
 2010/10/28 11:06:01 B73DF6C0 s userdb reloaded: 0 accounts freed, 2 accounts loaded, 0 expired, 0 disabled 
 2010/10/28 11:06:01 B73DF6C0 s signal handling initialized (type=sysv) 
 2010/10/28 11:06:01 B73DF6C0 s can't open file "/opt/oscam/etc//oscam.srvid" (err=2), no service-id's loaded 
 2010/10/28 11:06:01 B73DF6C0 s can't open file "/opt/oscam/etc//oscam.tiers" (err=2), no tier-id's loaded 
 2010/10/28 11:06:01 B73DF6C0 s can't open file "/opt/oscam/etc//oscam.provid" (err=2), no provids's loaded 
 2010/10/28 11:06:01 B73DF6C0 s can't open file "/opt/oscam/etc//oscam.ird" (errno=2) irdeto guessing not loaded 
 2010/10/28 11:06:01 B73DF6C0 s monitor: initialized (fd=7, port=988) 
 2010/10/28 11:06:01 B73DF6C0 s camd33: disabled 
 2010/10/28 11:06:01 B73DF6C0 s camd35: disabled 
 2010/10/28 11:06:01 B73DF6C0 s cs378x: disabled 
 2010/10/28 11:06:01 B73DF6C0 s newcamd: initialized (fd=8, port=15050, crypted) 
 2010/10/28 11:06:01 B73DF6C0 s CAID: 0604 
 2010/10/28 11:06:01 B73DF6C0 s provid #0: 000000 
 2010/10/28 11:06:01 B73DF6C0 s cccam: disabled 
 2010/10/28 11:06:01 B73DF6C0 s radegast: disabled 
 2010/10/28 11:06:01 B73DF6C0 s http thread started 
 2010/10/28 11:06:01 B73DF6C0 s creating thread for device /dev/ttyUSB0 slot 0 
 2010/10/28 11:06:01 B73DF6C0 s waiting for local card init 
 2010/10/28 11:06:01 B7375280 r reader thread started (thread=B7375280, device=/dev/ttyUSB0, detect=cd, mhz=600, cardmhz=600) 
 2010/10/28 11:06:01 B76EA280 h HTTP Server listening on port 15080 
 2010/10/28 11:06:04 B7375280 r card detected 
 2010/10/28 11:06:08 B7375280 r ATR: 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 37 9A 
 2010/10/28 11:06:09 B7375280 r Maximum frequency for this card is formally 6 Mhz, clocking it to 6.00 Mhz 
 2010/10/28 11:06:10 B7375280 r detect irdeto card 
 2010/10/28 11:06:10 B7375280 r caid: 0604, acs: 6.08, country code: NLD 
 2010/10/28 11:06:10 B7375280 r providers: 4, ascii serial: xxxxxxxxxxx, hex serial: XXXXXX, hex base: XX 
 2010/10/28 11:06:13 B7375280 r active providers: 4 (xxxxxx,xxxxxx,xxxxxx,xxxxxx) 
 2010/10/28 11:06:13 B7375280 r found cardsystem 
 2010/10/28 11:06:14 B7375280 r entitlements for provider: 1, id: XXXXXX 
 2010/10/28 11:06:14 B7375280 r chid: 0001, date: 2004/08/16 - 2004/09/15 
 2010/10/28 11:06:14 B7375280 r chid: 000B, date: 2004/08/16 - 2004/09/15 
 2010/10/28 11:06:14 B7375280 r chid: FFE0, date: 2004/08/16 - 2004/08/20 
 2010/10/28 11:06:14 B7375280 r chid: 0384, date: 2004/08/16 - 2004/09/15 
 2010/10/28 11:06:14 B7375280 r chid: 000D, date: 2004/08/16 - 2004/09/15 
 2010/10/28 11:06:19 B7375280 r [irdeto-reader] ready for requests 
 2010/10/28 11:06:19 B73DF6C0 s init for all local cards done 
 2010/10/28 11:06:19 B73DF6C0 s anti cascading disabled 
 2010/10/28 11:06:19 B736E280 c client connected to 15050 port 
 2010/10/28 11:06:19 B7367280 c client connected to 15050 port 
 2010/10/28 11:06:19 B7367280 c Connection closed to client 
 2010/10/28 11:06:19 B736E280 c Connection closed to client 
 2010/10/28 11:06:19 B7367280 c thread B7367280 ended! 
 2010/10/28 11:06:19 B736E280 c thread B736E280 ended! 
 }}} 

 Oscam is now running on serverip:15050. 
 Open your tvheadend web interface. 
 Go to Configuration -> Code Word Client 
 Click Add Entry 
 Doubleclick 'hostname' type your server ip or hostname that is runnin oscam.  
 Doubleclick 'port' type the port number (if you made no changes to config files it should be 15050). 
 Doubleclick 'username' type the username as configured in oscam.user. 
 Doubleclick 'password' type the password as configured in oscam.user. 
 Doubleclick 'DES key' here you can insert your DES key. If you haven't changed it in oscam.conf (you should!) then this should be: 01:02:03:04:05:06:07:08:09:10:11:12:13:14 
 Check 'Update Card', ~~at this moment tvheadend does not support EMM updates this option won't be used anyway~~ support for Irdeto EMM updates was added in r4359. 
 Now check Enabled and click 'Save Changes' 

 When you click Save Changes you will see something like this in the system logs 

 {{{ 
 Mar 24 20:55:38 cwc: 10.2.0.2: Connected as user 0x0x to a Irdeto-card [0x0604 : xx.xx.xx.xx.xx.xx.xx.xx] with 5 providers 
 Mar 24 20:55:38 cwc: 10.2.0.2: irdeto card 
 Mar 24 20:55:38 cwc: 10.2.0.2: Provider ID #1: 0x000000 xx.xx.xx.xx.xx.xx.xx.xx 
 Mar 24 20:55:38 cwc: 10.2.0.2: Provider ID #2: 0x000001 xx.xx.xx.xx.xx.xx.xx.xx 
 Mar 24 20:55:38 cwc: 10.2.0.2: Provider ID #3: 0x000002 xx.xx.xx.xx.xx.xx.xx.xx 
 Mar 24 20:55:38 cwc: 10.2.0.2: Provider ID #4: 0x000003 xx.xx.xx.xx.xx.xx.xx.xx 
 Mar 24 20:55:38 cwc: 10.2.0.2: Provider ID #5: 0x000004 xx.xx.xx.xx.xx.xx.xx.xx 
 Mar 24 20:55:38 cwc: 10.2.0.2: Will forward EMMs 
 }}} 

 now to kill oscam press ctrl+c in the console. 

 Ok tvheadend is now connected to oscam and is able to descramble channels that your card gives you access to. 

 ~~At this moment tvheadend does not support EMM updates, this means you have to update your card atleast once a week. 
 This can be done by inserting your smartcard for 30 minutes in the retail dvb-c setop box. 
 After that restart oscam.~~ 


 == For Gentoo users i have an init script == 

 nano -w /etc/init.d/oscam 
 {{{ 
 #!/sbin/runscript 
 # Copyright 1999-2010 Gentoo Foundation 
 # Distributed under the terms of the GNU General Public License v2 
 # $Header: 

 depend() { 
         use net 
 } 

 start() { 
         ebegin "Starting oscam" 
         start-stop-daemon \ 
                 --start \ 
                 --user $OSCAMUSER \ 
                 --name $OSCAMNAME \ 
                 --exec $OSCAMBIN -- $OSCAMOPTS 
         eend $? 
 } 

 stop() { 
         ebegin "Stopping oscam" 
         start-stop-daemon --stop --signal 2 --name $OSCAMNAME 
         eend $? 
 } 
 }}} 

 nano -w /etc/conf.d/oscam 
 {{{ 
 # /etc/conf.d/oscam: config file for /etc/init.d/oscam 

 OSCAMOPTS="-b -c /opt/oscam/etc/" 
 OSCAMUSER="oscam" 
 OSCAMNAME="oscam.bin" 
 OSCAMBIN="/opt/oscam/${OSCAMNAME}" 
 }}}