Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

OScam Self-made (kompilieren)

Status
Für weitere Antworten geschlossen.

RoterBaron

Stamm User
Registriert
18. Mai 2011
Beiträge
1.101
Reaktionspunkte
452
Punkte
83
[SUP][SUB]Originalpost @ Streamboard-wiki[/SUB][/SUP]



Intro


Nachfolgend wird der Weg vom Auschecken bis hin zur kompilierten OSCam im Groben beschrieben. Alle aufgeführten Linux-Beispiele und Code-Fragmente wurden auf einem Linux-PC mit 6 getestet.


Umgebung

Ein Linux-PC wird vorausgesetzt. Selbstverständlich muss es kein physikalischer PC sein, eine virtuelle Maschine (VM) macht es genauso gut . Der kostenlose ist z.B. sehr empfehlenswert.
Lade Dir ein Deiner Wahl herunter, entweder als ISO zum Installieren oder als fertige VM. Wie oben bereits erwähnt, basieren die Linux-Inhalte in diesem Artikel auf eine Debian-Distribution. Bei Ubuntu sollte es allerdings fast genauso funktionieren.


Benötigte Pakete

Folgende Pakete werden zum Erstellen von OSCam benötigt:
PHP:
apt-get install cvs subversion
apt-get install autoconf libccid automake libtool gettext make cmake
apt-get install patch ncurses-bin gcc g++ flex bison pkg-config libpng3
 
# zlib (development headers) - zlib1g-dev
apt-get install tar bzip2 gzip zlib1g-dev

# for ssl and aes:
apt-get install libssl-dev libssl0.9.8

# for pcsc:
apt-get install libpcsclite1 libpcsclite-dev

# for smartreader branch:
apt-get install libusb-1.0-0 libusb-1.0-0-dev


Verzeichnisstruktur


Code:
root@srv01:/var/shares/linux# tree oscam -L 2 -d
oscam 
+-- bin               # hier landen die fertigen OSCam`s
¦   +-- archive        # hierein archivieren wir "alte" OSCam-Binaries
+-- make               # in diesem Verzeichnis "machen" wir OSCam
+-- svn-sb             # hier wird der OSCam-Sourcecode abgelegt
¦   +-- branches       # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt 
¦   +-- tags           # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt 
¦   +-- trunk          # NICHT manuell erstellen! Wird beim ersten Auschecken erstellt 
+-- toolchains         # optional, dient zum Erstellen der OSCam für andere Plattformen - Cross-Compiling     
+-- mipsel         # optional - mipsel-Toolchain, z.B. für Dream-Boxen     
+-- ppc            # optional - ppc-Toolchain, z.B. für die DBox2     
+-- tdt            # optional - sh4-Toolchain, z.B. für Kathrein-Boxen


Sourcecode "auschecken" (SVN)

Erstes Auschecken

Wir holen zum ersten Mal die OSCam-Sourcen. Dies machen wir nur einmal:

PHP:
oscamRoot='/var/shares/linux/oscam' # anpassen!
svnDir='svn-sb' # anpassen!
cd $oscamRoot
svn co http://streamboard.gmc.to/svn/oscam $svnDir


Update

Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat:

PHP:
oscamRoot='/var/shares/linux/oscam'
svnDir='svn-sb'
svnBranch='trunk'
cd $oscamRoot
svn up $svnDir/$svnBranch


Kompilieren

Es ist absolut nichts magisches und in ein paar Sekunden erledigt :

PHP:
# Variablen anpassen! **************************************
oscamRoot='/var/shares/linux/oscam'
ver='1.20' # ggf. anpassen; WIRD NUR IM DATEINAMEN VERWENDET, BEEINFLUSST NICHT DIE AUSZUCHECKENDE OSCAM-VERSION!
svnDir='svn-sb'
svnBranch='trunk'
svnBuildDir=
# ODER wenn wir von einem bestimmten Zweig bauen moechten...
#ver='1.10'
#svnBranch='tags'
#svnBuildDir='1.10'
# **********************************************************
cd $oscamRoot
# aktuelle Sourcen auschecken ******************************
svn up $svnDir/$svnBranch
# "alte" OSCam`s archivieren (optional) ********************
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/
#
cd $oscamRoot/make
# i686 *****************************************************
# BENOETIGTE MODULE ANPASSEN!
rm -fr $oscamRoot/make/
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 \
      -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 \
      -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 \
      -DCMAKE_BUILD_TYPE=Debug \
      -DLIBUSBDIR=/usr -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir
# wenn mehrere CPU-Kerne zur Verfügung stehen...
make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren
# ...ansonsten nur "make" ausführen
# erstellte Binaries verschieben... ************************
if [ -x "oscam" ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion  -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d ':' -f 2); fi;
if [ -x "utils/list_smargo" ]; then mv -f utils/list_smargo ../bin/; fi;




Für andere Plattformen kompilieren

ist das magische Wort. Um OSCam für andere Plattformen zu kompilieren sind so genannte notwendig.

Beispiel DM800

Toolchain-Datei:
PHP:
# toolchain-mipsel.cmake
set (OSCAM_SYSTEM_NAME Tuxbox)
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_C_COMPILER /var/shares/linux/oscam/toolchains/mipsel/bin/mipsel-unknown-linux-gnu-gcc)
set (CMAKE_SYSTEM_PROCESSOR mips)


Auschecken und kompilieren:
PHP:
# Variablen anpassen! **************************************
oscamRoot='/var/shares/linux/oscam'
ver='1.20' # dient nur fuer den Dateinamen
svnDir='svn-sb'
svnBranch='trunk'
svnBuildDir=
# **********************************************************
cd $oscamRoot
# aktuelle Sourcen auschecken ******************************
svn up $svnDir/$svnBranch
# "alte" OSCam`s archivieren (optional) ********************
mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/
#
cd $oscamRoot/make
# mipsel ***************************************************
rm -fr $oscamRoot/make/
# BENOETIGTE MODULE ANPASSEN!
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 \
      -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 \
      -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 \
      -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr  -DCS_CONFDIR=/usr/keys  -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake  ../$svnDir/$svnBranch/$svnBuildDir
make -j4
if [ -x "oscam" ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion  -nc ../$svnDir/$svnBranch/$svnBuildDir | cut -d ':' -f 2); fi;


Build per Menü konfigurieren

Wenn man immer nur für eine Plattform baut, kann man die Konfiguration auch über ein Menü einstellen. Somit lassen sich die o.a. Parameter bei den "cmake"-Beispielen ersparen.
Um das Menü-Skript auszuführen:

PHP:
cd $oscamRoot/$svnDir/trunk/
./config.sh


Erklärungen zur menügeführten Konfiguration

[TABLE="class: grid, width: 100%, align: left"]
[TR]
[TD]Webif support[/TD]
[TD]OSCam wird mit Webinterface kompiliert (Überwachung und Einstellung über Browser somit möglich)[/TD]
[/TR]
[TR]
[TD]OpenSSL support[/TD]
[TD]Erlaubt die Nutzung von https für das Webinterface und damit einen verschlüsselten Zugriff. Andernfalls steht nur reines http zur Verfügung. Des Weiteren werden interne Cryptoroutinen nicht mehr verwendet sondern stattdessen auf OpenSSL zurückgegriffen.[/TD]
[/TR]
[TR]
[TD]Dvbapi support[/TD]
[TD]Erlaubt die direkte Dekodierung des laufenden Fernsehprogramms auf bestimmten unterstützen Receivern. Andernfalls muss ein separater EMU (mgcamd, cccam, camd3, etc.) dafür verwendet werden der sich dann zu OSCam verbindet.[/TD]
[/TR]
[TR]
[TD]Gbox support[/TD]
[TD]Ein CS Protokoll[/TD]
[/TR]
[TR]
[TD]Anticasc support[/TD]
[TD]Anticascading-Support über die Configdatei oscam.ac. Man kann damit verhindern, dass ein Client weitershared (wird erkannt über die Anzahl der Requests innerhalb einer Zeitspanne).[/TD]
[/TR]
[TR]
[TD]ECM doublecheck[/TD]
[TD]Erlaubt die Benutzung des double_check-Parameters. Damit werden ECMs+DCWs immer von zwei (oder mehr) Receivern abgefragt um sicherzugehen, dass das Ergebnis identisch ist.[/TD]
[/TR]
[TR]
[TD]Irdeto guessing[/TD]
[TD]Erlaubt die Nutzung der irdeto.ird um eine Irdeto guessing table zu hinterlegen.[/TD]
[/TR]
[TR]
[TD]Debug[/TD]
[TD]Erweiterte Fehlerausgaben sind im Betrieb möglich.[/TD]
[/TR]
[TR]
[TD]LED support[/TD]
[TD]LED der Dockstar wird angesteuert[/TD]
[/TR]
[TR]
[TD]Qboxhd-LED support[/TD]
[TD]LED der QBoxHD wird angesteuert[/TD]
[/TR]
[TR]
[TD]CS_Log history[/TD]
[TD]Das Log wird gespeichert. Wird benötigt, um Ausgaben der Zugriffe im Webinterface zu erhalten.[/TD]
[/TR]
[TR]
[TD]Monitor[/TD]
[TD]Man kann mit einem separaten Monitorprogramm (z.B. Micromon) die Ausgaben der Oscam anzeigen lassen (Alternative/Ergänzung zum Webinterface). Der Monitor Port wird in der oscam.config eingestellt.[/TD]
[/TR]
[TR]
[TD]Camd33[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Camd35 UDP[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Camd35 TCP[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Newcamd[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Cccam[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Radegast[/TD]
[TD]CS Protokoll[/TD]
[/TR]
[TR]
[TD]Serial[/TD]
[TD]wird benutzt wenn ein Receiver über ein serielles Kabel mit oscam verbunden wird[/TD]
[/TR]
[TR]
[TD]ConstCW[/TD]
[TD]ein "Cryptsystem" bei dem immer das gleiche ControlWord verwendet wird.[/TD]
[/TR]
[TR]
[TD]Cardreader[/TD]
[TD]OSCam wird als Cardreader kompiliert[/TD]
[/TR]
[TR]
[TD]WICHTIG![/TD]
[TD]Wenn man OSCam als Client kompiliert, der auch EMMs senden soll, dann muss zwingend das jeweilige Kartensystem mitkompiliert werden![/TD]
[/TR]
[TR]
[TD]Nagra[/TD]
[TD]OSCam kann Nagra Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Irdeto[/TD]
[TD]OSCam kann Irdeto Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Conax[/TD]
[TD]OSCam kann Conax Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Crytoworks[/TD]
[TD]OSCam kann Crytoworks Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Seca[/TD]
[TD]OSCam kann Seca Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Viaccess[/TD]
[TD]OSCam kann Viaccess Karten auslesen.[/TD]
[/TR]
[TR]
[TD]Dre[/TD]
[TD]Auch ein Crypt-System für Karten.[/TD]
[/TR]
[TR]
[TD]Tongfang[/TD]
[TD]Auch ein Crypt-System für Karten.[/TD]
[/TR]
[/TABLE]
 
OScam selbst kompilieren und Patchen

Da das obige HowTo schon etwas Staub angesetzt hat, hab ich mal was aktuelles verfasst.
Dieser Post bezieht sich auf ein aktuelles Debain 10/11/12 System, für welches OScam kompiliert werden soll.

Code:
sudo apt-get update && sudo apt-get install build-essential subversion libssl-dev libpcsclite-dev libusb-1.0-0-dev dialog pcscd

danach
Code:
git clone https://git.streamboard.tv/common/oscam.git/ oscam-git
cd oscam-git

um Oscam anzupassen:
Code:
make config

um Oscam zu bauen:
Code:
make

Falls man dann noch mit dem Modul Streamrelay bauen will, sollte man noch folgendes How2 von @ghost0815 umsetzen:

Und fertig. Schon hat man eine neue Oscam - Binary

Hier noch ein paar zusätzliche Befehle, die man vielleicht brauchen könnte, aber nicht zwingend umzusetzen sind.
um den Sourcecode auf die letzte Revision up zu daten:
Code:
git pull

Wenn man OScam mit Libusb bauen will
Code:
make USE_LIBUSB=1
mit Unterstützung für PC/SC Reader:
Code:
make USE_PCSC=1

mit SSL Verschlüsselung:
Code:
make USE_SSL=1

Die USE Befehle lassen sich natürlich auch kombinieren
 
Zuletzt bearbeitet:
AW: OScam Self-made (kompilieren)

Hier noch wie man Patches einspielt, sollte aber beim jeweiligen Patch dokumentiert sein.
Ich zeige es anhand von OScam-Emu:

Man muss sich im Verzeichnis befinden, in welches man via svn den Sourcecode von OScam geladen hat

Download:
Code:
wget https://github.com/oscam-emu/oscam-emu/raw/master/oscam-emu.patch

Patchen:
Code:
patch -p0 < oscam-emu.patch

Danach wie gewohnt weiter kompilieren
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben