Tvheadend oscam ziggo » History » Version 7

« Previous - Version 7/27 (diff) - Next » - Current version
Lars Op den Kamp -, 2010-03-24 21:43


This article describes how to build and configure oscam.

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-0.99.4svn1920-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-0.99.4svn1920-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]
nice = -1
WaitForCards = 1
pidfile = /opt/oscam/oscam.pid
logfile = /opt/oscam/oscam.log
usrfile = /opt/oscam/oscamuser.log
cwlogdir = /opt/oscam/etc/cw
clienttimeout = 1

[monitor]
port = 988
aulow = 120
monlevel = 0

[newcamd]
key = 0102030405060708091011121314 #Note this is the DES key used for encrypting communication between oscam and tvheadend
port = 15050@0604:000000
}}}

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

{{{
[reader]
Label = Ziggo
Device = /dev/ttyUSB0 #In this case my usb smartcard reader
mhz = 600 #Irdeto reader must run at 6MHz
cardmhz = 600 #Irdeto card must also run at 6MHz
Protocol = mouse
EMMCache = 1,3,2
Group = 1
caid = 0604:0000
rsakey = 3C8633AAC0D367533DEC7BB2EEEDEB8CA3ADA52E58B99BB34672783277A1DAAC3B6106AD0909774E031B2A6E30195B437683AD0FC599B87D08CEA47BE1B6C76A # only change this when it is required!
boxkey = 1122334455667788 # only change this when it is required!
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
}}}

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 Sun Mar 14 13:04:17 2010

-------------------------------------------------------------------------------
2010/03/14 13:04:17 2726 s version=0.99.4svn, build #1276, system=i686-pc-linux, nice=-1
2010/03/14 13:04:17 2726 s max. clients=509, client max. idle=120 sec
2010/03/14 13:04:17 2726 s max. logsize=unlimited
2010/03/14 13:04:17 2726 s client timeout=1000 ms, fallback timeout=2500 ms, cache delay=0 ms
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=4744
2010/03/14 13:04:17 2726 s Cannot open file "/opt/oscam/etc//oscam.services" (errno=2)
2010/03/14 13:04:17 2726 s userdb reloaded: 0 accounts freed, 2 accounts loaded, 0 expired, 0 disabled
2010/03/14 13:04:17 2726 s signal handling initialized (type=sysv)
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/03/14 13:04:17 2726 s monitor: initialized (fd=7, port=988)
2010/03/14 13:04:17 2726 s camd 3.3x: disabled
2010/03/14 13:04:17 2726 s camd 3.5x: disabled
2010/03/14 13:04:17 2726 s cs378x: disabled
2010/03/14 13:04:17 2726 s newcamd: initialized (fd=8, port=15050, crypted)
2010/03/14 13:04:17 2726 s CAID: 0604
2010/03/14 13:04:17 2726 s provid #0: 000000
2010/03/14 13:04:17 2726 s radegast: disabled
2010/03/14 13:04:17 2726 s resolver thread started
2010/03/14 13:04:17 2726 s logger started (pid=2730)
2010/03/14 13:04:17 2726 s resolver started (pid=2731, delay=30 sec)
2010/03/14 13:04:17 2726 s reader started (pid=2732, device=/dev/ttyUSB0, detect=cd, mhz=600, cardmhz=600)
2010/03/14 13:04:17 2726 s Waiting for local card init ....
2010/03/14 13:04:20 2732 r02 card detected
2010/03/14 13:04:23 2732 r02 ATR: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
2010/03/14 13:04:24 2732 r02 type: irdeto, caid: 0604, acs: 6.08
2010/03/14 13:04:24 2732 r02 ascii serial: XXXXXXXXXX, hex serial: XXXXXX, hex base: XX
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/03/14 13:04:27 2732 r02 provider: 1, id: 0645BD
2010/03/14 13:04:27 2732 r02 chid: 0001, date: 2003/12/26 - 2004/01/25
2010/03/14 13:04:27 2732 r02 chid: 000B, date: 2003/12/26 - 2004/01/25
2010/03/14 13:04:27 2732 r02 chid: FFE0, date: 2003/12/26 - 2003/12/30
2010/03/14 13:04:27 2732 r02 chid: 0384, date: 2003/12/26 - 2004/01/25
2010/03/14 13:04:27 2732 r02 chid: 000D, date: 2003/12/26 - 2004/01/25
2010/03/14 13:04:32 2726 s Init for all local cards done !
2010/03/14 13:04:32 2726 s anti cascading disabled
}}}

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 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~ svn builds as of today support EMM updates.
Now check Enabled and click 'Save Changes'

When you click Save Changes you will 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
  1. Copyright 1999-2010 Gentoo Foundation
  2. Distributed under the terms of the GNU General Public License v2
  3. $Header:

CONF="${myservice##*.}"

depend() {
need net
}

start() {
ebegin "Starting oscam"
start-stop-daemon --start --pidfile ${OSCAM_PID} \
--exec ${OSCAM_BIN} -- ${OSCAM_OPTS}
eend $?
}

stop() {
ebegin "Stopping oscam"
start-stop-daemon --stop --quiet --pidfile ${OSCAM_PID} --signal 2
eend $?
rm -f ${PIDFILE}
}
}}}

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

OSCAM_OPTS="-b -c /opt/oscam/etc/"
OSCAM_BIN="/opt/oscam/oscam.bin"
OSCAM_PID="/opt/oscam/oscam.pid"
}}}