OSCam/it/Self-made: Unterschied zwischen den Versionen

Aus Streamboard Wiki
Zur Navigation springen Zur Suche springen
K
 
Zeile 57: Zeile 57:
 
svnDir='svn-sb' # anpassen!
 
svnDir='svn-sb' # anpassen!
 
cd $oscamRoot
 
cd $oscamRoot
svn co http://streamboard.gmc.to/svn/oscam $svnDir
+
svn co http://streamboard.de.vu/svn/oscam $svnDir
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Zeile 101: Zeile 101:
 
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.
 
[http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiling] ist das magische Wort.
 
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.
 
Um OSCam für andere Plattformen zu kompilieren sind so genannte [http://de.wikipedia.org/wiki/Toolchain Toolchains] notwendig.
Einige Toolchains und weitere Informationen zum "'''''Cross-Compiling'''''" findest Du [http://streamboard.gmc.to:8001/wiki/crosscompiling '''&raquo;hier&laquo;'''].
+
Einige Toolchains und weitere Informationen zum "'''''Cross-Compiling'''''" findest Du [[Streamboard:oscam/wiki/crosscompiling|'''&raquo;hier&laquo;''']].
  
 
==== Beispiel DM800 ====
 
==== Beispiel DM800 ====

Aktuelle Version vom 23. Juli 2012, 01:32 Uhr

LanguageDE S.png OSCam Übersicht LanguageEN S.png OSCam Home LanguageFR S.png OSCam Accueil LanguageIT S.png OSCam Home

WarningS.png Attenzione: Il contenuto della traduzione in italiano e parzialmente in tedesco. Registrati e aiutaci a complementare e tradurre!

OSCam selbstgemacht

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 Debian 6 getestet.

Umgebung

Ein Linux-PC wird vorausgesetzt. Selbstverständlich muss es kein physikalischer PC sein, eine virtuelle Maschine (VM) macht es genauso gut Smiley wink.png. Der kostenlose VMware Player ist z.B. sehr empfehlenswert.

Lade Dir ein Linux 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: <syntaxhighlight lang="bash"> 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

  1. zlib (development headers) - zlib1g-dev

apt-get install tar bzip2 gzip zlib1g-dev

  1. for sa and aes:

apt-get install libssl-dev libssl0.9.8

  1. for pcsc:

apt-get install libpcsclite1 libpcsclite-dev

  1. for smartreader branch:

apt-get install libusb-1.0-0 libusb-1.0-0-dev </syntaxhighlight>

Verzeichnisstruktur

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: <syntaxhighlight lang="bash"> oscamRoot='/var/shares/linux/oscam' # anpassen! svnDir='svn-sb' # anpassen! cd $oscamRoot svn co http://streamboard.de.vu/svn/oscam $svnDir </syntaxhighlight>

Update

Nachdem wir die OSCam-Sourcen einmal komplett geholt haben, müssen wir unser lokales Repository nur noch aktualisieren, wenn sich am Quellcode etwas geändert hat: <syntaxhighlight lang="bash"> oscamRoot='/var/shares/linux/oscam' svnDir='svn-sb' svnBranch='trunk' cd $oscamRoot svn up $svnDir/$svnBranch </syntaxhighlight>

Kompilieren

Es ist absolut nichts magisches und in ein paar Sekunden erledigt Smiley wink.png: <syntaxhighlight lang="bash">

  1. Variablen anpassen! **************************************

oscamRoot='/var/shares/linux/oscam' ver='1.00' svnDir='svn-sb' svnBranch='trunk' svnBuildDir=''

  1. **********************************************************

cd $oscamRoot

  1. aktuelle Sourcen auschecken ******************************

svn up $svnDir/$svnBranch

  1. "alte" OSCam`s archivieren (optional) ********************

mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/

cd $oscamRoot/make

  1. i686 mit Webinterface ************************************

rm -fr $oscamRoot/make/* cmake -DLIBUSBDIR=/usr -DWEBIF=1 -DCS_CONFDIR=/var/keys ../$svnDir/$svnBranch/$svnBuildDir

  1. wenn mehrere CPU-Kerne zur Verfügung stehen...

make -j4 # wir nutzen 4 CPU-Kerne zum Kompilieren

  1. ...ansonsten nur "make" ausführen
  2. erstellte Binaries verschieben...

if [ -x "oscam" ]; then mv -f oscam ../bin/oscam-i686-$ver-$(svnversion -n ../$svnDir/$svnBranch/$svnBuildDir)-wi; fi; if [ -x "utils/list_smargo" ]; then mv -f utils/list_smargo ../bin/; fi; </syntaxhighlight>

Für andere Plattformen kompilieren

Cross-Compiling ist das magische Wort. Um OSCam für andere Plattformen zu kompilieren sind so genannte Toolchains notwendig. Einige Toolchains und weitere Informationen zum "Cross-Compiling" findest Du »hier«.

Beispiel DM800

Toolchain-Datei:

# 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: <syntaxhighlight lang="bash">

  1. Variablen anpassen! **************************************

oscamRoot='/var/shares/linux/oscam' ver='1.00' svnDir='svn-sb' svnBranch='trunk' svnBuildDir=''

  1. **********************************************************

cd $oscamRoot

  1. aktuelle Sourcen auschecken ******************************

svn up $svnDir/$svnBranch

  1. "alte" OSCam`s archivieren (optional) ********************

mv $oscamRoot/bin/oscam* $oscamRoot/bin/archive/

cd $oscamRoot/make

  1. mipsel ***************************************************

rm -fr $oscamRoot/make/* cmake -DLIBUSBDIR=/var/shares/linux/oscam/lib-mipsel/usr -DWEBIF=1 -DCS_CONFDIR=/var/keys -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel.cmake ../$svnDir/$svnBranch/$svnBuildDir make -j4 if [ -x "oscam" ]; then mv oscam ../bin/oscam-mipsel-$ver-$(svnversion -n ../$svnDir/$svnBranch/$svnBuildDir)-wi; fi; </syntaxhighlight>


Diese Seite in anderen Sprachen - This page in other languages - Cette page dans d'autres langues - Queste pagine in altre Lingue

LanguageDE S.png [[OSCam/de/{{#titleparts:OSCam/it/Self-made|3|3}}|Deutsch]] LanguageEN S.png [[OSCam/en/{{#titleparts:OSCam/it/Self-made|3|3}}|English]] LanguageFR S.png [[OSCam/fr/{{#titleparts:OSCam/it/Self-made|3|3}}|Français]] LanguageIT S.png [[OSCam/it/{{#titleparts:OSCam/it/Self-made|3|3}}|Italiano]]