Tvheadend oscam ziggo » History » Revision 14
Revision 13 (William Peters, 2010-09-09 15:46) → Revision 14/27 (William Peters, 2010-10-29 11:11)
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 the required directories {{{ mkdir -p /opt/oscam/src/ }}} Now we need to checkout the oscam source code using SVN {{{ svn co http://oscam.ump2002.net/svn/oscam/trunk/ /opt/oscam/src/ }}} Now we need to build oscam {{{ cd /opt/oscam/src/ make }}} After oscam is built you should have a file like 'oscam-1.00-unstable_svn-i686-pc-linux' 'oscam-0.99.4svnxxxx-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-1.00-unstable_svn-i686-pc-linux ./oscam-0.99.4svnxxxx-i686-pc-linux /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 {{{ [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 WaitForCards = 1000 maxlogsize = 10 waitforcards = 1 preferlocalcards pidfile = 1 /opt/oscam/oscam.pid saveinithistory logfile = 0 /opt/oscam/oscam.log readerrestartseconds usrfile = 5 /opt/oscam/oscamuser.log lb_mode cwlogdir = 0 /opt/oscam/etc/cw lb_save clienttimeout = 0 lb_nbest_readers = 1 lb_nfb_readers = 1 lb_min_ecmcount = 5 lb_max_ecmcount = 500 lb_reopen_seconds = 900 resolvegethostbyname = 0 [monitor] port = 988 nocrypt = aulow = 120 hideclient_to = 0 monlevel = 0 appendchaninfo = 0 [newcamd] port = 15050@0604:000000 key = 0102030405060708091011121314 allowed port = 15050@0604:000000 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 nobody (because you should run oscam as a unprivileged user) {{{ chown -R nobody:nobody /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 Sun Mar 14 13:04:17 2010 ------------------------------------------------------------------------------- 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s version=1.00-unstable_svn, version=0.99.4svn, build #, #1276, system=i686-pc-linux, nice=-1 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s max. clients=509, client max. idle=120 sec, debug level=0 sec 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s max. logsize=10 Kb logsize=unlimited 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s client timeout=2000 timeout=1000 ms, fallback timeout=1500 timeout=2500 ms, cache delay=0 ms 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s shared memory initialized (size=4182108, id=1376260) 2010/03/14 13:04:17 2726 s WARNING: fallbacktimeout adjusted to 900 ms (must be smaller than clienttimeout (1000 ms)) 2010/03/14 13:04:17 2726 s WARNING: fallbacktimeout adjusted to 1600 ms (must be greater than serialreadertimeout (1500 ms)) 2010/03/14 13:04:17 2726 s WARNING: clienttimeout adjusted to 1600 ms (must be greater than serialreadertimeout (1500 ms)) 2010/03/14 13:04:17 2726 s auth size=4788 size=4744 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s Cannot open file "/opt/oscam/etc//oscam.services" (errno=2) 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s userdb reloaded: 0 accounts freed, 2 accounts loaded, 0 expired, 0 disabled 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s signal handling initialized (type=sysv) 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s can't open file "/opt/oscam/etc//oscam.srvid" (err=2), no service-id's loaded 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 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 2010/03/14 13:04:17 2726 s camd33: camd 3.3x: disabled 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s camd35: camd 3.5x: disabled 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s cs378x: disabled 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s newcamd: initialized (fd=8, port=15050, crypted) 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s CAID: 0604 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s provid #0: 000000 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s cccam: disabled 2010/10/28 11:06:01 B73DF6C0 s radegast: disabled 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s http resolver thread started 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s creating thread for device /dev/ttyUSB0 slot 0 logger started (pid=2730) 2010/10/28 11:06:01 B73DF6C0 2010/03/14 13:04:17 2726 s waiting for local card init resolver started (pid=2731, delay=30 sec) 2010/10/28 11:06:01 B7375280 r 2010/03/14 13:04:17 2726 s reader thread started (thread=B7375280, (pid=2732, device=/dev/ttyUSB0, detect=cd, mhz=600, cardmhz=600) 2010/10/28 11:06:01 B76EA280 h HTTP Server listening on port 15080 2010/03/14 13:04:17 2726 s Waiting for local card init .... 2010/10/28 11:06:04 B7375280 r 2010/03/14 13:04:20 2732 r02 card detected 2010/10/28 11:06:08 B7375280 r 2010/03/14 13:04:23 2732 r02 ATR: 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 37 9A XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 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 2010/03/14 13:04:24 2732 r02 type: irdeto, caid: 0604, acs: 6.08, country code: NLD 6.08 2010/10/28 11:06:10 B7375280 r providers: 4, 2010/03/14 13:04:24 2732 r02 ascii serial: xxxxxxxxxxx, XXXXXXXXXX, hex serial: XXXXXX, hex base: XX 2010/10/28 11:06:13 B7375280 r active 2010/03/14 13:04:27 2732 r02 ready for requests 2010/03/14 13:04:27 2732 r02 card detected 2010/03/14 13:04:27 2732 r02 type: irdeto 2010/03/14 13:04:27 2732 r02 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 2010/03/14 13:04:27 2732 r02 provider: 1, id: XXXXXX 0645BD 2010/10/28 11:06:14 B7375280 r 2010/03/14 13:04:27 2732 r02 chid: 0001, date: 2004/08/16 2003/12/26 - 2004/09/15 2004/01/25 2010/10/28 11:06:14 B7375280 r 2010/03/14 13:04:27 2732 r02 chid: 000B, date: 2004/08/16 2003/12/26 - 2004/09/15 2004/01/25 2010/10/28 11:06:14 B7375280 r 2010/03/14 13:04:27 2732 r02 chid: FFE0, date: 2004/08/16 2003/12/26 - 2004/08/20 2003/12/30 2010/10/28 11:06:14 B7375280 r 2010/03/14 13:04:27 2732 r02 chid: 0384, date: 2004/08/16 2003/12/26 - 2004/09/15 2004/01/25 2010/10/28 11:06:14 B7375280 r 2010/03/14 13:04:27 2732 r02 chid: 000D, date: 2004/08/16 2003/12/26 - 2004/09/15 2004/01/25 2010/10/28 11:06:19 B7375280 r [irdeto-reader] ready for requests 2010/10/28 11:06:19 B73DF6C0 2010/03/14 13:04:32 2726 s init Init for all local cards done ! 2010/10/28 11:06:19 B73DF6C0 2010/03/14 13:04:32 2726 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~~ builds as of today support EMM updates. 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-2008 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: CONF="${myservice##*.}" depend() { use need net } start() { ebegin "Starting oscam" start-stop-daemon \ --start --pidfile ${OSCAM_PID} \ --user $OSCAMUSER \ --name $OSCAMNAME \ --exec $OSCAMBIN ${OSCAM_BIN} -- $OSCAMOPTS ${OSCAM_OPTS} eend $? } stop() { ebegin "Stopping oscam" start-stop-daemon --stop --quiet --pidfile ${OSCAM_PID} --signal 2 --name $OSCAMNAME eend $? rm -f ${PIDFILE} } }}} nano -w /etc/conf.d/oscam {{{ # /etc/conf.d/oscam: config file for /etc/init.d/oscam OSCAMOPTS="-b OSCAM_OPTS="-b -c /opt/oscam/etc/" OSCAMUSER="nobody" OSCAM_BIN="/opt/oscam/oscam.bin" OSCAMNAME="oscam.bin" OSCAM_PID="/opt/oscam/oscam.pid" OSCAMBIN="/opt/oscam/${OSCAMNAME}" }}}