<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-AT">
	<id>http://oldwiki.streamboard.tv/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masterjcl</id>
	<title>Streamboard Wiki - Benutzerbeiträge [de-at]</title>
	<link rel="self" type="application/atom+xml" href="http://oldwiki.streamboard.tv/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masterjcl"/>
	<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/wiki/Spezial:Beitr%C3%A4ge/Masterjcl"/>
	<updated>2026-05-08T20:46:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9371</id>
		<title>OSCam/de/Self-made</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9371"/>
		<updated>2012-06-18T07:28:05Z</updated>

		<summary type="html">&lt;p&gt;Masterjcl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:OSCam]]&lt;br /&gt;
{{OSCamHomeLinks}}&lt;br /&gt;
&lt;br /&gt;
== OSCam selbstgemacht ==&lt;br /&gt;
=== Intro ===&lt;br /&gt;
Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam &#039;&#039;&#039;im Groben&#039;&#039;&#039; beschrieben.&lt;br /&gt;
Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit &#039;&#039;&#039;[http://www.debian.org/ Debian]&#039;&#039;&#039; 6 getestet.&lt;br /&gt;
&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein Linux-PC wird vorausgesetzt. Selbstverständlich &#039;&#039;&#039;muss es kein physikalischer PC sein&#039;&#039;&#039;, eine &#039;&#039;&#039;virtuelle Maschine&#039;&#039;&#039; (VM) macht es genauso gut [[Datei:Smiley_wink.png]].&lt;br /&gt;
Der kostenlose [http://www.vmware.com/products/player/ VMware Player] ist z.B. sehr empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Lade Dir ein [http://de.wikipedia.org/wiki/Linux-Distribution Linux] Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM.&lt;br /&gt;
Wie oben bereits erwähnt, basieren die &#039;&#039;Linux-Inhalte&#039;&#039; in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:WarningS.png|text-bottom]] &#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es wird von Usern berichtet, dass es im easybuild-script bei der Toolchain für mipsel-dreambox Systemfehler und Abbrüche beim Compilieren gibt, wenn auf dem PC ein 64bit Linux läuft. Diese Schwierigkeiten gibt es auf einem 32bit Linux nicht (man kann ja auch ein 32bit Linux auf einer 64bit Hardware laufen lassen).&lt;br /&gt;
[Dank an msrx111 für den Hinweis!]&lt;br /&gt;
Ich habe den Fehler gefunden und hier mit eingepflegt siehe 32Bit libz auf 64 Bit Systemen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Benötigte Pakete ===&lt;br /&gt;
Folgende Pakete werden zum Erstellen von OSCam benötigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# um Probleme zu vermeiden bitte die Pakete  und Quellen erst updaten&lt;br /&gt;
apt-get update --fix-missing&lt;br /&gt;
apt-get install cvs subversion&lt;br /&gt;
apt-get install autoconf libccid automake libtool gettext make cmake&lt;br /&gt;
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3&lt;br /&gt;
# zlib (development headers) - zlib1g-dev&lt;br /&gt;
apt-get install tar bzip2 gzip zlib1g-dev&lt;br /&gt;
# libz 32Bit auf 64Bit Systemen wichtig bei Toolchain Benutzung&lt;br /&gt;
apt-get install lib32z1&lt;br /&gt;
&lt;br /&gt;
# for sa and aes:&lt;br /&gt;
apt-get install libssl-dev libssl0.9.8&lt;br /&gt;
&lt;br /&gt;
# for pcsc:&lt;br /&gt;
apt-get install libpcsclite1 libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
# for smartreader branch:&lt;br /&gt;
apt-get install libusb-1.0-0 libusb-1.0-0-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verzeichnisstruktur ===&lt;br /&gt;
 root@srv01:/var/shares/linux# tree oscam -L 2 -d&lt;br /&gt;
 oscam&lt;br /&gt;
 +-- bin                # hier landen die fertigen OSCam`s&lt;br /&gt;
 ¦   +-- archive        # hierein archivieren wir &amp;quot;alte&amp;quot; OSCam-Binaries&lt;br /&gt;
 +-- make               # in diesem Verzeichnis &amp;quot;machen&amp;quot; wir OSCam&lt;br /&gt;
 +-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt&lt;br /&gt;
 ¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 +-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling]&lt;br /&gt;
     +-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen&lt;br /&gt;
     +-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2&lt;br /&gt;
     +-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode &amp;quot;&#039;&#039;auschecken&#039;&#039;&amp;quot; (SVN) ===&lt;br /&gt;
==== Erstes Auschecken ====&lt;br /&gt;
Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039; # anpassen!&lt;br /&gt;
svnDir=&#039;svn-sb&#039; # anpassen!&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn co http://streamboard.gmc.to/svn/oscam $svnDir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales [http://de.wikipedia.org/wiki/Repository Repository] nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
Es ist absolut nichts magisches und in ein paar Sekunden erledigt [[Datei:Smiley_wink.png]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# ODER wenn wir von einem bestimmten Zweig bauen moechten...&lt;br /&gt;
#ver=&#039;1.10&#039;&lt;br /&gt;
#svnBranch=&#039;tags&#039;&lt;br /&gt;
#svnBuildDir=&#039;1.10&#039;&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# i686 *****************************************************&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=0 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=1 -DMODULE_RADEGAST=1 -DMODULE_SERIAL=1 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=1 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=1 -DREADER_CRYPTOWORKS=1 -DREADER_SECA=1 -DREADER_VIACCESS=1 -DREADER_VIDEOGUARD=1 -DREADER_DRE=1 -DREADER_TONGFANG=1 \&lt;br /&gt;
      -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
# wenn mehrere CPU-Kerne zur Verfügung stehen...&lt;br /&gt;
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren&lt;br /&gt;
# ...ansonsten nur &amp;quot;make&amp;quot; ausführen&lt;br /&gt;
# erstellte Binaries verschieben... ************************&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
if [ -x &amp;quot;utils/list_smargo&amp;quot; ]; then mv -f utils/list_smargo ../bin/; fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Für andere Plattformen kompilieren ===&lt;br /&gt;
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.&lt;br /&gt;
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.&lt;br /&gt;
Einige Toolchains und weitere Informationen zum &amp;quot;&#039;&#039;&#039;&#039;&#039;Cross-Compiling&#039;&#039;&#039;&#039;&#039;&amp;quot; findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling &#039;&#039;&#039;&amp;amp;raquo;hier&amp;amp;laquo;&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
==== Beispiel DM800 ====&lt;br /&gt;
Toolchain-Datei:&lt;br /&gt;
 # toolchain-mipsel.cmake&lt;br /&gt;
 set (OSCAM_SYSTEM_NAME Tuxbox)&lt;br /&gt;
 set (CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)&lt;br /&gt;
 set (CMAKE_SYSTEM_PROCESSOR mips)&lt;br /&gt;
&lt;br /&gt;
Auschecken und kompilieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # dient nur fuer den Dateinamen&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# mipsel ***************************************************&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=0 -DMODULE_RADEGAST=0 -DMODULE_SERIAL=0 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=0 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=0 -DREADER_CRYPTOWORKS=0 -DREADER_SECA=0 -DREADER_VIACCESS=0 -DREADER_VIDEOGUARD=1 -DREADER_DRE=0 -DREADER_TONGFANG=0 \&lt;br /&gt;
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DCS_CONFDIR=/usr/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsel/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
make -j4&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build per Menü konfigurieren ===&lt;br /&gt;
Wenn man immer &#039;&#039;&#039;nur für eine Plattform baut&#039;&#039;&#039;, kann man die Konfiguration auch über ein Menü einstellen.&lt;br /&gt;
Somit lassen sich die o.a. Parameter bei den &amp;quot;cmake&amp;quot;-Beispielen ersparen.&lt;br /&gt;
&lt;br /&gt;
Um das Menü-Skript auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $oscamRoot/$svnDir/trunk/&lt;br /&gt;
./config.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Erklärungen zur menügeführten Konfiguration ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border:1px solid DarkGrey;border-collapse:collapse;empty-cells:show&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#f9f9f9;&amp;quot;&lt;br /&gt;
! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| Webif support&lt;br /&gt;
| OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSL support&lt;br /&gt;
| Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff.&lt;br /&gt;
Andernfalls steht nur reines http zur Verfügung.&lt;br /&gt;
Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.&lt;br /&gt;
|-&lt;br /&gt;
| Dvbapi support&lt;br /&gt;
| Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern.&lt;br /&gt;
Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.&lt;br /&gt;
|-&lt;br /&gt;
| Gbox support&lt;br /&gt;
| Ein CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Anticasc support&lt;br /&gt;
| Anticascading-Support über die Configdatei oscam.ac.&lt;br /&gt;
Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).&lt;br /&gt;
Siehe [[OSCam/de/Config/oscam.ac]]&lt;br /&gt;
|-&lt;br /&gt;
| ECM doublecheck&lt;br /&gt;
| Erlaubt die Benutzung des double_check-Parameters.&lt;br /&gt;
Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto guessing&lt;br /&gt;
| Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.&lt;br /&gt;
|-&lt;br /&gt;
| Debug&lt;br /&gt;
| Erweiterte Fehlerausgaben sind im Betrieb möglich.&lt;br /&gt;
|-&lt;br /&gt;
| LED support&lt;br /&gt;
| LED der Dockstar wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| Qboxhd-LED support&lt;br /&gt;
| LED der QBoxHD wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| CS_Log history&lt;br /&gt;
| Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.&lt;br /&gt;
|-&lt;br /&gt;
| Monitor&lt;br /&gt;
| Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface).&lt;br /&gt;
Der Monitor Port wird in der oscam.config eingestellt.&lt;br /&gt;
|-&lt;br /&gt;
| Camd33&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 UDP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 TCP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Newcamd&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Cccam&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Radegast&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Serial&lt;br /&gt;
| wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird&lt;br /&gt;
|-&lt;br /&gt;
| ConstCW&lt;br /&gt;
| ein &amp;quot;Cryptsystem&amp;quot; bei dem immer das gleiche ControlWord verwendet wird.&lt;br /&gt;
|-&lt;br /&gt;
| Cardreader&lt;br /&gt;
| OSCam wird als Cardreader kompiliert&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Die folgenden Verschlüsselungssysteme mit zugehörigen Karten kann man hier einsehen: [http://streamboard.gmc.to/oscam/wiki/CardsList Card List]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden.&lt;br /&gt;
|-&lt;br /&gt;
| Nagra&lt;br /&gt;
| OSCam kann Nagra Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto&lt;br /&gt;
| OSCam kann Irdeto Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Conax&lt;br /&gt;
| OSCam kann Conax Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Cryptoworks&lt;br /&gt;
| OSCam kann Cryptoworks Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Seca&lt;br /&gt;
| OSCam kann Seca Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Viaccess&lt;br /&gt;
| OSCam kann Viacess Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Videoguard&lt;br /&gt;
| OSCam kann Videoguard Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Dre&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|-&lt;br /&gt;
| Tongfang&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OSCamTranslatedLinks}}&lt;/div&gt;</summary>
		<author><name>Masterjcl</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9370</id>
		<title>OSCam/de/Self-made</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9370"/>
		<updated>2012-06-18T07:03:17Z</updated>

		<summary type="html">&lt;p&gt;Masterjcl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:OSCam]]&lt;br /&gt;
{{OSCamHomeLinks}}&lt;br /&gt;
&lt;br /&gt;
== OSCam selbstgemacht ==&lt;br /&gt;
=== Intro ===&lt;br /&gt;
Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam &#039;&#039;&#039;im Groben&#039;&#039;&#039; beschrieben.&lt;br /&gt;
Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit &#039;&#039;&#039;[http://www.debian.org/ Debian]&#039;&#039;&#039; 6 getestet.&lt;br /&gt;
&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein Linux-PC wird vorausgesetzt. Selbstverständlich &#039;&#039;&#039;muss es kein physikalischer PC sein&#039;&#039;&#039;, eine &#039;&#039;&#039;virtuelle Maschine&#039;&#039;&#039; (VM) macht es genauso gut [[Datei:Smiley_wink.png]].&lt;br /&gt;
Der kostenlose [http://www.vmware.com/products/player/ VMware Player] ist z.B. sehr empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Lade Dir ein [http://de.wikipedia.org/wiki/Linux-Distribution Linux] Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM.&lt;br /&gt;
Wie oben bereits erwähnt, basieren die &#039;&#039;Linux-Inhalte&#039;&#039; in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:WarningS.png|text-bottom]] &#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es wird von Usern berichtet, dass es im easybuild-script bei der Toolchain für mipsel-dreambox Systemfehler und Abbrüche beim Compilieren gibt, wenn auf dem PC ein 64bit Linux läuft. Diese Schwierigkeiten gibt es auf einem 32bit Linux nicht (man kann ja auch ein 32bit Linux auf einer 64bit Hardware laufen lassen).&lt;br /&gt;
[Dank an msrx111 für den Hinweis!]&lt;br /&gt;
Ich habe den Fehler gefunden und hier mit eingepflegt siehe 32Bit libz auf 64 Bit Systemen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Benötigte Pakete ===&lt;br /&gt;
Folgende Pakete werden zum Erstellen von OSCam benötigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# um Probleme zu vermeiden bitte die Pakete  und Quellen erst updaten&lt;br /&gt;
apt-get update --fix-missing&lt;br /&gt;
apt-get install cvs subversion&lt;br /&gt;
apt-get install autoconf libccid automake libtool gettext make cmake&lt;br /&gt;
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3&lt;br /&gt;
# zlib (development headers) - zlib1g-dev&lt;br /&gt;
apt-get install tar bzip2 gzip zlib1g-dev&lt;br /&gt;
# libz 32Bit auf 64Bit Systemen wichtig bei Toolchain Benutzung&lt;br /&gt;
apt-get install lib32z1&lt;br /&gt;
&lt;br /&gt;
# for sa and aes:&lt;br /&gt;
apt-get install libssl-dev libssl0.9.8&lt;br /&gt;
&lt;br /&gt;
# for pcsc:&lt;br /&gt;
apt-get install libpcsclite1 libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
# for smartreader branch:&lt;br /&gt;
apt-get install libusb-1.0-0 libusb-1.0-0-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verzeichnisstruktur ===&lt;br /&gt;
 root@srv01:/var/shares/linux# tree oscam -L 2 -d&lt;br /&gt;
 oscam&lt;br /&gt;
 +-- bin                # hier landen die fertigen OSCam`s&lt;br /&gt;
 ¦   +-- archive        # hierein archivieren wir &amp;quot;alte&amp;quot; OSCam-Binaries&lt;br /&gt;
 +-- make               # in diesem Verzeichnis &amp;quot;machen&amp;quot; wir OSCam&lt;br /&gt;
 +-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt&lt;br /&gt;
 ¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 +-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling]&lt;br /&gt;
     +-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen&lt;br /&gt;
     +-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2&lt;br /&gt;
     +-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode &amp;quot;&#039;&#039;auschecken&#039;&#039;&amp;quot; (SVN) ===&lt;br /&gt;
==== Erstes Auschecken ====&lt;br /&gt;
Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039; # anpassen!&lt;br /&gt;
svnDir=&#039;svn-sb&#039; # anpassen!&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn co http://streamboard.gmc.to/svn/oscam $svnDir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales [http://de.wikipedia.org/wiki/Repository Repository] nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
Es ist absolut nichts magisches und in ein paar Sekunden erledigt [[Datei:Smiley_wink.png]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# ODER wenn wir von einem bestimmten Zweig bauen moechten...&lt;br /&gt;
#ver=&#039;1.10&#039;&lt;br /&gt;
#svnBranch=&#039;tags&#039;&lt;br /&gt;
#svnBuildDir=&#039;1.10&#039;&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# i686 *****************************************************&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=0 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=1 -DMODULE_RADEGAST=1 -DMODULE_SERIAL=1 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=1 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=1 -DREADER_CRYPTOWORKS=1 -DREADER_SECA=1 -DREADER_VIACCESS=1 -DREADER_VIDEOGUARD=1 -DREADER_DRE=1 -DREADER_TONGFANG=1 \&lt;br /&gt;
      -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
# wenn mehrere CPU-Kerne zur Verfügung stehen...&lt;br /&gt;
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren&lt;br /&gt;
# ...ansonsten nur &amp;quot;make&amp;quot; ausführen&lt;br /&gt;
# erstellte Binaries verschieben... ************************&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
if [ -x &amp;quot;utils/list_smargo&amp;quot; ]; then mv -f utils/list_smargo ../bin/; fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Für andere Plattformen kompilieren ===&lt;br /&gt;
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.&lt;br /&gt;
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.&lt;br /&gt;
Einige Toolchains und weitere Informationen zum &amp;quot;&#039;&#039;&#039;&#039;&#039;Cross-Compiling&#039;&#039;&#039;&#039;&#039;&amp;quot; findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling &#039;&#039;&#039;&amp;amp;raquo;hier&amp;amp;laquo;&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
==== Beispiel DM800 ====&lt;br /&gt;
Toolchain-Datei:&lt;br /&gt;
 # toolchain-mipsel.cmake&lt;br /&gt;
 set (OSCAM_SYSTEM_NAME Tuxbox)&lt;br /&gt;
 set (CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)&lt;br /&gt;
 set (CMAKE_SYSTEM_PROCESSOR mips)&lt;br /&gt;
&lt;br /&gt;
Auschecken und kompilieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # dient nur fuer den Dateinamen&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# mipsel ***************************************************&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=0 -DMODULE_RADEGAST=0 -DMODULE_SERIAL=0 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=0 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=0 -DREADER_CRYPTOWORKS=0 -DREADER_SECA=0 -DREADER_VIACCESS=0 -DREADER_VIDEOGUARD=1 -DREADER_DRE=0 -DREADER_TONGFANG=0 \&lt;br /&gt;
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DCS_CONFDIR=/usr/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
make -j4&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build per Menü konfigurieren ===&lt;br /&gt;
Wenn man immer &#039;&#039;&#039;nur für eine Plattform baut&#039;&#039;&#039;, kann man die Konfiguration auch über ein Menü einstellen.&lt;br /&gt;
Somit lassen sich die o.a. Parameter bei den &amp;quot;cmake&amp;quot;-Beispielen ersparen.&lt;br /&gt;
&lt;br /&gt;
Um das Menü-Skript auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $oscamRoot/$svnDir/trunk/&lt;br /&gt;
./config.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Erklärungen zur menügeführten Konfiguration ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border:1px solid DarkGrey;border-collapse:collapse;empty-cells:show&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#f9f9f9;&amp;quot;&lt;br /&gt;
! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| Webif support&lt;br /&gt;
| OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSL support&lt;br /&gt;
| Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff.&lt;br /&gt;
Andernfalls steht nur reines http zur Verfügung.&lt;br /&gt;
Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.&lt;br /&gt;
|-&lt;br /&gt;
| Dvbapi support&lt;br /&gt;
| Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern.&lt;br /&gt;
Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.&lt;br /&gt;
|-&lt;br /&gt;
| Gbox support&lt;br /&gt;
| Ein CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Anticasc support&lt;br /&gt;
| Anticascading-Support über die Configdatei oscam.ac.&lt;br /&gt;
Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).&lt;br /&gt;
Siehe [[OSCam/de/Config/oscam.ac]]&lt;br /&gt;
|-&lt;br /&gt;
| ECM doublecheck&lt;br /&gt;
| Erlaubt die Benutzung des double_check-Parameters.&lt;br /&gt;
Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto guessing&lt;br /&gt;
| Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.&lt;br /&gt;
|-&lt;br /&gt;
| Debug&lt;br /&gt;
| Erweiterte Fehlerausgaben sind im Betrieb möglich.&lt;br /&gt;
|-&lt;br /&gt;
| LED support&lt;br /&gt;
| LED der Dockstar wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| Qboxhd-LED support&lt;br /&gt;
| LED der QBoxHD wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| CS_Log history&lt;br /&gt;
| Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.&lt;br /&gt;
|-&lt;br /&gt;
| Monitor&lt;br /&gt;
| Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface).&lt;br /&gt;
Der Monitor Port wird in der oscam.config eingestellt.&lt;br /&gt;
|-&lt;br /&gt;
| Camd33&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 UDP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 TCP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Newcamd&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Cccam&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Radegast&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Serial&lt;br /&gt;
| wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird&lt;br /&gt;
|-&lt;br /&gt;
| ConstCW&lt;br /&gt;
| ein &amp;quot;Cryptsystem&amp;quot; bei dem immer das gleiche ControlWord verwendet wird.&lt;br /&gt;
|-&lt;br /&gt;
| Cardreader&lt;br /&gt;
| OSCam wird als Cardreader kompiliert&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Die folgenden Verschlüsselungssysteme mit zugehörigen Karten kann man hier einsehen: [http://streamboard.gmc.to/oscam/wiki/CardsList Card List]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden.&lt;br /&gt;
|-&lt;br /&gt;
| Nagra&lt;br /&gt;
| OSCam kann Nagra Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto&lt;br /&gt;
| OSCam kann Irdeto Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Conax&lt;br /&gt;
| OSCam kann Conax Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Cryptoworks&lt;br /&gt;
| OSCam kann Cryptoworks Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Seca&lt;br /&gt;
| OSCam kann Seca Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Viaccess&lt;br /&gt;
| OSCam kann Viacess Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Videoguard&lt;br /&gt;
| OSCam kann Videoguard Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Dre&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|-&lt;br /&gt;
| Tongfang&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OSCamTranslatedLinks}}&lt;/div&gt;</summary>
		<author><name>Masterjcl</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9369</id>
		<title>OSCam/de/Self-made</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9369"/>
		<updated>2012-06-18T07:00:45Z</updated>

		<summary type="html">&lt;p&gt;Masterjcl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:OSCam]]&lt;br /&gt;
{{OSCamHomeLinks}}&lt;br /&gt;
&lt;br /&gt;
== OSCam selbstgemacht ==&lt;br /&gt;
=== Intro ===&lt;br /&gt;
Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam &#039;&#039;&#039;im Groben&#039;&#039;&#039; beschrieben.&lt;br /&gt;
Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit &#039;&#039;&#039;[http://www.debian.org/ Debian]&#039;&#039;&#039; 6 getestet.&lt;br /&gt;
&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein Linux-PC wird vorausgesetzt. Selbstverständlich &#039;&#039;&#039;muss es kein physikalischer PC sein&#039;&#039;&#039;, eine &#039;&#039;&#039;virtuelle Maschine&#039;&#039;&#039; (VM) macht es genauso gut [[Datei:Smiley_wink.png]].&lt;br /&gt;
Der kostenlose [http://www.vmware.com/products/player/ VMware Player] ist z.B. sehr empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Lade Dir ein [http://de.wikipedia.org/wiki/Linux-Distribution Linux] Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM.&lt;br /&gt;
Wie oben bereits erwähnt, basieren die &#039;&#039;Linux-Inhalte&#039;&#039; in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:WarningS.png|text-bottom]] &#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es wird von Usern berichtet, dass es im easybuild-script bei der Toolchain für mipsel-dreambox Systemfehler und Abbrüche beim Compilieren gibt, wenn auf dem PC ein 64bit Linux läuft. Diese Schwierigkeiten gibt es auf einem 32bit Linux nicht (man kann ja auch ein 32bit Linux auf einer 64bit Hardware laufen lassen).&lt;br /&gt;
[Dank an msrx111 für den Hinweis!]&lt;br /&gt;
&lt;br /&gt;
=== Benötigte Pakete ===&lt;br /&gt;
Folgende Pakete werden zum Erstellen von OSCam benötigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# um Probleme zu vermeiden bitte die Pakete  und Quellen erst updaten&lt;br /&gt;
apt-get update --fix-missing&lt;br /&gt;
apt-get install cvs subversion&lt;br /&gt;
apt-get install autoconf libccid automake libtool gettext make cmake&lt;br /&gt;
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3&lt;br /&gt;
# zlib (development headers) - zlib1g-dev&lt;br /&gt;
apt-get install tar bzip2 gzip zlib1g-dev&lt;br /&gt;
# zlib 32Bit auf 64Bit Systemen wichtig bei Toolchain Benutzung&lt;br /&gt;
apt-get install lib32z1&lt;br /&gt;
&lt;br /&gt;
# for sa and aes:&lt;br /&gt;
apt-get install libssl-dev libssl0.9.8&lt;br /&gt;
&lt;br /&gt;
# for pcsc:&lt;br /&gt;
apt-get install libpcsclite1 libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
# for smartreader branch:&lt;br /&gt;
apt-get install libusb-1.0-0 libusb-1.0-0-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verzeichnisstruktur ===&lt;br /&gt;
 root@srv01:/var/shares/linux# tree oscam -L 2 -d&lt;br /&gt;
 oscam&lt;br /&gt;
 +-- bin                # hier landen die fertigen OSCam`s&lt;br /&gt;
 ¦   +-- archive        # hierein archivieren wir &amp;quot;alte&amp;quot; OSCam-Binaries&lt;br /&gt;
 +-- make               # in diesem Verzeichnis &amp;quot;machen&amp;quot; wir OSCam&lt;br /&gt;
 +-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt&lt;br /&gt;
 ¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 +-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling]&lt;br /&gt;
     +-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen&lt;br /&gt;
     +-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2&lt;br /&gt;
     +-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode &amp;quot;&#039;&#039;auschecken&#039;&#039;&amp;quot; (SVN) ===&lt;br /&gt;
==== Erstes Auschecken ====&lt;br /&gt;
Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039; # anpassen!&lt;br /&gt;
svnDir=&#039;svn-sb&#039; # anpassen!&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn co http://streamboard.gmc.to/svn/oscam $svnDir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales [http://de.wikipedia.org/wiki/Repository Repository] nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
Es ist absolut nichts magisches und in ein paar Sekunden erledigt [[Datei:Smiley_wink.png]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# ODER wenn wir von einem bestimmten Zweig bauen moechten...&lt;br /&gt;
#ver=&#039;1.10&#039;&lt;br /&gt;
#svnBranch=&#039;tags&#039;&lt;br /&gt;
#svnBuildDir=&#039;1.10&#039;&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# i686 *****************************************************&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=0 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=1 -DMODULE_RADEGAST=1 -DMODULE_SERIAL=1 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=1 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=1 -DREADER_CRYPTOWORKS=1 -DREADER_SECA=1 -DREADER_VIACCESS=1 -DREADER_VIDEOGUARD=1 -DREADER_DRE=1 -DREADER_TONGFANG=1 \&lt;br /&gt;
      -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
# wenn mehrere CPU-Kerne zur Verfügung stehen...&lt;br /&gt;
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren&lt;br /&gt;
# ...ansonsten nur &amp;quot;make&amp;quot; ausführen&lt;br /&gt;
# erstellte Binaries verschieben... ************************&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
if [ -x &amp;quot;utils/list_smargo&amp;quot; ]; then mv -f utils/list_smargo ../bin/; fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Für andere Plattformen kompilieren ===&lt;br /&gt;
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.&lt;br /&gt;
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.&lt;br /&gt;
Einige Toolchains und weitere Informationen zum &amp;quot;&#039;&#039;&#039;&#039;&#039;Cross-Compiling&#039;&#039;&#039;&#039;&#039;&amp;quot; findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling &#039;&#039;&#039;&amp;amp;raquo;hier&amp;amp;laquo;&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
==== Beispiel DM800 ====&lt;br /&gt;
Toolchain-Datei:&lt;br /&gt;
 # toolchain-mipsel.cmake&lt;br /&gt;
 set (OSCAM_SYSTEM_NAME Tuxbox)&lt;br /&gt;
 set (CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)&lt;br /&gt;
 set (CMAKE_SYSTEM_PROCESSOR mips)&lt;br /&gt;
&lt;br /&gt;
Auschecken und kompilieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # dient nur fuer den Dateinamen&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# mipsel ***************************************************&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=0 -DMODULE_RADEGAST=0 -DMODULE_SERIAL=0 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=0 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=0 -DREADER_CRYPTOWORKS=0 -DREADER_SECA=0 -DREADER_VIACCESS=0 -DREADER_VIDEOGUARD=1 -DREADER_DRE=0 -DREADER_TONGFANG=0 \&lt;br /&gt;
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DCS_CONFDIR=/usr/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
make -j4&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build per Menü konfigurieren ===&lt;br /&gt;
Wenn man immer &#039;&#039;&#039;nur für eine Plattform baut&#039;&#039;&#039;, kann man die Konfiguration auch über ein Menü einstellen.&lt;br /&gt;
Somit lassen sich die o.a. Parameter bei den &amp;quot;cmake&amp;quot;-Beispielen ersparen.&lt;br /&gt;
&lt;br /&gt;
Um das Menü-Skript auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $oscamRoot/$svnDir/trunk/&lt;br /&gt;
./config.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Erklärungen zur menügeführten Konfiguration ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border:1px solid DarkGrey;border-collapse:collapse;empty-cells:show&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#f9f9f9;&amp;quot;&lt;br /&gt;
! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| Webif support&lt;br /&gt;
| OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSL support&lt;br /&gt;
| Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff.&lt;br /&gt;
Andernfalls steht nur reines http zur Verfügung.&lt;br /&gt;
Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.&lt;br /&gt;
|-&lt;br /&gt;
| Dvbapi support&lt;br /&gt;
| Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern.&lt;br /&gt;
Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.&lt;br /&gt;
|-&lt;br /&gt;
| Gbox support&lt;br /&gt;
| Ein CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Anticasc support&lt;br /&gt;
| Anticascading-Support über die Configdatei oscam.ac.&lt;br /&gt;
Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).&lt;br /&gt;
Siehe [[OSCam/de/Config/oscam.ac]]&lt;br /&gt;
|-&lt;br /&gt;
| ECM doublecheck&lt;br /&gt;
| Erlaubt die Benutzung des double_check-Parameters.&lt;br /&gt;
Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto guessing&lt;br /&gt;
| Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.&lt;br /&gt;
|-&lt;br /&gt;
| Debug&lt;br /&gt;
| Erweiterte Fehlerausgaben sind im Betrieb möglich.&lt;br /&gt;
|-&lt;br /&gt;
| LED support&lt;br /&gt;
| LED der Dockstar wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| Qboxhd-LED support&lt;br /&gt;
| LED der QBoxHD wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| CS_Log history&lt;br /&gt;
| Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.&lt;br /&gt;
|-&lt;br /&gt;
| Monitor&lt;br /&gt;
| Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface).&lt;br /&gt;
Der Monitor Port wird in der oscam.config eingestellt.&lt;br /&gt;
|-&lt;br /&gt;
| Camd33&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 UDP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 TCP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Newcamd&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Cccam&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Radegast&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Serial&lt;br /&gt;
| wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird&lt;br /&gt;
|-&lt;br /&gt;
| ConstCW&lt;br /&gt;
| ein &amp;quot;Cryptsystem&amp;quot; bei dem immer das gleiche ControlWord verwendet wird.&lt;br /&gt;
|-&lt;br /&gt;
| Cardreader&lt;br /&gt;
| OSCam wird als Cardreader kompiliert&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Die folgenden Verschlüsselungssysteme mit zugehörigen Karten kann man hier einsehen: [http://streamboard.gmc.to/oscam/wiki/CardsList Card List]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden.&lt;br /&gt;
|-&lt;br /&gt;
| Nagra&lt;br /&gt;
| OSCam kann Nagra Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto&lt;br /&gt;
| OSCam kann Irdeto Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Conax&lt;br /&gt;
| OSCam kann Conax Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Cryptoworks&lt;br /&gt;
| OSCam kann Cryptoworks Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Seca&lt;br /&gt;
| OSCam kann Seca Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Viaccess&lt;br /&gt;
| OSCam kann Viacess Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Videoguard&lt;br /&gt;
| OSCam kann Videoguard Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Dre&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|-&lt;br /&gt;
| Tongfang&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OSCamTranslatedLinks}}&lt;/div&gt;</summary>
		<author><name>Masterjcl</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9368</id>
		<title>OSCam/de/Self-made</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9368"/>
		<updated>2012-06-18T07:00:21Z</updated>

		<summary type="html">&lt;p&gt;Masterjcl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:OSCam]]&lt;br /&gt;
{{OSCamHomeLinks}}&lt;br /&gt;
&lt;br /&gt;
== OSCam selbstgemacht ==&lt;br /&gt;
=== Intro ===&lt;br /&gt;
Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam &#039;&#039;&#039;im Groben&#039;&#039;&#039; beschrieben.&lt;br /&gt;
Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit &#039;&#039;&#039;[http://www.debian.org/ Debian]&#039;&#039;&#039; 6 getestet.&lt;br /&gt;
&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein Linux-PC wird vorausgesetzt. Selbstverständlich &#039;&#039;&#039;muss es kein physikalischer PC sein&#039;&#039;&#039;, eine &#039;&#039;&#039;virtuelle Maschine&#039;&#039;&#039; (VM) macht es genauso gut [[Datei:Smiley_wink.png]].&lt;br /&gt;
Der kostenlose [http://www.vmware.com/products/player/ VMware Player] ist z.B. sehr empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Lade Dir ein [http://de.wikipedia.org/wiki/Linux-Distribution Linux] Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM.&lt;br /&gt;
Wie oben bereits erwähnt, basieren die &#039;&#039;Linux-Inhalte&#039;&#039; in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:WarningS.png|text-bottom]] &#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es wird von Usern berichtet, dass es im easybuild-script bei der Toolchain für mipsel-dreambox Systemfehler und Abbrüche beim Compilieren gibt, wenn auf dem PC ein 64bit Linux läuft. Diese Schwierigkeiten gibt es auf einem 32bit Linux nicht (man kann ja auch ein 32bit Linux auf einer 64bit Hardware laufen lassen).&lt;br /&gt;
[Dank an msrx111 für den Hinweis!]&lt;br /&gt;
&lt;br /&gt;
=== Benötigte Pakete ===&lt;br /&gt;
Folgende Pakete werden zum Erstellen von OSCam benötigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# um Probleme zu vermeiden bitte die Pakete  und Quellen erst updaten&lt;br /&gt;
apt-get update --fix-missing&lt;br /&gt;
apt-get install cvs subversion&lt;br /&gt;
apt-get install autoconf libccid automake libtool gettext make cmake&lt;br /&gt;
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3&lt;br /&gt;
# zlib (development headers) - zlib1g-dev&lt;br /&gt;
apt-get install tar bzip2 gzip zlib1g-dev&lt;br /&gt;
# zlib 32Bit auf 64Bit Systemenwichtig bei Toolchain Benutzung&lt;br /&gt;
apt-get install lib32z1&lt;br /&gt;
&lt;br /&gt;
# for sa and aes:&lt;br /&gt;
apt-get install libssl-dev libssl0.9.8&lt;br /&gt;
&lt;br /&gt;
# for pcsc:&lt;br /&gt;
apt-get install libpcsclite1 libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
# for smartreader branch:&lt;br /&gt;
apt-get install libusb-1.0-0 libusb-1.0-0-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verzeichnisstruktur ===&lt;br /&gt;
 root@srv01:/var/shares/linux# tree oscam -L 2 -d&lt;br /&gt;
 oscam&lt;br /&gt;
 +-- bin                # hier landen die fertigen OSCam`s&lt;br /&gt;
 ¦   +-- archive        # hierein archivieren wir &amp;quot;alte&amp;quot; OSCam-Binaries&lt;br /&gt;
 +-- make               # in diesem Verzeichnis &amp;quot;machen&amp;quot; wir OSCam&lt;br /&gt;
 +-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt&lt;br /&gt;
 ¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 +-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling]&lt;br /&gt;
     +-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen&lt;br /&gt;
     +-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2&lt;br /&gt;
     +-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode &amp;quot;&#039;&#039;auschecken&#039;&#039;&amp;quot; (SVN) ===&lt;br /&gt;
==== Erstes Auschecken ====&lt;br /&gt;
Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039; # anpassen!&lt;br /&gt;
svnDir=&#039;svn-sb&#039; # anpassen!&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn co http://streamboard.gmc.to/svn/oscam $svnDir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales [http://de.wikipedia.org/wiki/Repository Repository] nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
Es ist absolut nichts magisches und in ein paar Sekunden erledigt [[Datei:Smiley_wink.png]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# ODER wenn wir von einem bestimmten Zweig bauen moechten...&lt;br /&gt;
#ver=&#039;1.10&#039;&lt;br /&gt;
#svnBranch=&#039;tags&#039;&lt;br /&gt;
#svnBuildDir=&#039;1.10&#039;&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# i686 *****************************************************&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=0 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=1 -DMODULE_RADEGAST=1 -DMODULE_SERIAL=1 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=1 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=1 -DREADER_CRYPTOWORKS=1 -DREADER_SECA=1 -DREADER_VIACCESS=1 -DREADER_VIDEOGUARD=1 -DREADER_DRE=1 -DREADER_TONGFANG=1 \&lt;br /&gt;
      -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
# wenn mehrere CPU-Kerne zur Verfügung stehen...&lt;br /&gt;
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren&lt;br /&gt;
# ...ansonsten nur &amp;quot;make&amp;quot; ausführen&lt;br /&gt;
# erstellte Binaries verschieben... ************************&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
if [ -x &amp;quot;utils/list_smargo&amp;quot; ]; then mv -f utils/list_smargo ../bin/; fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Für andere Plattformen kompilieren ===&lt;br /&gt;
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.&lt;br /&gt;
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.&lt;br /&gt;
Einige Toolchains und weitere Informationen zum &amp;quot;&#039;&#039;&#039;&#039;&#039;Cross-Compiling&#039;&#039;&#039;&#039;&#039;&amp;quot; findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling &#039;&#039;&#039;&amp;amp;raquo;hier&amp;amp;laquo;&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
==== Beispiel DM800 ====&lt;br /&gt;
Toolchain-Datei:&lt;br /&gt;
 # toolchain-mipsel.cmake&lt;br /&gt;
 set (OSCAM_SYSTEM_NAME Tuxbox)&lt;br /&gt;
 set (CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)&lt;br /&gt;
 set (CMAKE_SYSTEM_PROCESSOR mips)&lt;br /&gt;
&lt;br /&gt;
Auschecken und kompilieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # dient nur fuer den Dateinamen&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# mipsel ***************************************************&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=0 -DMODULE_RADEGAST=0 -DMODULE_SERIAL=0 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=0 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=0 -DREADER_CRYPTOWORKS=0 -DREADER_SECA=0 -DREADER_VIACCESS=0 -DREADER_VIDEOGUARD=1 -DREADER_DRE=0 -DREADER_TONGFANG=0 \&lt;br /&gt;
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DCS_CONFDIR=/usr/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
make -j4&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build per Menü konfigurieren ===&lt;br /&gt;
Wenn man immer &#039;&#039;&#039;nur für eine Plattform baut&#039;&#039;&#039;, kann man die Konfiguration auch über ein Menü einstellen.&lt;br /&gt;
Somit lassen sich die o.a. Parameter bei den &amp;quot;cmake&amp;quot;-Beispielen ersparen.&lt;br /&gt;
&lt;br /&gt;
Um das Menü-Skript auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $oscamRoot/$svnDir/trunk/&lt;br /&gt;
./config.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Erklärungen zur menügeführten Konfiguration ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border:1px solid DarkGrey;border-collapse:collapse;empty-cells:show&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#f9f9f9;&amp;quot;&lt;br /&gt;
! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| Webif support&lt;br /&gt;
| OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSL support&lt;br /&gt;
| Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff.&lt;br /&gt;
Andernfalls steht nur reines http zur Verfügung.&lt;br /&gt;
Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.&lt;br /&gt;
|-&lt;br /&gt;
| Dvbapi support&lt;br /&gt;
| Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern.&lt;br /&gt;
Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.&lt;br /&gt;
|-&lt;br /&gt;
| Gbox support&lt;br /&gt;
| Ein CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Anticasc support&lt;br /&gt;
| Anticascading-Support über die Configdatei oscam.ac.&lt;br /&gt;
Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).&lt;br /&gt;
Siehe [[OSCam/de/Config/oscam.ac]]&lt;br /&gt;
|-&lt;br /&gt;
| ECM doublecheck&lt;br /&gt;
| Erlaubt die Benutzung des double_check-Parameters.&lt;br /&gt;
Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto guessing&lt;br /&gt;
| Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.&lt;br /&gt;
|-&lt;br /&gt;
| Debug&lt;br /&gt;
| Erweiterte Fehlerausgaben sind im Betrieb möglich.&lt;br /&gt;
|-&lt;br /&gt;
| LED support&lt;br /&gt;
| LED der Dockstar wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| Qboxhd-LED support&lt;br /&gt;
| LED der QBoxHD wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| CS_Log history&lt;br /&gt;
| Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.&lt;br /&gt;
|-&lt;br /&gt;
| Monitor&lt;br /&gt;
| Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface).&lt;br /&gt;
Der Monitor Port wird in der oscam.config eingestellt.&lt;br /&gt;
|-&lt;br /&gt;
| Camd33&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 UDP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 TCP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Newcamd&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Cccam&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Radegast&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Serial&lt;br /&gt;
| wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird&lt;br /&gt;
|-&lt;br /&gt;
| ConstCW&lt;br /&gt;
| ein &amp;quot;Cryptsystem&amp;quot; bei dem immer das gleiche ControlWord verwendet wird.&lt;br /&gt;
|-&lt;br /&gt;
| Cardreader&lt;br /&gt;
| OSCam wird als Cardreader kompiliert&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Die folgenden Verschlüsselungssysteme mit zugehörigen Karten kann man hier einsehen: [http://streamboard.gmc.to/oscam/wiki/CardsList Card List]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden.&lt;br /&gt;
|-&lt;br /&gt;
| Nagra&lt;br /&gt;
| OSCam kann Nagra Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto&lt;br /&gt;
| OSCam kann Irdeto Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Conax&lt;br /&gt;
| OSCam kann Conax Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Cryptoworks&lt;br /&gt;
| OSCam kann Cryptoworks Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Seca&lt;br /&gt;
| OSCam kann Seca Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Viaccess&lt;br /&gt;
| OSCam kann Viacess Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Videoguard&lt;br /&gt;
| OSCam kann Videoguard Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Dre&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|-&lt;br /&gt;
| Tongfang&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OSCamTranslatedLinks}}&lt;/div&gt;</summary>
		<author><name>Masterjcl</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9367</id>
		<title>OSCam/de/Self-made</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=OSCam/de/Self-made&amp;diff=9367"/>
		<updated>2012-06-18T06:59:45Z</updated>

		<summary type="html">&lt;p&gt;Masterjcl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:OSCam]]&lt;br /&gt;
{{OSCamHomeLinks}}&lt;br /&gt;
&lt;br /&gt;
== OSCam selbstgemacht ==&lt;br /&gt;
=== Intro ===&lt;br /&gt;
Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam &#039;&#039;&#039;im Groben&#039;&#039;&#039; beschrieben.&lt;br /&gt;
Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit &#039;&#039;&#039;[http://www.debian.org/ Debian]&#039;&#039;&#039; 6 getestet.&lt;br /&gt;
&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein Linux-PC wird vorausgesetzt. Selbstverständlich &#039;&#039;&#039;muss es kein physikalischer PC sein&#039;&#039;&#039;, eine &#039;&#039;&#039;virtuelle Maschine&#039;&#039;&#039; (VM) macht es genauso gut [[Datei:Smiley_wink.png]].&lt;br /&gt;
Der kostenlose [http://www.vmware.com/products/player/ VMware Player] ist z.B. sehr empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
Lade Dir ein [http://de.wikipedia.org/wiki/Linux-Distribution Linux] Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM.&lt;br /&gt;
Wie oben bereits erwähnt, basieren die &#039;&#039;Linux-Inhalte&#039;&#039; in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:WarningS.png|text-bottom]] &#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es wird von Usern berichtet, dass es im easybuild-script bei der Toolchain für mipsel-dreambox Systemfehler und Abbrüche beim Compilieren gibt, wenn auf dem PC ein 64bit Linux läuft. Diese Schwierigkeiten gibt es auf einem 32bit Linux nicht (man kann ja auch ein 32bit Linux auf einer 64bit Hardware laufen lassen).&lt;br /&gt;
[Dank an msrx111 für den Hinweis!]&lt;br /&gt;
&lt;br /&gt;
=== Benötigte Pakete ===&lt;br /&gt;
# um Probleme zu vermeiden bitte die Pakete  und Quellen erst updaten&lt;br /&gt;
apt-get update --fix-missing&lt;br /&gt;
Folgende Pakete werden zum Erstellen von OSCam benötigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get install cvs subversion&lt;br /&gt;
apt-get install autoconf libccid automake libtool gettext make cmake&lt;br /&gt;
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3&lt;br /&gt;
# zlib (development headers) - zlib1g-dev&lt;br /&gt;
apt-get install tar bzip2 gzip zlib1g-dev&lt;br /&gt;
# zlib 32Bit auf 64Bit Systemenwichtig bei Toolchain Benutzung&lt;br /&gt;
apt-get install lib32z1&lt;br /&gt;
&lt;br /&gt;
# for sa and aes:&lt;br /&gt;
apt-get install libssl-dev libssl0.9.8&lt;br /&gt;
&lt;br /&gt;
# for pcsc:&lt;br /&gt;
apt-get install libpcsclite1 libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
# for smartreader branch:&lt;br /&gt;
apt-get install libusb-1.0-0 libusb-1.0-0-dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verzeichnisstruktur ===&lt;br /&gt;
 root@srv01:/var/shares/linux# tree oscam -L 2 -d&lt;br /&gt;
 oscam&lt;br /&gt;
 +-- bin                # hier landen die fertigen OSCam`s&lt;br /&gt;
 ¦   +-- archive        # hierein archivieren wir &amp;quot;alte&amp;quot; OSCam-Binaries&lt;br /&gt;
 +-- make               # in diesem Verzeichnis &amp;quot;machen&amp;quot; wir OSCam&lt;br /&gt;
 +-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt&lt;br /&gt;
 ¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 ¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt&lt;br /&gt;
 +-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling]&lt;br /&gt;
     +-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen&lt;br /&gt;
     +-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2&lt;br /&gt;
     +-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode &amp;quot;&#039;&#039;auschecken&#039;&#039;&amp;quot; (SVN) ===&lt;br /&gt;
==== Erstes Auschecken ====&lt;br /&gt;
Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039; # anpassen!&lt;br /&gt;
svnDir=&#039;svn-sb&#039; # anpassen!&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn co http://streamboard.gmc.to/svn/oscam $svnDir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales [http://de.wikipedia.org/wiki/Repository Repository] nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kompilieren ===&lt;br /&gt;
Es ist absolut nichts magisches und in ein paar Sekunden erledigt [[Datei:Smiley_wink.png]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# ODER wenn wir von einem bestimmten Zweig bauen moechten...&lt;br /&gt;
#ver=&#039;1.10&#039;&lt;br /&gt;
#svnBranch=&#039;tags&#039;&lt;br /&gt;
#svnBuildDir=&#039;1.10&#039;&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# i686 *****************************************************&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=0 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=1 -DMODULE_RADEGAST=1 -DMODULE_SERIAL=1 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=1 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=1 -DREADER_CRYPTOWORKS=1 -DREADER_SECA=1 -DREADER_VIACCESS=1 -DREADER_VIDEOGUARD=1 -DREADER_DRE=1 -DREADER_TONGFANG=1 \&lt;br /&gt;
      -DCMAKE_BUILD_TYPE=Debug \&lt;br /&gt;
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
# wenn mehrere CPU-Kerne zur Verfügung stehen...&lt;br /&gt;
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren&lt;br /&gt;
# ...ansonsten nur &amp;quot;make&amp;quot; ausführen&lt;br /&gt;
# erstellte Binaries verschieben... ************************&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
if [ -x &amp;quot;utils/list_smargo&amp;quot; ]; then mv -f utils/list_smargo ../bin/; fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Für andere Plattformen kompilieren ===&lt;br /&gt;
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.&lt;br /&gt;
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.&lt;br /&gt;
Einige Toolchains und weitere Informationen zum &amp;quot;&#039;&#039;&#039;&#039;&#039;Cross-Compiling&#039;&#039;&#039;&#039;&#039;&amp;quot; findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling &#039;&#039;&#039;&amp;amp;raquo;hier&amp;amp;laquo;&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
==== Beispiel DM800 ====&lt;br /&gt;
Toolchain-Datei:&lt;br /&gt;
 # toolchain-mipsel.cmake&lt;br /&gt;
 set (OSCAM_SYSTEM_NAME Tuxbox)&lt;br /&gt;
 set (CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)&lt;br /&gt;
 set (CMAKE_SYSTEM_PROCESSOR mips)&lt;br /&gt;
&lt;br /&gt;
Auschecken und kompilieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variablen anpassen! **************************************&lt;br /&gt;
oscamRoot=&#039;/var/shares/linux/oscam&#039;&lt;br /&gt;
ver=&#039;1.20&#039; # dient nur fuer den Dateinamen&lt;br /&gt;
svnDir=&#039;svn-sb&#039;&lt;br /&gt;
svnBranch=&#039;trunk&#039;&lt;br /&gt;
svnBuildDir=&lt;br /&gt;
# **********************************************************&lt;br /&gt;
cd $oscamRoot&lt;br /&gt;
# aktuelle Sourcen auschecken ******************************&lt;br /&gt;
svn up $svnDir/$svnBranch&lt;br /&gt;
# &amp;quot;alte&amp;quot; OSCam`s archivieren (optional) ********************&lt;br /&gt;
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/&lt;br /&gt;
#&lt;br /&gt;
cd $oscamRoot/make&lt;br /&gt;
# mipsel ***************************************************&lt;br /&gt;
rm -fr $oscamRoot/make/*&lt;br /&gt;
# BENOETIGTE MODULE ANPASSEN!&lt;br /&gt;
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DIRDETO_GUESSING=1 -DCS_ANTICASC=1 -DWITH_DEBUG=1 -DCS_WITH_DOUBLECHECK=1 -DCS_LED=0 -DQBOXHD_LED=0 -DCS_LOGHISTORY=1 -DWITH_SSL=0 \&lt;br /&gt;
      -DMODULE_CAMD33=0 -DMODULE_CAMD35=1 -DMODULE_CAMD35_TCP=0 -DMODULE_NEWCAMD=1 -DMODULE_CCCAM=1 -DMODULE_GBOX=0 -DMODULE_RADEGAST=0 -DMODULE_SERIAL=0 -DMODULE_MONITOR=1 -DMODULE_CONSTCW=0 \&lt;br /&gt;
      -DREADER_NAGRA=1 -DREADER_IRDETO=1 -DREADER_CONAX=0 -DREADER_CRYPTOWORKS=0 -DREADER_SECA=0 -DREADER_VIACCESS=0 -DREADER_VIDEOGUARD=1 -DREADER_DRE=0 -DREADER_TONGFANG=0 \&lt;br /&gt;
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DCS_CONFDIR=/usr/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir&lt;br /&gt;
make -j4&lt;br /&gt;
if [ -x &amp;quot;oscam&amp;quot; ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d &#039;:&#039; -f 2); fi;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Build per Menü konfigurieren ===&lt;br /&gt;
Wenn man immer &#039;&#039;&#039;nur für eine Plattform baut&#039;&#039;&#039;, kann man die Konfiguration auch über ein Menü einstellen.&lt;br /&gt;
Somit lassen sich die o.a. Parameter bei den &amp;quot;cmake&amp;quot;-Beispielen ersparen.&lt;br /&gt;
&lt;br /&gt;
Um das Menü-Skript auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $oscamRoot/$svnDir/trunk/&lt;br /&gt;
./config.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Erklärungen zur menügeführten Konfiguration ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border:1px solid DarkGrey;border-collapse:collapse;empty-cells:show&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#f9f9f9;&amp;quot;&lt;br /&gt;
! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| Webif support&lt;br /&gt;
| OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSL support&lt;br /&gt;
| Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff.&lt;br /&gt;
Andernfalls steht nur reines http zur Verfügung.&lt;br /&gt;
Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.&lt;br /&gt;
|-&lt;br /&gt;
| Dvbapi support&lt;br /&gt;
| Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern.&lt;br /&gt;
Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.&lt;br /&gt;
|-&lt;br /&gt;
| Gbox support&lt;br /&gt;
| Ein CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Anticasc support&lt;br /&gt;
| Anticascading-Support über die Configdatei oscam.ac.&lt;br /&gt;
Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).&lt;br /&gt;
Siehe [[OSCam/de/Config/oscam.ac]]&lt;br /&gt;
|-&lt;br /&gt;
| ECM doublecheck&lt;br /&gt;
| Erlaubt die Benutzung des double_check-Parameters.&lt;br /&gt;
Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto guessing&lt;br /&gt;
| Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.&lt;br /&gt;
|-&lt;br /&gt;
| Debug&lt;br /&gt;
| Erweiterte Fehlerausgaben sind im Betrieb möglich.&lt;br /&gt;
|-&lt;br /&gt;
| LED support&lt;br /&gt;
| LED der Dockstar wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| Qboxhd-LED support&lt;br /&gt;
| LED der QBoxHD wird angesteuert&lt;br /&gt;
|-&lt;br /&gt;
| CS_Log history&lt;br /&gt;
| Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.&lt;br /&gt;
|-&lt;br /&gt;
| Monitor&lt;br /&gt;
| Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface).&lt;br /&gt;
Der Monitor Port wird in der oscam.config eingestellt.&lt;br /&gt;
|-&lt;br /&gt;
| Camd33&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 UDP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Camd35 TCP&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Newcamd&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Cccam&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Radegast&lt;br /&gt;
| CS Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| Serial&lt;br /&gt;
| wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird&lt;br /&gt;
|-&lt;br /&gt;
| ConstCW&lt;br /&gt;
| ein &amp;quot;Cryptsystem&amp;quot; bei dem immer das gleiche ControlWord verwendet wird.&lt;br /&gt;
|-&lt;br /&gt;
| Cardreader&lt;br /&gt;
| OSCam wird als Cardreader kompiliert&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Die folgenden Verschlüsselungssysteme mit zugehörigen Karten kann man hier einsehen: [http://streamboard.gmc.to/oscam/wiki/CardsList Card List]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden.&lt;br /&gt;
|-&lt;br /&gt;
| Nagra&lt;br /&gt;
| OSCam kann Nagra Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Irdeto&lt;br /&gt;
| OSCam kann Irdeto Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Conax&lt;br /&gt;
| OSCam kann Conax Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Cryptoworks&lt;br /&gt;
| OSCam kann Cryptoworks Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Seca&lt;br /&gt;
| OSCam kann Seca Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Viaccess&lt;br /&gt;
| OSCam kann Viacess Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Videoguard&lt;br /&gt;
| OSCam kann Videoguard Karten auslesen.&lt;br /&gt;
|-&lt;br /&gt;
| Dre&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|-&lt;br /&gt;
| Tongfang&lt;br /&gt;
| Auch ein Crypt-System für Karten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OSCamTranslatedLinks}}&lt;/div&gt;</summary>
		<author><name>Masterjcl</name></author>
	</entry>
</feed>