Note: this page may be very out of date.
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
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 and click 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'
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
Ok tvheadend is now connected to oscam and is able to descramble channels that your card gives you access to.
Now to kill oscam press ctrl+c in the console.
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
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}"
Updated by Adam Sutton over 12 years ago · 27 revisions