<?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=Limette</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=Limette"/>
	<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/wiki/Spezial:Beitr%C3%A4ge/Limette"/>
	<updated>2026-05-09T00:43:25Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1771</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1771"/>
		<updated>2006-12-10T02:24:53Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Bevor wir &amp;quot;make all&amp;quot; eingeben, sollten wir bedenken, dass evtl. 100 MB an Sourcen gesaugt werden müssen. Wenn wir die Sourcen bereits mal gesaugt hatten, müssen wir das nicht nochmal komplett wiederholen. Es kann sein, dass der aktuelle CDK-Stand einige, wenige NEUE Sourcen (Archive) saugt. Das ist zB. der Fall, wenn ein neuer Kernel im CDK aufgenommen wurde. Dann wird der komplette Kernel-Source gesaugt. Das sind gut 30 MB. Aber auch wenn sich einige Treiber (zB. PNG, oder MP3, oder sonstiges) im CDK erneuert haben, werden Sourcen neu gesaugt. &lt;br /&gt;
FALLS man also auf seinem PC die ganzen Archive bereits zuvor runtergeladen hatte, empfiehlt sich nach der &amp;quot;autogen.sh&amp;quot;, und der &amp;quot;configure&amp;quot;-Zeile ein Symlink zu einem Verzeichnis, in dem das ganze Zeug bereits liegt. Nehmen wir mal an, unter&lt;br /&gt;
&lt;br /&gt;
 $HOME/alter_versuch/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
wären die ganzen (bereits runtergeladenen) Archive, dann ertsellen wir einen Symlink, damit nur noch die *neuesten* Archive gesaugt werden...&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/tuxbox-cvs/cdk&lt;br /&gt;
 ln -s $HOME/alter_versuch/tuxbox-cvs/cdk/Archive $HOME/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
Bitte auf Gross/Kleinschreibung achten... Kontrolliert runterladen, können wir die neuen Archive (vor &amp;quot;make all&amp;quot;) durch Eingabe von&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make download&lt;br /&gt;
&lt;br /&gt;
Wenn nun ein Archiv nicht runterlädt, und mit einer Fehlermeldung abbricht, bemühen wir zB. Google. Wenn wir das vermisste Archiv gefunden haben, speichern wir es in entweder (weil wir &amp;quot;Neulinge&amp;quot; sind) im frischen Archiv-Verzeichnis, oder in dem ge-symlimkten (alten) Archiv-Verzeichnis. &lt;br /&gt;
&lt;br /&gt;
Wiederholt solange &amp;quot;make download&amp;quot; eingeben, bis die Ausgabe sagt, es gäbe nix mehr zu tun... Nun sind wir ENDLICH bereit für ein:&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make all&lt;br /&gt;
&lt;br /&gt;
Dies dauert je nach PC unter Linux etwa 70-120 Minuten. Wenn man &amp;quot;Neuling&amp;quot; ist, kann man auch durchaus direkt &amp;quot;make all&amp;quot; eingeben (zuvoriges &amp;quot;make download&amp;quot; weglassen. Das &amp;quot;make all&amp;quot; schubst dann auch die Archiv-Downloads an. Sofern man einen dicken DSL-Anschluss hat, und auch alle an-gepingten Sourcen/Archive-Server Online sind, läuft der ganze Prozess im Hintergrund, und man muss überhaupt nichts machen. Das wäre der optimale Fall...&lt;br /&gt;
&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1770</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1770"/>
		<updated>2006-12-10T02:17:49Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Bevor wir &amp;quot;make all&amp;quot; eingeben, sollten wir bedenken, dass evtl. 100 MB an Sourcen gesaugt werden müssen. Wenn wir die Sourcen bereits mal gesaugt hatten, müssen wir das nicht nochmal komplett wiederholen. Es kann sein, dass der aktuelle CDK-Stand einige, wenige NEUE Sourcen (Archive) saugt. Das ist zB. der Fall, wenn ein neuer Kernel im CDK aufgenommen wurde. Dann wird der komplette Kernel-Source gesaugt. Das sind gut 30 MB. Aber auch wenn sich einige Treiber (zB. PNG, oder MP3, oder sonstiges) im CDK erneuert haben, werden Sourcen neu gesaugt. &lt;br /&gt;
FALLS man also auf seinem PC die ganzen Archive bereits zuvor runtergeladen hatte, empfiehlt sich nach der &amp;quot;autogen.sh&amp;quot;, und der &amp;quot;configure&amp;quot;-Zeile ein Symlink zu einem Verzeichnis, in dem das ganze Zeug bereits liegt. Nehmen wir mal an, unter&lt;br /&gt;
&lt;br /&gt;
 $HOME/alter_versuch/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
wären die ganzen (bereits runtergeladenen) Archive, dann ertsellen wir einen Symlink, damit nur noch die *neuesten* Archive gesaugt werden...&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/tuxbox-cvs/cdk&lt;br /&gt;
 ln -s $HOME/alter_versuch/tuxbox-cvs/cdk/Archive $HOME/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
Bitte auf Gross/Kleinschreibung achten... Kontrolliert runterladen, können wir die neuen Archive (vor &amp;quot;make all&amp;quot;) durch Eingabe von&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make download&lt;br /&gt;
&lt;br /&gt;
Wenn nun ein Archiv nicht runterlädt, und mit einer Fehlermeldung abbricht, bemühen wir zB. Google. Wenn wir das vermisste Archiv gefunden haben, speichern wir es in entweder (weil wir &amp;quot;Neulinge&amp;quot; sind) im frischen Archiv-Verzeichnis, oder in dem ge-symlimkten (alten) Archiv-Verzeichnis. &lt;br /&gt;
&lt;br /&gt;
Wiederholt solange &amp;quot;make download&amp;quot; eingeben, bis die Ausgabe sagt, es gäbe nix mehr zu tun... Nun sind wir ENDLICH bereit für ein:&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make all&lt;br /&gt;
&lt;br /&gt;
Dies dauert je nach PC unter Linux etwa 70-120 Minuten. Wenn man &amp;quot;Neuling&amp;quot; ist, kann man auch durchaus direkt &amp;quot;make all&amp;quot; eingeben. Das &amp;quot;make all&amp;quot; schubst auch die Archiv-Downloads an. Sofern man einen dicken DSL-Anschluss hat, und auch alle an-gepingten Sourcen/Archive-Server Online sind, läuft der ganze Prozess im Hintergrund, und man muss überhaupt nichts machen. Das wäre der optimale Fall...&lt;br /&gt;
&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1769</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1769"/>
		<updated>2006-12-10T02:15:09Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Bevor wir &amp;quot;make all&amp;quot; eingeben, sollten wir bedenken, dass evtl. 100 MB an Sourcen gesaugt werden müssen. Wenn wir die Sourcen bereits mal gesaugt hatten, müssen wir das nicht nochmal komplett wiederholen. Es kann sein, dass der aktuelle CDK-Stand einige, wenige NEUE Sourcen (Archive) saugt. Das ist zB. der Fall, wenn ein neuer Kernel im CDK aufgenommen wurde. Dann wird der komplette Kernel-Source gesaugt. Das sind gut 30 MB. Aber auch wenn sich einige Treiber (zB. PNG, oder MP3, oder sonstiges) im CDK erneuert haben, werden Sourcen neu gesaugt. &lt;br /&gt;
FALLS man also auf seinem PC die ganzen Archive bereits zuvor runtergeladen hatte, empfiehlt sich nach der &amp;quot;autogen.sh&amp;quot;, und der &amp;quot;configure&amp;quot;-Zeile ein Symlink zu einem Verzeichnis, in dem das ganze Zeug bereits liegt. Nehmen wir mal an, unter&lt;br /&gt;
&lt;br /&gt;
 $HOME/alter_versuch/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
wären die ganzen (bereits runtergeladenen) Archive, dann ertsellen wir einen Symlink, damit nur noch die *neuesten* Archive gesaugt werden...&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/tuxbox-cvs/cdk&lt;br /&gt;
 ln -s $HOME/alter_versuch/tuxbox-cvs/cdk/Archive $HOME/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
Bitte auf Gross/Kleinschreibung achten... Kontrolliert runterladen, können wir die neuen Archive (vor &amp;quot;make all&amp;quot;) durch Eingabe von&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make download&lt;br /&gt;
&lt;br /&gt;
Wenn nun ein Archiv nicht runterlädt, und mit einer Fehlermeldung abbricht, bemühen wir zB. Google. Wenn wir das vermisste Archiv gefunden haben, speichern wir es in entweder (weil wir &amp;quot;Neulinge&amp;quot; sind) im frischen Archiv-Verzeichnis, oder in dem ge-symlimkten (alten) Archiv-Verzeichnis. &lt;br /&gt;
&lt;br /&gt;
Wiederholt solange &amp;quot;make download&amp;quot; eingeben, bis die Ausgabe sagt, es gäbe nix mehr zu tun... Nun sind wir ENDLICH bereit für ein:&lt;br /&gt;
&lt;br /&gt;
 sb@build# make all&lt;br /&gt;
&lt;br /&gt;
Dies dauert je nach PC unter Linux etwa 70-120 Minuten. Wenn man &amp;quot;Neuling&amp;quot; ist, kann man auch durchaus direkt &amp;quot;make all&amp;quot; eingeben. Das &amp;quot;make all&amp;quot; schubst auch die Archiv-Downloads an. Sofern man einen dicken DSL-Anschluss hat, und auch alle an-gepingten Sourcen/Archive-Server Online sind, läuft der ganze Prozess im Hintergrund, und man muss überhaupt nichts machen. Das wäre der optimale Fall...&lt;br /&gt;
&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1768</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1768"/>
		<updated>2006-12-10T01:58:50Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Bevor wir &amp;quot;make all&amp;quot; eingeben, sollten wir überlegen, dass evtl. 100 MB an Sourcen gesaugt werden müssen. Wenn wir die Sourcen bereits mal gesaugt hatten, müssen wir das nicht nochmal komplett wiederholen. Es kann sein, dass der aktuelle CDK-Stand einige, wenige NEUE Sourcen (Archive) saugt. Das ist zB. der Fall, wenn ein neuer Kernel im CDK aufgenommen wurde. Dann wird der komplette Kernel-Source gesaugt. Das sind gut 30 MB. Aber auch wenn sich einige Treiber (zB. PNG, oder MP3, oder sonstiges) im CDK erneuert haben, werden Sourcen neu gesaugt. &lt;br /&gt;
FALLS man also auf seinem PC die ganzen Archive bereits runtergeladen hatte, empfiehlt sich nach der &amp;quot;autogen.sh&amp;quot;, und der &amp;quot;configure&amp;quot;-Zeile ein Symlink zu einem Verzeichnis, in dem das ganze Zeug bereits grösstenteils liegt. Nehmen wir mal an, unter&lt;br /&gt;
&lt;br /&gt;
 $HOME/alter_versuch/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
wären die ganzen (bereits runtergeladenen) Archive, dann geben wir einen Symlink ein, damit nur noch die neuesten Archive gesaugt werden müssen...&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/tuxbox-cvs/cdk&lt;br /&gt;
 ln -s $HOME/alter_versuch/tuxbox-cvs/cdk/Archive $HOME/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
Kontrolliert runterladen, können wir die neuen Archive (vor &amp;quot;make all&amp;quot;) durch Eingabe von&lt;br /&gt;
&lt;br /&gt;
 sb@build/tuxbox-cvs/cdk# make download&lt;br /&gt;
&lt;br /&gt;
Wenn nun ein Archiv nicht runterlädt, und mit einer Fehlermeldung abbricht, bemühen wir zB. Google. Wenn wir das vermisste Archiv gefunden haben, speichern wir es in entweder (weil wir &amp;quot;Neulinge&amp;quot; sind) im frischen Archiv-Verzeichnis, oder in dem ge-symlimkten (alten) Archiv-Verzeichnis. &lt;br /&gt;
&lt;br /&gt;
Wiederholt solange &amp;quot;make download&amp;quot; eingeben, bis die Ausgabe sagt, es gäbe nix mehr zu tun... Nun sind wir ENDLICH soweit für ein:&lt;br /&gt;
&lt;br /&gt;
 sb@build# make all&lt;br /&gt;
&lt;br /&gt;
Dies dauert je nach PC unter Linux etwa 70-120 Minuten.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1767</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1767"/>
		<updated>2006-12-10T01:48:11Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Bevor wir &amp;quot;make all&amp;quot; eingeben, sollten wir überlegen, dass evtl. 100 MB an Sourcen gesaugt werden müssen. Wenn wir die Sourcen bereits mal gesaugt hatten, müssen wir das nicht nochmal komplett wiederholen. Es kann sein, dass der aktuelle CDK-Stand einige, wenige NEUE Sourcen (Archive) saugt. Das ist zB. der Fall, wenn ein neuer Kernel im CDK aufgenommen wurde. Dann wird der komplette Kernel-Source gesaugt. Das sind gut 30 MB. Aber auch wenn sich einige Treiber (zB. PNG, oder MP3, oder sonstiges) im CDK erneuert haben, werden Sourcen neu gesaugt. &lt;br /&gt;
FALLS man also auf seinem PC die ganzen Archive bereits runtergeladen hatte, empfiehlt sich nach der &amp;quot;autogen.sh&amp;quot;, und der &amp;quot;configure&amp;quot;-Zeile ein Symlink zu einem Verzeichnis, in dem das ganze Zeug bereits grösstenteils liegt. Nehmen wir mal an, unter&lt;br /&gt;
&lt;br /&gt;
 $HOME/test/tuxbox-cvs/Archive&lt;br /&gt;
&lt;br /&gt;
wären die ganzen (bereits runtergeladenen) Archive, dann geben wir einen Symlink ein, damit nur noch die neuesten Archive gesaugt werden müssen...&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/tuxbox-cvs/cdk&lt;br /&gt;
 ln -s $HOME/test/cdk/tuxbox-cvs/Archive $HOME/tuxbox-cvs/cdk/Archive&lt;br /&gt;
&lt;br /&gt;
Kontrolliert runterladen, können wir die neuen Archive (vor &amp;quot;make all&amp;quot;) durch Eingabe von&lt;br /&gt;
&lt;br /&gt;
 sb@build# make download&lt;br /&gt;
&lt;br /&gt;
Wenn nun ein Archiv nicht runterlädt, und mit einer Fehlermeldung abbricht, bemühen wir zB. Google. Wenn wir das vermisste Archiv gefunden haben, speichern wir es in dem entsprechenden Archiv-Verzeichnis (das kann durchaus auch das alte sein, da wir ja nun einen Symlink zu dem alten Archiv-Verzeichnis im Neuen &amp;quot;tuxbox-cvs/cdk/Archive&amp;quot; gesetzt haben; wenn wir &amp;quot;Neulinge&amp;quot; sind, wird der ganze Kram halt in dem Verzeichnis $HOME/tuxbox-cvs/cdk/Archive gedownloadet)&lt;br /&gt;
&lt;br /&gt;
Wiederholt solange &amp;quot;make download&amp;quot; eingeben, bis die Ausgabe sagt, es gäbe nix mehr zu tun... Nun sind wir ENDLICH soweit für ein:&lt;br /&gt;
&lt;br /&gt;
 sb@build# make all&lt;br /&gt;
&lt;br /&gt;
Dies dauert je nach PC unter Linux etwa 70-120 Minuten.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1766</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1766"/>
		<updated>2006-12-10T01:22:43Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
Wenn man das &amp;quot;--disable-libcrypto&amp;quot; weglässt, erstellt das CDK eine dicke, 700kB grosse Libcrypto-Lib. Das ist für ein kleinen FlashROM-Speicher &#039;ne Menge Holz, zumal es evtl. gar nicht gebraucht wird. Deswegen machen wir es anders: Wir &amp;quot;disablen&amp;quot; es hier, und erstellen es nachträglich. Wenn wir später (zb. die Evocamd) ins Image einbinden wollen, und dazu die Libs anpassen, wird nur ein geringer Teil der libcrypto (nur das, was benötigt wird) erstellt. Mehr dazu hier im Wiki.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1765</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1765"/>
		<updated>2006-12-10T01:16:52Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash --disable-libcrypto&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1764</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1764"/>
		<updated>2006-12-10T01:14:50Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* mklibs kopieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
Es kann sein, dass man sich (um dies kopieren zu können) dafür kurzfristig als root einloggen muss, oder als Superuser.&lt;br /&gt;
Diese mklibs.py ist für die libcrypto zuständig.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1763</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1763"/>
		<updated>2006-12-10T01:12:20Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1762</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1762"/>
		<updated>2006-12-10T01:10:33Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Vorbereitungen zum Compilieren&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1761</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1761"/>
		<updated>2006-12-10T01:00:44Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1760</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1760"/>
		<updated>2006-12-10T00:58:33Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root, auch wenn sein $HOME nicht unter /home zu finden ist). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde unter Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, befände man sich nach dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Vor dem Eingabecursor stünde nun folgendes vorab:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des jeweiligen PC-Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1759</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1759"/>
		<updated>2006-12-10T00:54:36Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Die Eingabezeile des Cursors hätte nun folgendes vorab stehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1758</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1758"/>
		<updated>2006-12-10T00:03:47Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Wenn man es so, wie hier beschrieben eintippt, geht man sicher, dass die beiden Verzeichnisse auch an der richtigen Stelle angelegt werden. Denn es könnte ja sein, dass man sich bei der Eingabe der beiden Befehle total verwurzelt in einem Sub-Sub-Sub-Verzeichnis befindet. Deswegen das $HOME davor.&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie hier vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1757</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1757"/>
		<updated>2006-12-09T23:58:43Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME kennt idR. jede Linux-Distribution von Haus aus. Sie zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie es hier beschrieben wird. Warum auch nicht!?&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1756</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1756"/>
		<updated>2006-12-09T23:57:47Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Zwei wichtige Arbeits-Verzeichnisse anlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users. Jeder User hat ein eigenes Heimverzeichnis (sogar der root). Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich die zwei wichtigen Verzeichnisse im /home-Verzeichnis des Users anzulegen:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Die beiden Verzeichnisse können auch anders heissen, man muss sich aber JETZT für einen Namen entscheiden! Da aber folgende Texte in diesem HowTo sich stets auf diese Verzeichnisse beziehen (und auch wenig gegen einen anderen Namen spricht), wäre es empfehlenswert, es so zu machen, wie es hier beschrieben wird. Warum auch nicht!?&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1755</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1755"/>
		<updated>2006-12-09T23:50:41Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Vorbereitungen zum Compilieren&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen. Hier im Wiki heisst unser User &amp;quot;sb&amp;quot;, und der PC auf dem das Linux läuft, wurde im Linux &amp;quot;build&amp;quot; getauft.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users (hier der User &amp;quot;sb&amp;quot;). Jeder User hat ein eigenes Heimverzeichnis. Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1754</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1754"/>
		<updated>2006-12-09T23:47:30Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Ein paar Verzeichnisse anlegen (tuxbox-cvs, dbox2, etc) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Zwei wichtige Arbeits-Verzeichnisse anlegen==&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users (hier der User &amp;quot;sb&amp;quot;). Jeder User hat ein eigenes Heimverzeichnis. Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1753</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1753"/>
		<updated>2006-12-09T23:46:50Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Ein paar Verzeichnisse anlegen (tuxbox-cvs, dbox2, etc) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor, während und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD] muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Abweichend davon wird zudem noch folgendes benötigt:&lt;br /&gt;
* fakeroot&lt;br /&gt;
* mksquashfs &amp;gt;= 2.1 &lt;br /&gt;
* mkcramfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-CVS den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (Bashskript), welcher die meisten dieser Versionsstände automatisch ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den Toolchecker bereits auf seinem PC und kann ihn somit so ausführen&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
Sollte eine Prerequisite nicht vorhanden sein, so muss sie über die entsprechend in der Distribution vorhandenen Installationstools installiert werden. Die nachfolgenden Sektion behandelt die Vorgehensweise bei einigen dieser Distributionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter Debian http://www.debian.de gibt es das Toolset apt-* zur Verwaltung von Programmen. Mit apt-cache search kann ich z.B. nach Programmen suchen, mit apt-get install Programme installieren. Des Weiteren existiert mit dem Tool aptitude auch die Möglichkeit, Pakete über ein Menüsystem auszuwählen.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
&#039;&#039;apt-setup&#039;&#039; dient zum Konfigurieren des Internetzugangs und der Protokolle für das Updaten der einzelnen Softwarepakete. In den meisten Fällen wurde diese Konfiguration bereits bei der Installation von Debian vorgenommen und muss somit nur dann erneut aufgerufen werden, wenn etwas nicht wie gewünscht funktioniert. &lt;br /&gt;
Man kann generell zwischen cdrom, ftp, http oder einem Dateisystem als Downloadquelle auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Evtl. kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzelnen Pakete. Durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen! Überlegt euch diesen Schritt gut und führt möglichst ein Backup durch.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit &#039;&#039;rpm -q &amp;lt;paketname&amp;gt;&#039;&#039; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es überhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 root@build:~# rpm -i &amp;lt;paketname&amp;gt; &lt;br /&gt;
könnt ihr ggf. manuell aus dem Internet heruntergeladene Pakete nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
Grundsätzlich ist Knoppix für den Einsatz zum Erstellen eines Images geeignet; aufgrund der Tatsache, dass allerdings nicht alle benötigten Pakete enthalten sind und diese nach jedem Neustart wieder verlorengehen gehen wenn man sie nachinstalliert, ist eine Installation auf eine Festplatte mehr als empfehlenswert (außer für eventuelle Testzwecke).&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 root@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in Englisch)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch Englisch)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
* mkcramfs&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMware Beta-Buildumgebung===&lt;br /&gt;
Um die Erstellung eines Images für Nicht-Linuxuser zu vereinfachen steht ein fertiges VMware-Image bereit, das bereits alle nötigen Voraussetzungen enthält. Näheres hierzu findet sich in diesem seperaten Artikel:  [[Streamboard_Buildumgebung|Streamboard Buildumgebung]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
==Ein paar Verzeichnisse anlegen (tuxbox-cvs, dbox2, etc)==&lt;br /&gt;
 sb@build:# mkdir $HOME/tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir $HOME/dbox2&lt;br /&gt;
&lt;br /&gt;
Die Variable $HOME zeigt auf das /home-Verzeichnis des derzeit angemeldeten Users (hier der User &amp;quot;sb&amp;quot;). Jeder User hat ein eigenes Heimverzeichnis. Gäbe es den User &amp;quot;Linuxfreak&amp;quot;, und der PC würde im Linux &amp;quot;MeinPC&amp;quot; heissen, und man wäre als &amp;quot;Linuxfreak&amp;quot; angemeldet, wäre man bei dem Befehl....&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
&lt;br /&gt;
... im Heimverzeichnis des Users &amp;quot;Linuxfreak&amp;quot;. Der Cursor würde nun so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Linuxfreak@MeinPC:#&lt;br /&gt;
&lt;br /&gt;
==Auschecken==&lt;br /&gt;
Solltet ihr einen Proxy vorgeschaltet haben, so ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran laden wir das CVS vom Tuxboxserver herunter:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
&lt;br /&gt;
Wenn ihr das CVS bereits heruntergeladen habt, so müsst ihr es nicht komplett nochmal neu runterladen sondern könnt auch einfach nur die neuen Dateien holen:&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 up -dP .&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
==mklibs kopieren==&lt;br /&gt;
Die Datei mklibs muss noch entsprechend nach &#039;&#039;/usr/bin&#039;&#039; kopiert werden (sofern noch nicht vorhanden; in der StreamboardBuildumgebung ist sie bereits vorhanden). Dazu gibt man folgendes ein:&lt;br /&gt;
 sb@build:~# cp /tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs&lt;br /&gt;
 sb@build:~# chmod 755 /usr/bin/mklibs&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren==&lt;br /&gt;
Im Anschluss daran fehlt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB im Flash der Dbox2 zur Verfügung. Deshalb gibt es komprimierte Dateisysteme ähnlich wie es komprimierte ZIP-Dateien gibt. Die Filesysteme, die sich am stärksten komprimieren lassen haben leider den Nachteil, dass sie nicht beschreibbar sind. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am besten komprimierenden Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Ein Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu dekomprimieren (obwohl laut [http://www.beyondlogic.org/nb5/squashfs_lzma.htm] LZMA im Vergleich zu ZLib nur 1/10 des Speichers benötigt zum Dekomprimieren). Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht. Zudem ist es ein nur-lesbares Dateisystem.&lt;br /&gt;
* SquashFS mit der normalen ZLib-Komprimierung ist das gängigste Dateisystem. Der Betrieb unter der DBox2 ist dann auch von der Performance her akzeptabel. Allerdings komprimiert LZMA eben um die 10% stärker. Auch wieder nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Die Komprimierung ist schwächer als bei den SquashFS-Formaten und die Geschwindigkeit etwas besser. Aber auch nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein. Es kann vorkommen, dass ein JFFS2-Image &amp;quot;platzt&amp;quot; (das Dateisystem lässt dann trotz Speicherplatz keine neuen Dateien oder Änderungen mehr zu) wenn es nahezu vollständig gefüllt ist. Dies ist allerdings durch diverse Verbesserungen und Patches in letzter Zeit relativ selten geworden.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem um die Vorteile der hohen Komprimierung und des schreibbaren Dateisystems zu kombinieren. Also eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2 für Konfigurationsdateien, Emus etc. Wenn man vor dem Partitionieren noch eine Menge nicht unbedingt benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (z.B.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, so muss dazu zwingend der Kernel und das U-Boot angepasst werden (außer wenn man mit den &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden ist)!&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
Die Datei camd.c im Verzeichnis ~/tuxbox-cvs/apps/tuxbox/tools/camd/ gehört geringfügig angepaßt.&lt;br /&gt;
Genaugenommen muß nur eine Abfrage auskommentiert werden.&lt;br /&gt;
Nachfolgende Sequenz in eine Datei camd.c.diff kopieren&lt;br /&gt;
&lt;br /&gt;
 --- camd.c      2004-04-04 22:27:57.000000000 +0200&lt;br /&gt;
 +++ camd_withP.c        2006-11-26 09:30:29.000000000 +0100&lt;br /&gt;
 @@ -415,14 +415,14 @@&lt;br /&gt;
         pmt-&amp;gt;ca_pmt_list_management = buffer[0];&lt;br /&gt;
         pmt-&amp;gt;program_number = *(unsigned short *)&amp;amp;buffer[1];&lt;br /&gt;
         pmt-&amp;gt;program_info_length = *(unsigned short *)&amp;amp;buffer[4] &amp;amp; 0x0fff;&lt;br /&gt;
 -&lt;br /&gt;
 +/*&lt;br /&gt;
         if ((pmt-&amp;gt;program_number &amp;amp; 0xf000) == 0x0000) {&lt;br /&gt;
                printf(&amp;quot;[camd] program number %04x unsupported due to missing parental control\n&amp;quot;,&lt;br /&gt;
                                 pmt-&amp;gt;program_number);&lt;br /&gt;
                 free(pmt);&lt;br /&gt;
                 return -1;&lt;br /&gt;
         }&lt;br /&gt;
 -&lt;br /&gt;
 +*/&lt;br /&gt;
  #if 0&lt;br /&gt;
         printf(&amp;quot;ca_pmt_list_management: %02x\n&amp;quot;, pmt-&amp;gt;ca_pmt_list_management);&lt;br /&gt;
         printf(&amp;quot;program number: %04x\n&amp;quot;, pmt-&amp;gt;program_number);&lt;br /&gt;
&lt;br /&gt;
und mit &lt;br /&gt;
 patch -p0 -b camd.c camd.c.diff&lt;br /&gt;
übernehmen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siehe auch [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_diff_.3F]]&lt;br /&gt;
und [[HowTo_-_Vom_Auschecken_bis_zum_Image#Was_ist_ein_Patch_.3F]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
Yadd steht für &amp;quot;yet another dbox distribution&amp;quot; und stellt eine Zusammenstellung aller Dateien dar, die auch in einem Image enthalten wären. Allerdings wird es nicht auf die Dbox geflasht sondern direkt über das Netzwerk gebootet. Insbesondere zum Testen ist ein YADD-Image daher sehr empfehlenswert da der Flashvorgang entfällt! &lt;br /&gt;
&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
&lt;br /&gt;
Nun muss eine passender u-boot gebaut werden. Dazu muss die&lt;br /&gt;
&lt;br /&gt;
- u-boot.squashfs.dbox2.h&lt;br /&gt;
in$HOME/tuxbox-cvs/boot/u-boot-config und link von der Datei auf u-boot.config&lt;br /&gt;
$HOME/tuxbox-cvs/boot/u-boot-config&amp;gt; ln -s u-boot.squashfs.dbox2.h u-boot.config&lt;br /&gt;
Editiert werden.&lt;br /&gt;
anschliessend&lt;br /&gt;
in /tucbox-cvs/cdk/&lt;br /&gt;
&lt;br /&gt;
rm .deps/u-boot&lt;br /&gt;
make u-boot&lt;br /&gt;
&lt;br /&gt;
Dieser u-boot liegt dann in&lt;br /&gt;
&lt;br /&gt;
/dbox2/tftpboot&lt;br /&gt;
und muss nach&lt;br /&gt;
&lt;br /&gt;
/$HOME/tuxbox-cvs/hostapps/mkflfs/&lt;br /&gt;
kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Dort erzeugt man dann zunächst mkflfs mit den folgenden befehlen&lt;br /&gt;
&lt;br /&gt;
gcc -o mkflfs mkflfs.c minilzo.c&lt;br /&gt;
dann je nach gewünschten flashbausteinanzahl&lt;br /&gt;
&lt;br /&gt;
./mkflfs 2x u-boot&lt;br /&gt;
&lt;br /&gt;
nun haben wir eine datei namens flfs.img und benennen diese entsprechend nach flfs1x.img oder flfs2x.img um. Kopieren diese Datei nach $HOME/dbox2/cdkflash&lt;br /&gt;
&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und z.B. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix Neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1718</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1718"/>
		<updated>2006-10-25T16:34:26Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Wo liegen die Vor- und Nachteile der Filesysteme? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von hier [[Bild:VMwareTools.exe]] das Archiv und extrahiert daraus die TAR-Datei. Mit einem FTP Client könnt ihr diese dann mittels des in der Buildumgebung integrierten FTP-Servers hineinkopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch vorher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
Hier währe die günstige Gelegenheit, gleich ein &amp;quot;Backup&amp;quot; vom CVS zu machen, siehe nächsten Punkt (Tarball erstellen)&lt;br /&gt;
&lt;br /&gt;
Hier fehlt jetzt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
* SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
* SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
* CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
* JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1713</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1713"/>
		<updated>2006-10-25T15:19:34Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Vorbereitungen zum Compilieren&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von der VMWare Seite den [http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz Server für Linux]&lt;br /&gt;
Aus diesem extrahiert ihr euch das Iso-File &amp;quot;linux.iso&amp;quot;, dieses dann mit zB mit Deamon Manager öffnen und das File VMWARETO.TGZ lokal am PC abspeichern. Mit einem FTP Client könnt ihr es dann in die Buildumgebung kopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch voher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
Hier währe die günstige Gelegenheit, gleich ein &amp;quot;Backup&amp;quot; vom CVS zu machen, siehe nächsten Punkt (Tarball erstellen)&lt;br /&gt;
&lt;br /&gt;
Hier fehlt jetzt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
# SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
# SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
# CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
# JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1712</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1712"/>
		<updated>2006-10-25T15:17:58Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Vorbereitungen zum Compilieren&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von der VMWare Seite den [http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz Server für Linux]&lt;br /&gt;
Aus diesem extrahiert ihr euch das Iso-File &amp;quot;linux.iso&amp;quot;, dieses dann mit zB mit Deamon Manager öffnen und das File VMWARETO.TGZ lokal am PC abspeichern. Mit einem FTP Client könnt ihr es dann in die Buildumgebung kopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch voher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Falls nicht schon geschehen, jetzt als User einloggen.&lt;br /&gt;
Anmerkung: Dieser Username erscheint auch später in Eurem Image&lt;br /&gt;
&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
Hier währe die günstige Gelegenheit, gleich ein &amp;quot;Backup&amp;quot; vom CVS zu machen, siehe nächsten Punkt (Tarball erstellen)&lt;br /&gt;
&lt;br /&gt;
Hier fehlt jetzt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
# SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
# SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
# CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
# JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1711</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1711"/>
		<updated>2006-10-25T15:14:25Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Auschecken und Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von der VMWare Seite den [http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz Server für Linux]&lt;br /&gt;
Aus diesem extrahiert ihr euch das Iso-File &amp;quot;linux.iso&amp;quot;, dieses dann mit zB mit Deamon Manager öffnen und das File VMWARETO.TGZ lokal am PC abspeichern. Mit einem FTP Client könnt ihr es dann in die Buildumgebung kopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch voher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
Wichtig ist für euer System, dass ihr &#039;&#039;&#039;nicht&#039;&#039;&#039; unter dem User root arbeitet, zumindestens nicht das CDK kompiliert. Richtet euch eine eigenen User ein (der Username taucht dann auch im Image auf), mit dem ihr dann arbeitet. Einige Teile müßt ihr natürlich immer unter dem User root machen, zB Verzeichnisse anlegen oder Programme installieren. In diesem Howto wird immer von den selben Verzeichnissen gesprochen. In den weiteren Beispielen gehen wir davon aus, dass der User &#039;&#039;&#039;&#039;&#039;tux&#039;&#039;&#039;&#039;&#039; heist und unser Rechner &#039;&#039;&#039;&#039;&#039;linuxrechner&#039;&#039;&#039;&#039;&#039;. Natürlich könnt ihr auch eure eigenen Namen vergeben ;-)&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
Hier währe die günstige Gelegenheit, gleich ein &amp;quot;Backup&amp;quot; vom CVS zu machen, siehe nächsten Punkt (Tarball erstellen)&lt;br /&gt;
&lt;br /&gt;
Hier fehlt jetzt noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
# SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
# SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
# CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
# JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1710</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1710"/>
		<updated>2006-10-25T15:13:24Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Auschecken und Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von der VMWare Seite den [http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz Server für Linux]&lt;br /&gt;
Aus diesem extrahiert ihr euch das Iso-File &amp;quot;linux.iso&amp;quot;, dieses dann mit zB mit Deamon Manager öffnen und das File VMWARETO.TGZ lokal am PC abspeichern. Mit einem FTP Client könnt ihr es dann in die Buildumgebung kopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch voher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
Wichtig ist für euer System, dass ihr &#039;&#039;&#039;nicht&#039;&#039;&#039; unter dem User root arbeitet, zumindestens nicht das CDK kompiliert. Richtet euch eine eigenen User ein (der Username taucht dann auch im Image auf), mit dem ihr dann arbeitet. Einige Teile müßt ihr natürlich immer unter dem User root machen, zB Verzeichnisse anlegen oder Programme installieren. In diesem Howto wird immer von den selben Verzeichnissen gesprochen. In den weiteren Beispielen gehen wir davon aus, dass der User &#039;&#039;&#039;&#039;&#039;tux&#039;&#039;&#039;&#039;&#039; heist und unser Rechner &#039;&#039;&#039;&#039;&#039;linuxrechner&#039;&#039;&#039;&#039;&#039;. Natürlich könnt ihr auch eure eigenen Namen vergeben ;-)&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
Hier währe die günstige Gelegenheit, gleich ein &amp;quot;Backup&amp;quot; vom CVS zu machen, siehe nächsten Punkt (Tarball)&lt;br /&gt;
Doch zunächst noch:&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
# SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
# SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
# CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
# JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1709</id>
		<title>HowTo - Vom Auschecken bis zum Image</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Vom_Auschecken_bis_zum_Image&amp;diff=1709"/>
		<updated>2006-10-25T15:10:44Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Vorwort&#039;&#039;&#039; = &lt;br /&gt;
&lt;br /&gt;
Worum geht es hier? &lt;br /&gt;
&lt;br /&gt;
Es geht darum, sich eine eigene Linux-Firmware für seinen Receiver zu bauen. Dabei sind einige Hürden zu überwinden. Viele Leute geben bereits an dieser Stelle auf, da ihnen die Hürden einfach zu hoch sind. Selbst bei hundertprozentiger Einhaltung diverser Kurzanleitungen, treten oft dennoch Fehler, oder irgendwelche unvorhersehbaren Situationen auf, bei denen die meisten Anleitungen nicht weiterhelfen. Und somit wird das simple Erstellen einer eigenen Firmware zum Höllentrip durch den unglaublich grossen Cyberspace, auf der Suche nach der richtigen Antwort zum entsprechenden Problem. Dieses HowTo ist darauf ausgelegt, dass (möglichst) alle Fragen vor-, während- und nach dem Firmware-Selbstbau beantwortet werden.&lt;br /&gt;
&lt;br /&gt;
Das Projekt &amp;quot;[http://tuxbox.org Tuxbox]&amp;quot; (Linux auf einem DVB-Receiver) basiert auf einem Open-Source-Projekt, bei dem es darum ging, DVB-Dienste unter Linux zum Laufen zu bringen. Pionierarbeit leisteten (u.a.) die Metzler-Brüder mit ihren API-Treibern. Irgendwann 2001/2002 schraubte ein User (tmbinc, ein Pionier beim Tuxbox-Projekt, und späterer Initiator von enigma) an seiner DBox2 herum, und brachte sie in den sogenannten Debugmodus. Der Bootloader von Betaresearch selber konnte bis heute noch nicht gehackt, und demnach auch nicht ausgetauscht werden, aber der BR-Bootloader sprang auf diverse Standard-Protokolle an, die auch Linux beherrscht. Darauf baute dann Stück- für Stück &amp;quot;Tuxbox&amp;quot; auf. &lt;br /&gt;
Die DBox2, welche von 3 verschiedenen Herstellern angeboten wurde, wurde plötzlich zum äussert beliebten Objekt vieler Hobby-Liebhaber, da sie (gegenüber der Betanova-Firmware - nun durch Linux aufgemotzt) wesentlich schneller, und vor Allem auch selbst-gestaltbar wurde. Sie wird mittlerweile nicht mehr hergestellt. Einige Receiver-Hersteller waren bereits zuvor am Linux-Projekt interessiert, doch als das Projekt Tuxbox so langsam erwachsen wurde, setzten einige Firmen auf Tuxbox.&lt;br /&gt;
&lt;br /&gt;
Prima, denn mittlerweile kann man (mithilfe von Tuxbox) seine eigene Firmware für mehrere Receiver selber erstellen. Zb. für die Dreambox, Triple-Dragon, Reelbox, usw. Einige Treiber von einigen Herstellern sind nicht Open-Source (sondern Copyrighted). Es müssen die Original-Treiber der Hersteller implemetiert werden, was aber auch keine grosse Hürde darstellt. &lt;br /&gt;
In diesem HowTo wird also nicht nur die DBox2 angesprochen, sondern auch andere Receiver. Nähres dazu ist hier zu lesen!&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Allgemeines zu Tuxbox [http://de.wikipedia.org/wiki/Cvs CVS]&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CVS? ==&lt;br /&gt;
&lt;br /&gt;
Concurrent Version System! So ähnlich wie in diesem WIKI, können mehrere Autoren an diversen Source (hier Text)-Versionen rum-doktor&#039;n. Hat sich ein Autor vertan, erzählt Unsinn, oder hat falsch geklickt, so kann man die vorige Version  zurückholen. Denn vorige Verionen werden archiviert. Ist eine Änderung korrekt, und sinnvoll, bleibt sie solange im sogenannten &#039;&#039;Head&#039;&#039; bestehen, bis ein anderer seine neusten Änderungen uploaded.&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;Head&#039;&#039; ist bei der DBox2 vorzuziehen. Aber neben dem &#039;&#039;Head&#039;&#039; gibts auch noch Verzweigungen, namens &#039;&#039;Branch&#039;&#039;. Wer zB. für die Dreambox ein Image erstellen will, checkt den CVS-Stand des Dreambox-Branches aus. Hier vereinen sich Dreambox-spezifische Sourcen, mit denen vom aktuellen Head.&lt;br /&gt;
&lt;br /&gt;
== Was ist eigentlich CDK? ==&lt;br /&gt;
&lt;br /&gt;
Cross Developement Kit! Wozu braucht man das? Tja, man besitzt idR. einen x86-PC. Aber die Prozessoren in den Receivern besitzen meist einen PowerPC (ppc). Die &amp;quot;normale&amp;quot; Compiler-Umgebung bietet keine Möglichkeit, Programme zu compileren, die auf dem ppc laufen. Das CDK baut dafür einen Crosscompiler (Kreuzübersetzer für C und C++ zwischen x86 und ppc). Alles was dann durch diesen Compiler gejagt wird, kann der ppc ausführen (sofern keine Fehler drin waren *g*)&lt;br /&gt;
 &lt;br /&gt;
Das CDK baut auch einen Crosscompiler für Assembler; und den Stripper, der die sich ständig wiederholenden Tags aus den Binaries zieht, damit sie abschliessendend kleiner werden. Der Stripper kann auch Libs verkleinern. Das CDK beherbergt aber auch noch andere, nette Features.&lt;br /&gt;
&lt;br /&gt;
Das CDK ist also das Herzstück, bzw. der Schlüssel zur eigenen Firmware auf dem eigenen Receiver.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen auf dem PC&#039;&#039;&#039; =&lt;br /&gt;
Um sich das CDK (und letztendlich ein Image) zu erstellen, benötigt man bestimmte Tools in bestimmten Versionen.&lt;br /&gt;
==root oder user ?==&lt;br /&gt;
&lt;br /&gt;
Antwort: &#039;&#039;&#039;User!&#039;&#039;&#039; Und zwar immer! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme&#039;&#039;&#039;: Genau jetzt! Denn Tools- bzw. allgemein für-alle-User-geltende Software kann nur der root installieren. Für andere Dinge braucht man den root eigentlich nicht.&lt;br /&gt;
&lt;br /&gt;
Wie werde ich root?&lt;br /&gt;
&lt;br /&gt;
Es gibt mindestens vier Möglichkeiten&lt;br /&gt;
# Beim Einloggen in das Betriebssystem als root anmelden&lt;br /&gt;
# Als User die root-shell öffnen&lt;br /&gt;
# Normale shell öffnen und &#039;&#039;sudo su&#039;&#039;, &#039;&#039;sudo&#039;&#039; oder &#039;&#039;su -&#039;&#039; (das &amp;quot;-&amp;quot; ist für die Umgebungsvariablen von &amp;quot;root&amp;quot;) eingeben.&lt;br /&gt;
# Root und User gleichzeitig und parallel sein.......&lt;br /&gt;
:...... da es unter Linux mehrere &#039;&#039;virtuelle Konsolen&#039;&#039;, bzw. Desktops gibt, kann man auch gleichzeitig als user, wie als root angemeldet sein. &lt;br /&gt;
Unter einer grafischen Desktop-Umgebung, kann man mit der Tastenkombination&lt;br /&gt;
&lt;br /&gt;
 STRG+[F-Taste]&lt;br /&gt;
zwischen (meist) mindestens 4 grafischen Desktops F[1-4] umherschalten.&lt;br /&gt;
&lt;br /&gt;
Mit der Tastenkombination&lt;br /&gt;
 STRG+ALT+[F-Taste] &lt;br /&gt;
kann man zwischen weiteren Text-Modus-Konsolen umherschalten. Meist ist F7 zurück in den grafischen Modus. &lt;br /&gt;
Mithilfe dieser Text-Modus-Konsolen kann man auch diverse, grafische Oberflächen &#039;&#039;&#039;gleichzeitig&#039;&#039;&#039; starten. Denn es gibt ja noch andere, als nur KDE. Die Anzahl der Konsolen ist von der Distribution abhängig.&lt;br /&gt;
(In der [[HowTo_-_Vom_Auschecken_bis_zum_Image#Streamboard VMWare Beta-Buildumgebung]] wechselt man die Konsolen mit ALT + F[1-6])&lt;br /&gt;
&lt;br /&gt;
Zurück zum Geschäft:&lt;br /&gt;
&lt;br /&gt;
Wenn die Tools installiert sind, beendet man sein root-Dasein wieder, und loggt sich wieder als User ein, oder wechselt eben wieder auf seine User-Ebene/Konsole/Oberfläche zurück. In unserem Fall sollte alle weiteren USER Aktionen unter dem USER &amp;quot;sb&amp;quot; passieren. Aber zunächst mal zu den Tools, und wie man sie als root installiert.....&lt;br /&gt;
&lt;br /&gt;
== Tools (Prerequisiten) ==&lt;br /&gt;
&lt;br /&gt;
Prerequisiten? Was&#039;n das?&lt;br /&gt;
Man stelle sich vor, man will einen Starwars-Film drehen, und kein Schauspieler hat ein Laserschwert zur Verfügung. Damit der Film rockt, braucht jeder Starwars-Schauspieler auch die Requisite &amp;quot;Laserschwert&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
So ähnlich ist es auch mit den Prerequisiten, die für Tuxbox benötigt werden. Fehlt dem eigenen Linux-System auf dem PC ein Tool, dann klappt das nicht mit dem Firmware-Selbstbau.&lt;br /&gt;
&lt;br /&gt;
Laut http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/doc/INSTALL.en?rev=HEAD muss man folgende Prerequisten an Bord haben:&lt;br /&gt;
* cvs&lt;br /&gt;
* autoconf &amp;gt;= 2.57a&lt;br /&gt;
* automake &amp;gt;= 1.8&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* gettext &amp;gt;= 0.12.1&lt;br /&gt;
* make &amp;gt;= 3.79&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* tar&lt;br /&gt;
* bunzip2 (bzip2)&lt;br /&gt;
* gunzip (gzip)&lt;br /&gt;
* patch&lt;br /&gt;
* infocmp (ncurses-bin / ncurses-devel)&lt;br /&gt;
* gcc 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* g++ 2.95 or &amp;gt;= 3.0&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* pkg-config&lt;br /&gt;
* wget&lt;br /&gt;
*libpng2 or libpng3 (DirectFB)&lt;br /&gt;
&lt;br /&gt;
Es gibt im Tuxbox-cvs den [http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/hostapps/toolchecker/?only_with_tag=MAIN toolchecker] (bashskript), welcher genau diese Versionsstände ermittelt.&lt;br /&gt;
Man lädt sich das Skript auf den lokalen Rechner, ändert die Rechte auf &#039;&#039;ausführbar&#039;&#039; (chmod +x toolchecker.sh) und startet es. Dann vergleicht man einfach die ermittelten Versionen mit den hier gelisteten. Ist eine Prerequisite nicht vorhanden, oder hat eine kleinere Versionsnummer, muss man diese noch nachinstallieren/updaten. Wird keine Version angegeben: Nicht schlimm. Nur vorhanden sein muss es.&lt;br /&gt;
Wer bereits das CVS ausgecheckt hat, hat den toolchecker bereits auf seinem PC&lt;br /&gt;
 sb@build:# /tuxbox-cvs/hostapps/toolchecker/toolchecker.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Unter debian http://www.debian.de gibt das Toolset apt-* zur Verwalltung von Programmen. Mit apt-cache search kann ich zB nach Programmen suchen, mit apt-get install Programme installieren.&lt;br /&gt;
==== apt-setup ====&lt;br /&gt;
Als erstes konfigurieren wir den Internetzugang und Protokoll für das Updaten der einzellnen Softwarepakete. Man kann unterscheiden zwischen cdrom, ftp, http oder einem Dateisystem auswählen. Wenn man eine Internetanbindung (xDSL) hat, sollte man sich entweder für ftp oder http entscheiden. Als nächstes wählt man das Land, in dem man sich befindet. Dadurch wird im nächsten Schritt dann ein Server aus deiner Nähe ausgewählt. Am Ende wird von diesem Server die aktuelle Paketliste geladen und lokal abgespeichert. Ev kann man noch zusätzliche Quellen angeben.&lt;br /&gt;
==== apt-update ====&lt;br /&gt;
Da sich bei den Softwarepaketen immer wieder was verändert und Neuerungen/Bugfixes hinzukommen, ändert sich auch die Version der einzellnen Pakete. durch ein &lt;br /&gt;
 root@build:~# apt-get update&lt;br /&gt;
wird von dem oben eingestellten Server die aktuelle Paketliste geladen. Diese wird dann im nächsten Schritt benötigt.&lt;br /&gt;
&lt;br /&gt;
==== apt-upgrade ====&lt;br /&gt;
!!ACHTUNG!! Hier ist Vorsicht geboten. Dieser Befehl zieht alle installierten Pakete auf die aktuelle Version. Dies ist jedoch nicht immer gewünscht. Man wird jedoch gefragt, ob man dies wirklich machen möchte. Seht euch die Pakete an, die upgedatet werden, ihr könnt mit CTRL-C immer noch abbrechen.&lt;br /&gt;
&lt;br /&gt;
=== SuSE ===&lt;br /&gt;
&lt;br /&gt;
Unter SuSE koennt ihr mit rpm -q &amp;lt;paketname&amp;gt; anhand o.a. Liste auch ohne toolchecker vergleichen welche Version des Pakets ihr installiert habt. &lt;br /&gt;
&lt;br /&gt;
==== Yast ====&lt;br /&gt;
Ist ein Paket nicht installiert, am besten erstmal mit Yast schaun ob es ueberhaupt in der Distribution ist und ggf. nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
==== rpm ====&lt;br /&gt;
Mit rpm -i &amp;lt;paketname&amp;gt; koennt ihr ggf. aus dem Internet heruntergeladene pakete nachinstallieren&lt;br /&gt;
&lt;br /&gt;
=== Andere Linux-Distributionen ===&lt;br /&gt;
==== Knoppix ====&lt;br /&gt;
KNOPPIX ist eine komplett von CD oder DVD lauffähige Zusammenstellung von GNU/Linux-Software mit automatischer Hardwareerkennung und Unterstützung für viele Grafikkarten, Soundkarten, SCSI- und USB-Geräte und sonstige Peripherie. KNOPPIX kann als produktives Linux-System for den Desktop, Schulungs-CD, Rescue-System oder als Plattform für kommerzielle Software-Produktdemos angepasst und eingesetzt werden.&lt;br /&gt;
(Quelle: Knoppix-Homepage)&lt;br /&gt;
Download auf der [http://knopper.net/knoppix/ Knoppix-Homepage]&lt;br /&gt;
===== Wie bekomme ich Knoppix auf meine Festplatte? =====&lt;br /&gt;
* Knoppix von CD/DVD starten&lt;br /&gt;
* Shell öffnen&lt;br /&gt;
 sb@build:# sudo knoppix-installer&lt;br /&gt;
oder &lt;br /&gt;
 sb@build:# knoppix-installer&lt;br /&gt;
eingeben und mit &#039;&#039;&#039;[Enter]&#039;&#039;&#039; bestätigen&lt;br /&gt;
* den Anweisungen folgen&lt;br /&gt;
Hier mal ein &#039;&#039;Hd Install HowTo&#039;&#039; aus dem [http://www.knoppix.net/wiki/Hd_Install_HowTo Knoppix-Wiki] (leider nur in english)&lt;br /&gt;
Hier noch ein [http://www.irongeek.com/i.php?page=videos/knoppix1 Video] zur HD-Istallation (auch english)&lt;br /&gt;
===== Was ist typischerweise für Knoppix zu ändern um mit dem Compilieren loslegen zu können? =====&lt;br /&gt;
Man benötigt noch folgende Software die noch nicht in Knoppix5 enthalten ist:&lt;br /&gt;
* bison&lt;br /&gt;
* libpng2 or libpng3 (DirectFB)&lt;br /&gt;
* libtool &amp;gt;= 1.4.2&lt;br /&gt;
* makeinfo (texinfo)&lt;br /&gt;
* pkg-config&lt;br /&gt;
* flex&lt;br /&gt;
eventuell noch:&lt;br /&gt;
* mksquashfs&lt;br /&gt;
* mkfs.jffs2&lt;br /&gt;
&lt;br /&gt;
=== Cygwin unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Platzhalter ====&lt;br /&gt;
&lt;br /&gt;
===Streamboard VMWare Beta-Buildumgebung===&lt;br /&gt;
&lt;br /&gt;
Es steht testweise eine Buildumgebung für VMWare bereit.&lt;br /&gt;
 [http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe http://streamboard.gmc.to/wbb2/tut-pics/StreamboardVMWare.exe (70MB)]  &lt;br /&gt;
Diese basiert auf einem minimalen Debian-System und sollte bereits alle nötigen Pakete beinhalten. Es ist keine GUI installiert um die Downloadgröße gering zu halten. Diese kann aber mittels aptitude sehr einfach installiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Installation unter Windows erfolgt sehr einfach:&lt;br /&gt;
&lt;br /&gt;
# Download und Installation des [http://www.vmware.com/de/download/player/ VMWare-Players] (Freeware) oder [http://www.vmware.com/de/download/ws/ VMWare Workstation] (benötigt nach 30 Tagen eine Lizenz)&lt;br /&gt;
# Entpacken der StreamboardVMWare.exe in ein beliebiges Verzeichnis (auf ausreichend Speicherplatz achten! Später wird das Ganze ca. 2-3GB groß)&lt;br /&gt;
# Mit einem Doppelklick auf die entpackte VMX-Datei sollte der VMWare-Player bzw. Workstation starten und die Buildumgebung öffnen.&lt;br /&gt;
# Nach dem Start von Debian kann man sich mittels dem Usernamen &amp;quot;streamboard&amp;quot; und Passwort &amp;quot;kalibo&amp;quot; einloggen. Das Passwort für den root-Zugang (nötig für die Installation weiterer Software) lautet &amp;quot;Streamboard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss daran kann man mit dem Imagebau laut diesem Howto beginnen.&lt;br /&gt;
&lt;br /&gt;
Das Streamboard-Team würde sich über Rückmeldungen im Forum diesbezüglich sehr freuen! &lt;br /&gt;
Es können durchaus noch Bugs enthalten sein, da das Paket noch nicht ausreichend getestet werden konnte.&lt;br /&gt;
&lt;br /&gt;
==== user/Shell ändern ====&lt;br /&gt;
Wir haben uns hier dazu geeinigt, den user und Rechnernamen zu vereinfachen. Um jetzt nicht gleich die ganze Buildungebung neu upzuloaden, kann das ja jeder selber machen. Als erstes legt euch mit dem Befehl &#039;&#039;adduser sb&#039;&#039; einen User &#039;&#039;&#039;sb&#039;&#039;&#039; an. Danach editiert noch die Datei &#039;&#039;/etc/hostname&#039;&#039;, ändert dort den Namen in build. Nach dem nächsten reboot habt ihr dann die richtige Umgebung.&lt;br /&gt;
&lt;br /&gt;
==== VMWare Tools installieren ====&lt;br /&gt;
Um zB die Größe der Konsole zu verändern, sllte man sich in die Streamboard Build Umgebung die VMWare Tools installieren. Dazu ladet ihr euch am Besten von der VMWare Seite den [http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz Server für Linux]&lt;br /&gt;
Aus diesem extrahiert ihr euch das Iso-File &amp;quot;linux.iso&amp;quot;, dieses dann mit zB mit Deamon Manager öffnen und das File VMWARETO.TGZ lokal am PC abspeichern. Mit einem FTP Client könnt ihr es dann in die Buildumgebung kopieren. Danach das File &amp;quot;enttarren&amp;quot; und in dem Unterverzeichnis vmware-tools-distrib das Perlskript vmware-install.pl starten. In der Installation könnt ihr alle Fragen mit [ENTER] beantworten. Bitte installiert euch voher noch die passenden Kernelheaders zu dem aktuellen Kernel.&lt;br /&gt;
==== Mausunterstützung in der Konsole ====&lt;br /&gt;
Um auch in der Konsole mit Mausunterstützung arbeiten zu können, müßt ihr euch das Tool gpm installieren.&lt;br /&gt;
 sb@build:# apt-get install gpm&lt;br /&gt;
Bei den meisten Sytemen schaut die Konfigdatei so aus.&lt;br /&gt;
 #  /etc/gpm.conf - configuration file for gpm(1)&lt;br /&gt;
 device=/dev/psaux&lt;br /&gt;
 responsiveness=&lt;br /&gt;
 repeat_type=none&lt;br /&gt;
 type=imps2&lt;br /&gt;
 append=&#039;&#039;&lt;br /&gt;
 sample_rate=&lt;br /&gt;
Nun kann man innerhalb der Konsole recht einfach mittels copy/paste arbeiten.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche Dateien müssen noch in mein Linux-PC kopiert/installiert werden?&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mklibs in welchen Pfad ? Und Kopie als mklibs.py in selben Pfad! ==&lt;br /&gt;
== mkfs.jffs2 kopieren ==&lt;br /&gt;
== mksquashfs kopieren ==&lt;br /&gt;
== mkcramfs kopieren (Abfrage, ob bereits vorhanden) ==&lt;br /&gt;
== mksquashfs (LZMA) ==&lt;br /&gt;
== fakeroot ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Vorbereitungen zum Compilieren&#039;&#039;&#039; =&lt;br /&gt;
Wichtig ist für euer System, dass ihr &#039;&#039;&#039;nicht&#039;&#039;&#039; unter dem User root arbeitet, zumindestens nicht das CDK kompiliert. Richtet euch eine eigenen User ein (der Username taucht dann auch im Image auf), mit dem ihr dann arbeitet. Einige Teile müßt ihr natürlich immer unter dem User root machen, zB Verzeichnisse anlegen oder Programme installieren. In diesem Howto wird immer von den selben Verzeichnissen gesprochen. In den weiteren Beispielen gehen wir davon aus, dass der User &#039;&#039;&#039;&#039;&#039;tux&#039;&#039;&#039;&#039;&#039; heist und unser Rechner &#039;&#039;&#039;&#039;&#039;linuxrechner&#039;&#039;&#039;&#039;&#039;. Natürlich könnt ihr auch eure eigenen Namen vergeben ;-)&lt;br /&gt;
== Ein paar Verzeichnisse anlegen ( tuxbox-cvs, dbox2, etc) ==&lt;br /&gt;
&lt;br /&gt;
 sb@build:# mkdir /tuxbox-cvs&lt;br /&gt;
 sb@build:# mkdir /dbox2&lt;br /&gt;
&lt;br /&gt;
==Auschecken und Konfigurieren==&lt;br /&gt;
solltet ihr einen proxy vorgeschaltet haben ist folgendes in eurer Shell einzugeben:&lt;br /&gt;
&lt;br /&gt;
mit vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export http_proxy=&amp;quot;eure_proxy_ip_:_port&amp;quot;&lt;br /&gt;
Bei einigen Distributionen wie z.B. SuSE braucht man den Proxy nicht extra anzugeben, wenn er unter Yast schon angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
ohne vorgeschaltetem Proxy:&lt;br /&gt;
 sb@build:# export CVS_RSH=ssh&lt;br /&gt;
 sb@build:# cd /tuxbox-cvs&lt;br /&gt;
 sb@build:# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .&lt;br /&gt;
hier währe die günstige Gelegenheit ein &amp;quot;Backup&amp;quot; von CVS zu machen, siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_erstellen]]&lt;br /&gt;
 sb@build:# cd cdk&lt;br /&gt;
 sb@build:# ./autogen.sh&lt;br /&gt;
 sb@build:# ./configure --prefix=/dbox2 --with-cvsdir=/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash&lt;br /&gt;
&lt;br /&gt;
==Tarball erstellen==&lt;br /&gt;
Bevor man jetzt irgendwas anderes tut, sollt man sich erstmal einen Tarball von den ganzen runtergeladenen Daten erstellen. Warum ? Falls man beim Editieren irgendwelcher Dateien Mist gebaut hat, muss man dann nicht mehr neu auschecken.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
 sb@build:# tar -cvf tuxbox-cvs_backup.tar ./tuxbox-cvs ./dbox2&lt;br /&gt;
Das &amp;quot;./&amp;quot; sollte man jeweils mit eingeben, damit man den Tarball später an einem anderen Ort/Rechner problemlos entpacken kann.&lt;br /&gt;
Der Dateiname des .tar-Files kann frei gewählt werden. Es ist zu empfehlen, im Dateiname noch das Datum mit hinzuzufügen. ZB. &#039;&#039;tuxbox-cvs_backup_200600912.tar&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tarball wiederherstellen==&lt;br /&gt;
Damit werden die bestehenden Dateien wieder überschrieben.&lt;br /&gt;
 sb@build:# cd /&lt;br /&gt;
oder&lt;br /&gt;
 sb@build:# cd /wohin/auch/immer&lt;br /&gt;
&lt;br /&gt;
 sb@build:# tar xvf tuxbox-cvs_backup.tar&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Letzte Chance noch manuell ins Geschehen einzugreifen&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Vor-Überlegung: Welche(s) FileSystem(e) nehmen?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Das, was alles später ins Image soll, ist bis zu 20MB gross. Aber wir haben nur 8MB zur Verfügung. Deshalb gibt es Komprimierung. Die Filesysteme, die sich am stärksten komprimieren lassen, sind leider nicht beschreibbar. &lt;br /&gt;
&lt;br /&gt;
== Wo liegen die Vor- und Nachteile der Filesysteme? ==&lt;br /&gt;
&lt;br /&gt;
Die beiden am-besten-komprimierbaren Filesysteme sind CRamFS und SquashFS. &lt;br /&gt;
# SquashFS mit LZMA-Unterstützung ist der Platzhirsch im wahrsten Sinne des Wortes. Aber nur-lesbar. LZMA gibts aber nicht im Tuxbox-cvs. Das muss man sich selber reinpatchen. Weiterer Nachteil: Die DBox2 bootet langsamer, und alles wirkt etwas &amp;quot;hakelig&amp;quot;, da der kleine Prozessor viel zu ackern hat, die Daten zu entkomprimieren. Auf der Dreambox, Triple-Dragon, usw. merkt man es nicht.&lt;br /&gt;
# SquashFS ist das gängigste FS. Der Betrieb unter der DBox2 ist dann auch akzeptabel. Aber nur-lesbar.&lt;br /&gt;
# CramFS war früher das gängigste FS, und wird auch heute noch viel für die Dreambox benutzt. Aber nur-lesbar.&lt;br /&gt;
# JFFS2 ist das Filesystem, welches auch beschreibbar ist. Somit ist es der Gewinner unter allen Filesystemen, und man kann sich auch ein JFFS2-Only-Image bauen. Aber obwohl es zusätzlich noch eine &#039;&#039;Realtime-Compress-Engine&#039;&#039; besitzt, komprimiert es am schlechtesten. So ca. 14MB bekommt man ins JFFS2-Only rein.&lt;br /&gt;
&lt;br /&gt;
Am besten ist also ein Mischsystem. Eine Partition für die &amp;quot;grossen Brocken&amp;quot;, die man eh nie ändert, und eine Partition mit JFFS2. Wenn man vor dem partitionieren noch eine Menge nicht-unbedingt-benötigter Sachen rausschmeisst (Spiele, ungenutzte Skins, Hintergrundbilder, usw.), kann man (zB.) die SquashFS-Partition kleiner ausfallen lassen. Dadurch kann man ein grösseres JFFS2 als zweite Partition anhängen.&lt;br /&gt;
&lt;br /&gt;
Wenn man meint, ein gutes Gleichgewicht zwischen beiden Partitionen gefunden zu haben, muss dazu der Kernel, und das U-Boot angepasst werden. Da kommt man auf keinen Fall drumrum. Es sei denn, man ist mit &#039;&#039;Default-Einstellungen&#039;&#039; im CVS zufrieden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jetzt wird gepatcht ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel + U-Boot: JFFS2-Only ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS ===&lt;br /&gt;
=== Kernel + U-Boot: SquashFS-LZMA ===&lt;br /&gt;
=== Kernel + U-Boot: CramFS ===&lt;br /&gt;
=== Busybox ===&lt;br /&gt;
&lt;br /&gt;
== camd2 für Premiereempfang patchen ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;&amp;quot;make all&amp;quot; - Jetzt gehts los&#039;&#039;&#039; =&lt;br /&gt;
== Was ist ein YADD, und was gibt man hier ein? ==&lt;br /&gt;
== Was gibt man für ein Flash-Image ein? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Welche GUI nehmen (neutrino/enigma)?&#039;&#039;&#039; =&lt;br /&gt;
== make neutrino, make neutrino-all, make neutrino-flash-all, make enigma, make enigma-all, make enigma-flash-all, etc... Was denn jetzt? ==&lt;br /&gt;
== Ok, fertig... was nun ? ==&lt;br /&gt;
=== Neutrino: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Enigma: Folgende Sachen noch Patchen, Kopieren in /cdkflash, Ucodes, folgende Verzeichnisse noch anlegen, blaaa ===&lt;br /&gt;
=== Sonstiges: Lcars, make extra, plugins, blubb ===&lt;br /&gt;
== rcS, fstab, Ethernet-Files- und Configs ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Auf der Fehlersuche&#039;&#039;&#039; =&lt;br /&gt;
== Erste Hilfe... ==&lt;br /&gt;
== Der Trick mit dem &amp;quot;touch xyz&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
== Alles nochmal überprüfen (prerequisiten, Rechte?, mklibs?, usw) ===&lt;br /&gt;
== make distclean &amp;lt;-- (oder wie heisst das nochmal?) ==&lt;br /&gt;
== Neu compilieren, ohne nochmal den Crosscompiler &amp;amp; Co neu erstellen lassen zu müssen ==&lt;br /&gt;
== Zuvor erstellten Tarball nutzen, um was ver-sau-beuteltes nochmal neu zu starten ==&lt;br /&gt;
(Sourcen überkopieren; Datums/Zeit-Problematik bei Files)&lt;br /&gt;
&lt;br /&gt;
siehe [[HowTo_-_Vom_Auschecken_bis_zum_Image#Tarball_wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Image erstellen / Yadd erstellen&#039;&#039;&#039; =&lt;br /&gt;
== uboot/ppcboot und FLFS! Was ist das? Wohin damit? Woher nehmen? ==&lt;br /&gt;
== Image erstellen mkfs.jffs2 -be blaaa.. oder mksquashfs blaaa ==&lt;br /&gt;
== Yadd erstellen (was muss wohin, welches Programm nehmen, etc.) ==&lt;br /&gt;
== Nebs neutrino auch ein enigma Image erstellen lassen (ohne nochmal alles neu starten lassen zu müssen) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Flashen!&#039;&#039;&#039; =&lt;br /&gt;
== Die Expertentools ==&lt;br /&gt;
== Der DBox2-Bootmanager ==&lt;br /&gt;
== Flashen ohne Bootmanager ==&lt;br /&gt;
== Flashen vom Linux aus ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Ich will nachträglich was im Source ändern, und zB. Neutrino neu compilieren&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Einfach im Source rumtippen. Anschliessen zurück zu &#039;&#039;/tuxbox-cvs/cdk&#039;&#039; wechseln, und zB. &#039;&#039;make neutrino&#039;&#039; eingeben. &lt;br /&gt;
Aber evtl. hat man ja nicht nur die Neutrino-Sourcen geändert. Dann könnte man auch &#039;&#039;make all&#039;&#039; eintippen. Ein &#039;&#039;make all&#039;&#039; ist aber nur zu empfehlen, wenn man ganz zu Anfang (nach dem auschecken und dem autogen und dem configure) auch &#039;&#039;make all&#039;&#039; angebenen hatte. Wenn nicht, dann wird der ganze Rest des CVS-Standes compiliert, der bis dato noch nicht compiliert wurde, und der in den makefiles der ersten Ebene enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doch was ist da los? Es tut sich nichts.&#039;&#039;&#039; Im Log steht, es gäbe nichts zu tun. Tja, es muss noch das .dep-File gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein .dep-File? ==&lt;br /&gt;
&lt;br /&gt;
Ein depfile ist ein Indikator, der dem CDK vermittelt, das eine bestimmte Sache erledigt ist. Ist es vorhanden, denkt das CDK, es gäbe nichts zu tun, auch wenn inzwischen Sourcen geändert wurden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HEAD:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel liegt das .dep-File von Neutrino unter &#039;&#039;/home/tuxbox-verzeichnis/cdk/.deps/&#039;&#039;&lt;br /&gt;
Entweder man wechselt in das Verzeichnis hinein, tippt &#039;&#039;rm neutrino&#039;&#039; ein, wechselt wieder mit &#039;&#039;cd ..&#039;&#039; zurück, und gibt seine make Anweisung erneut ein, oder man tippt gleich &#039;&#039;rm -f .deps/neutrino&#039;&#039; ein, gefolgt von der make Anweisung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox-Branch:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn man für die Dreambox ausgecheckt hat, findet man das &#039;&#039;.deps&#039;&#039; Verzeichnis nicht. Die .deps liegen direkt im &#039;&#039;/home/tuxbox-verzeichnis/cdk/&#039;&#039; Verzeichnis, und haben den Punkt vorne am Dateinamen. Hier wäre vor der make Anweisung &#039;&#039;rm -f .neutrino&#039;&#039; einzugeben.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;diff&#039;&#039; ? ==&lt;br /&gt;
&lt;br /&gt;
Zunächst einmal zur Abkürzung: &#039;&#039;diff&#039;&#039; steht für &#039;&#039;difference&#039;&#039;, also Unterschied. Ein diff-File ist also eine Unterschieds-Datei.&lt;br /&gt;
Will man eine Source editieren, empfiehlt es sich immer ein Backup zu machen. Wer zB. an der &#039;&#039;enigma_main.cpp&#039;&#039; editiert, tippt zuvor noch ein:&lt;br /&gt;
 sb@build:# cp enigma_main.cpp enigma_main_orig.cpp&lt;br /&gt;
Somit ist der Originalzustand gesichert, und es kann angstfrei editiert werden.&lt;br /&gt;
 &lt;br /&gt;
Wenn man fertig ist, möchte man evtl. noch nur die Änderungen zwischen dem neuen- und dem alten Stand der Source sehen. Dazu gibt man ein: &lt;br /&gt;
 sb@build:# diff -Naur enigma_main_orig.cpp enigma_main.cpp &amp;gt; enigma_main.cpp.diff&lt;br /&gt;
Fertig ist das diff-File.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Patch ?==&lt;br /&gt;
&lt;br /&gt;
Genau das Gegenteil vom &#039;&#039;diffen&#039;&#039;. Zuvor haben wir gedifft. Jetzt wollen wir patchen. Nehmen wir an, es wurde gerade ganz frisch das CVS neu ausgecheckt, und die Datei &#039;&#039;enigma_main.cpp&#039;&#039; ist noch im Originalzustand. Nun kopiert man das &#039;&#039;enigma_main.cpp.diff&#039;&#039; in dasselbe Verzeichnis, und tippt ein:&lt;br /&gt;
 sb@build:# patch -p0 -b enigma_main.cpp enigma_main.cpp.diff&lt;br /&gt;
Der Parameter &#039;&#039;-b&#039;&#039; gibt an, dass noch ein Backup erstellt werden soll.&lt;br /&gt;
&lt;br /&gt;
== Datums/Uhrzeit-Problematik von Sourcen ==&lt;br /&gt;
Zum Zweck, falls man eine Source versehentlich &#039;&#039;kaputtrepariert&#039;&#039; hat, haben wir uns ja zuvor ein Backupfile angelegt. Dieses besitzt grundsätzlich ein älteres Datum. Wir wollen den Originalzustand wiederhaben, und denken wir sind schlau, überschreiben enigma_main.cpp mit dem Originalfile, und compilieren nochmal. &lt;br /&gt;
Dann stellen wir fest, dass der &#039;&#039;kaputtreparierte&#039;&#039; Stand compiliert wurde. Wieso das?&lt;br /&gt;
&lt;br /&gt;
Der Compiler denkt, dass die Source nix neues zu bieten hat, weil sie älteren Datums ist. In diesem Fall einfach&lt;br /&gt;
 touch enigma_main.cpp&lt;br /&gt;
und die Datei hat ein neues Datum bekommen.&lt;br /&gt;
&lt;br /&gt;
== Makefiles.. Wat ist dat und wie sind die aufgebaut? Was muss man beachten? ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Links&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Tuxbox-Plattform: http://tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
CVS-Server: http://cvs.tuxbox.org/ &amp;lt;br&amp;gt;&lt;br /&gt;
Mailing-List: http://cvs.tuxbox.org/lists/ &amp;lt;br&amp;gt;&lt;br /&gt;
TuxboxWIKI: http://wiki.tuxbox.org/Hauptseite &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Credits&#039;&#039;&#039; =&lt;br /&gt;
Admin&amp;lt;br&amp;gt;&lt;br /&gt;
horsti666&amp;lt;br&amp;gt;&lt;br /&gt;
limette&amp;lt;br&amp;gt;&lt;br /&gt;
martie&amp;lt;br&amp;gt;&lt;br /&gt;
Nessus&amp;lt;br&amp;gt;&lt;br /&gt;
...und ein paar Unbekannte, die nicht den Anmelden-Knopf gefunden haben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viel Spass beim Image-Bau&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=Camd3&amp;diff=1683</id>
		<title>Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=Camd3&amp;diff=1683"/>
		<updated>2006-10-24T23:36:30Z</updated>

		<summary type="html">&lt;p&gt;Limette: Camd3 wurde nach HowTo - Anleitung Camd3 verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[HowTo - Anleitung Camd3]]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1682</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1682"/>
		<updated>2006-10-24T23:36:30Z</updated>

		<summary type="html">&lt;p&gt;Limette: Camd3 wurde nach HowTo - Anleitung Camd3 verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
1. Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
&lt;br /&gt;
2. Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
&lt;br /&gt;
3. Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
&lt;br /&gt;
4. Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
&lt;br /&gt;
5. Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
&lt;br /&gt;
6. Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
&lt;br /&gt;
7. Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
&lt;br /&gt;
8. Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
&lt;br /&gt;
9. Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
&lt;br /&gt;
10. Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1678</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1678"/>
		<updated>2006-10-24T23:06:17Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Top 10 der Fehler, die gemacht werden... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
1. Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
&lt;br /&gt;
2. Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
&lt;br /&gt;
3. Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
&lt;br /&gt;
4. Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
&lt;br /&gt;
5. Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
&lt;br /&gt;
6. Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
&lt;br /&gt;
7. Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
&lt;br /&gt;
8. Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
&lt;br /&gt;
9. Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
&lt;br /&gt;
10. Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1677</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1677"/>
		<updated>2006-10-24T23:02:04Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1676</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1676"/>
		<updated>2006-10-24T23:01:36Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1675</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1675"/>
		<updated>2006-10-24T23:00:01Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1674</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1674"/>
		<updated>2006-10-24T22:58:21Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1673</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1673"/>
		<updated>2006-10-24T22:57:05Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
 Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
 Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1672</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1672"/>
		<updated>2006-10-24T22:55:11Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
 Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039;&lt;br /&gt;
 Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039;&lt;br /&gt;
 Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;&lt;br /&gt;
 camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;&lt;br /&gt;
 Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
 Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
 Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1671</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1671"/>
		<updated>2006-10-24T22:53:41Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1670</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1670"/>
		<updated>2006-10-24T22:50:35Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Konfiguration der camd3&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
==  Konfigdateien/Localhost/etc. ==&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
=== camd3.config ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet Boxtyp ? ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der UDP / TCP Port ? ===&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
=== Für was ist der Logeintrag ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_HOST ? ===&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutete LOG_PORT ? ===&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet LOG_FILE ? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedeutung der Log-Ausgaben: ===&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
=== Was bedeuten die Pfad angaben? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
=== Was bedeutet DNS cache in Sekunden? ===&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Was ist der Multichannel mode ? ===&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Welcher slot steht für was? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
=== Warum liest die camd3 meine Original Karte nicht? ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Was ist das Kommando D0,D2 bzw. D3? ===&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
=== Wie blocke ich um z.B. mein Abo zu verlängern? ===&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
=== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?===&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
=== camd3.keys ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
=== camd3.servers ===&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
=== camd3.users ===&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Datei ===&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1669</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1669"/>
		<updated>2006-10-24T22:43:42Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
# Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
# Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
# Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
# Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
# Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
 rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1668</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1668"/>
		<updated>2006-10-24T22:38:04Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
- Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
- Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
- Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
- Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
- Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1667</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1667"/>
		<updated>2006-10-24T22:37:37Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
- Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
- Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
- Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
- Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
- Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image =&lt;br /&gt;
&lt;br /&gt;
Wichtig!! Denkt immer daran, vorher eine Sicherung eures kompl. Images zu machen, falls mal was daneben geht !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Programm hat zwar einen Fehler, aber wenn man weiss wie man damit umgehen muss, funzt es einwandfrei !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auslesen des Cramfs-Bereiches&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter der DBox selbst: Cramfs auslesen per Service/Software Aktualisierung/Experten Funktion, via FTP aus /tmp der Box auf den PC holen...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
dannach erhält man eine Auflistung die so ähnlich aussehen könnte !!&lt;br /&gt;
&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 006e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd5: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nun wechseln wir nach /tmp mit&lt;br /&gt;
&lt;br /&gt;
 cd /tmp&lt;br /&gt;
&lt;br /&gt;
Ist das Cramfs nun zb. ein mtd2 wie im beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dann das Cramfs mit New-Tux-Flash-Tools öffnen, und mal Platz machen... Z.B. alle Spiele raus; danach kann man ohne Prob. den ganzen Ordner \share\tuxbox\sokoban löschen unter \share\fonts md_khmurabi_10.ttf löschen die braucht niemand. Ausserdem kann man z.B. die Sprachunterstüzungen bis auf Deutsch rausnehmen. Liegt in \share\tuxbox\neutrino\locale ! Und wenn man eine SAT-DBox2 besitzt, könnte man auch noch in \share\tuxbox die cables.xml löschen. &lt;br /&gt;
&lt;br /&gt;
Nun ist Gelegenheit, weitere Dinge in das Image reinzukopieren... (RECHTE NICHT VERGESSEN) &lt;br /&gt;
Z.B. camd36xx umbenennen in camd2 und ab nach /bin ! Rechte nicht vergessen... Plugins einfügen nach /lib/tuxbox/plugins einfügen, wenn´s jemand unbedingt dort haben möchte !!&lt;br /&gt;
&lt;br /&gt;
Jetzt geht man auf Extras/Einstellungen, gibt die IP-Adresse, Com-Port und Passwort der DBox ein, und schließt mit ok ab.&lt;br /&gt;
&lt;br /&gt;
Als nächsten Schritt geht man mit einem Rechtsklick auf der linken Seite auf den Cramfs-Heimordner, und klickt auf &amp;quot;Filesystem zur box uploaden&amp;quot; !!!&lt;br /&gt;
&lt;br /&gt;
Nun befindet sich das soeben geänderte Cramfs in /var/tmp Eurer DBox (als cramfs.img), und kann wieder bequem per&lt;br /&gt;
Expertenfunktion in die Box geflasht werden !!! &lt;br /&gt;
(Service/Software Aktualisierung/Experten Funktion/Einzelne Partition einspielen/cramfs)&lt;br /&gt;
&lt;br /&gt;
Man sollte drauf achten, dass man unter 4950 kB bleibt  !!&lt;br /&gt;
&lt;br /&gt;
wenn das neue cramfs mal über 4950 kb hat und nach dem flashen kein system kommt nehmt einfach bei einer sat box die zuvor beschriebene cables.xml aus dem cramfs raus bzw bei einer Kabel Box umgekehrt und dann funzt es auch wieder man muss oft nur eine ganz geringfügige änderung am cramfs vornehmen  und es kommt keine fehlermeldung wie zb kein system zu!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (ppcboot)&amp;quot;&lt;br /&gt;
 mtd2: 003e0000 00020000 &amp;quot;root (cramfs)&amp;quot;&lt;br /&gt;
 mtd3: 00300000 00020000 &amp;quot;emu (jffs2)&amp;quot;&lt;br /&gt;
 mtd4: 000e0000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Cramfs-Bereich im mtd2, und die Grösse ist $3e0000, bzw. 4063232 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(cramfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. &lt;br /&gt;
&lt;br /&gt;
Als nächstes holt Ihr Euch mit der DBox selber den Bereich root(cramfs) auf den Linux-PC. Dazu geht Ihr in Menü/Service/Software-Aktualisierung/Experten-Funktion/einzelne Partition auslesen und wählt root(cramfs). Das erstellt ein File in /tmp der Box namens &amp;quot;mtd2.img&amp;quot;; dieses holt Ihr Euch mittles FTP auf Euren Linux-PC !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;|-----&amp;gt; Alternative:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Via telnet/putty mit der DBox verbinden... Ist das Cramfs nun ein mtd2 wie im Beispiel oben, dann folgendes eingeben&lt;br /&gt;
&lt;br /&gt;
 cat /dev/mtd/2 &amp;gt; /var/tmp/mtd2.img            &lt;br /&gt;
&lt;br /&gt;
Nun liegt das Cramfs mit Namen mtd2.img in /tmp der DBox und kann per FTP auf eurem Computer kopiert werden !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;-----|&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
 cd test&lt;br /&gt;
&lt;br /&gt;
Nun haben wir ein Verzeichnis &amp;quot;test&amp;quot; angelegt, und dort kopieren wir das &amp;quot;mtd2.img&amp;quot; rein, sowie die beiden beiliegenden Files &amp;quot;cramfsck&amp;quot; und &amp;quot;mkcramfs&amp;quot; ! Dann müssen wir den beiden Files noch Ausführ-Rechte vergeben. Eingabe&lt;br /&gt;
&lt;br /&gt;
 chmod +x cramfsck&lt;br /&gt;
 chmod +x mkcramfs&lt;br /&gt;
&lt;br /&gt;
Nun enpacken wir das &amp;quot;mtd2.img&amp;quot; mit cramfsck... Eingabe&lt;br /&gt;
&lt;br /&gt;
 ./cramfsck -x outpacked mtd2.img&lt;br /&gt;
&lt;br /&gt;
Da kommt zwar häufig ein &amp;quot;warning: file extends past end of filesystem&amp;quot;, aber es passiert nix Schlimmes ;)&lt;br /&gt;
Das Verzeichnis &amp;quot;outpacked&amp;quot; muss nicht vorher angelegt werden ! Das übernimmt das Tool cramfsck mit dem Namen als Parameter... Nun nehmt Ihr im Verzeichnis &amp;quot;outpacked&amp;quot; Eure Änderungen vor, und es geht wieder ans ver-cramfs´en ! Folgende Eingabe&lt;br /&gt;
&lt;br /&gt;
 cd $HOME/test&lt;br /&gt;
 ./mkcramfs outpacked new-mtd2.img&lt;br /&gt;
&lt;br /&gt;
Auch hier gibts häufig ein &amp;quot;warning: gids truncated to 8 bits (this may be a security concern)&amp;quot;, aber auch hier passiert nix wirklich schlimmes ;)&lt;br /&gt;
Nun habt Ihr Euer bearbeitetes cramfs, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root(cramfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $3e0000 (4063232 Bytes) gross ! Das von der DBox geholte mtd2.img hat auch eben diese Grösse. Macht man &#039;&#039;&#039; &#039;&#039;ohne Änderung&#039;&#039; &#039;&#039;&#039; gleich wieder ein cramfs draus, dann ist es kleiner ! Warum ? Weil zuvor das ganze Device ausgelesen wurde, auch wenn der beschriebene Datenteil ein kleinerer ist ! Das eben erstellte new-mtd2.img darf &#039;&#039; &#039;&#039;&#039;nicht grösser&#039;&#039;&#039; &#039;&#039; als die obige Byte-Angabe sein. Es darf aber &#039;&#039; &#039;&#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer new-mtd2.img z.B. dann 3854336 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 208896 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 4063232 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als erstes bootet Ihr mal Euren Linux-PC und startet eine Konsole. Dann gebt Ihr mal &amp;quot;mksquashfs&amp;quot; ein. Wenn da ein Error kommt, beendet Ihr die Konsole, loggt Euch als root ein und kopiert das beiliegende &amp;quot;mksquashfs&amp;quot; in /usr/bin/ Eures Linux-PCs ! Durch Eingabe von&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 chmod +x /usr/bin/mksquashfs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;vergebt Ihr die Rechte zum Ausführen. Von nun an ist Eurem Linux-PC der Befehl sowohl als root, als auch als user bekannt. Nun loggt Ihr Euch wieder als user in Euren Linux-PC ein...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verbindung mit telnet/putty zur DBox herstellen; folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Könnte dann z.B. sowas kommen...&lt;br /&gt;
&lt;br /&gt;
 dev:    size   erasesize  name&lt;br /&gt;
 mtd0: 00020000 00004000 &amp;quot;BR bootloader&amp;quot;&lt;br /&gt;
 mtd1: 00020000 00020000 &amp;quot;flfs (u-boot)&amp;quot;&lt;br /&gt;
 mtd2: 000a0000 00020000 &amp;quot;kernel (jffs2)&amp;quot;&lt;br /&gt;
 mtd3: 005c0000 00020000 &amp;quot;root (squashfs)&amp;quot;&lt;br /&gt;
 mtd4: 00160000 00020000 &amp;quot;var (jffs2)&amp;quot;&lt;br /&gt;
 mtd5: 007e0000 00020000 &amp;quot;flash without bootloader&amp;quot;&lt;br /&gt;
 mtd6: 00800000 00020000 &amp;quot;complete flash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hier liegt der Squash-Bereich im mtd3, und die Grösse ist $5c0000, bzw. 6029312 Bytes. Diese Info brauchen wir ! Die folgende Anleitung bezieht sich mal auf dieses Beispiel ! Wenn das root(squashfs) bei Euch in einem anderen Bereich liegt und eine andere Grösse hat, müsst Ihr entsprechend handeln. Als nächstes folgendes eingeben...&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Damit wird erst einmal ein Verzeichniss Namens root in /var/tmp erstellt... Danach folgende Eingabe...&lt;br /&gt;
&lt;br /&gt;
 mount -t squashfs -o ro /dev/mtdblock/3 /var/tmp/root&lt;br /&gt;
&lt;br /&gt;
Wenn alles exakt eingetippt wurde, wurde nun der Inhalt vom Squash-Bereich in das Verzeichniss /var/tmp/root gemountet ! Ins Verzeichnis /var/tmp wechseln. Eingabe...&lt;br /&gt;
&lt;br /&gt;
 cd /var/tmp &amp;lt;&amp;lt;--- genau *so* eingeben; NICHT in /var/tmp/root wechseln !!!&lt;br /&gt;
&lt;br /&gt;
Nun muss das Ganze &amp;quot;getart&amp;quot; werden, damit die Rechte und Symlinks nicht futsch gehen. Eingabe... &lt;br /&gt;
&lt;br /&gt;
 tar -cf root.tar root&lt;br /&gt;
&lt;br /&gt;
Nun liegt das getarte File unter /var/tmp/ und lautet root.tar. Das kann durchaus 15 Megabytes gross sein, denn das Squash-Filesystem ist ja ein Komprimierendes, und nun liegt es unkompimiert, aber ge-tart da ! Via FTP auf den Linux-PC holen... Nun könnt Ihr das root.tar unter /var/tmp wieder löschen und durch Eingabe von &amp;quot;umount /var/tmp/root&amp;quot; das Mount des Squash-Bereiches wieder un-mounten und mit &amp;quot;rm -f /var/tmp/root&amp;quot; das Verzeichnis wieder löschen... Ihr braucht ja für später wieder etwas RAM-Platz !&lt;br /&gt;
&lt;br /&gt;
Weiter geht´s auf dem &#039;&#039;&#039;Linux-PC&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Konsole öffnen... Eingabe:&lt;br /&gt;
&lt;br /&gt;
 cd $HOME&lt;br /&gt;
 mkdir test&lt;br /&gt;
&lt;br /&gt;
Das eben von der DBox2 runtergeladene root.tar in $HOME/test kopieren; dann weiter...&lt;br /&gt;
&lt;br /&gt;
 cd /test&lt;br /&gt;
 tar -xf root.tar&lt;br /&gt;
&lt;br /&gt;
Hiermit wurde es wieder ent-tart. Nun alle Änderungen in $HOME/test/root/.. vornehmen...&lt;br /&gt;
Wenn Ihr damit fertig seid, geht Ihr mit &amp;quot;cd $HOME/test&amp;quot; wieder in die Ebene zurück in der sich das /root als Verzeichnis befindet ! Zum wieder ver-squashen gebt Ihr folgendes ein:&lt;br /&gt;
&lt;br /&gt;
 fakeroot mksquashfs root mtd3.img -be&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Probleme mit dem Befehl &amp;quot;fakeroot&amp;quot; haben solltet, dann loggt Euch halt von Anfang an als root in Eurem Linux-PC ein, und die Befehlszeile lautet dann &amp;quot;mksquashfs root mtd3.img -be&amp;quot;... Übrigens steht &amp;quot;-be&amp;quot; für Big-Endian. Nun habt Ihr das root-Image im Squash-Format, welches Ihr dann mittels FTP wieder in die DBox in /tmp uppen und mit den Expertentools einspielen könnt.&lt;br /&gt;
(Service/Software-Aktualisierung/Experten-Funktion/Einzelne Partition einspielen/root (squashfs))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Wie wir vorhin gesehen haben, ist der reservierte Platz im Image $5c0000 (6029312 Bytes) gross ! Das eben erstellte mtd3.img darf &#039;&#039;&#039; &#039;&#039;nicht grösser&#039;&#039; &#039;&#039;&#039; als diese Byte-Angabe sein. Es darf aber &#039;&#039;&#039; &#039;&#039;durchaus&#039;&#039; &#039;&#039;&#039; kleiner sein !!!! Dann ist halt ein bisschen &amp;quot;luftleerer, ungenutzter&amp;quot; Raum im Image... Ist Euer mtd3.img z.B. dann 5779456 Bytes gross, so ist ein &amp;quot;Loch&amp;quot; von 249856 Bytes im Image... Dieses Loch kann nicht genutzt werden, aber es passiert auch nix Schlimmes; will sagen: es &#039;&#039;&#039; &#039;&#039;muss nicht&#039;&#039; &#039;&#039;&#039; 6029312 Bytes gross sein !!!! Ihr habt also alles richtig gemacht...&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1666</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1666"/>
		<updated>2006-10-24T22:14:42Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Einbau/Update der camd3 ins DBox2-Image&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. ;)  Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie eben schon beschrieben, haben einige Image-Ersteller schon eine &amp;quot;Schnittstelle&amp;quot; zum Laden einer Alternativen camd[B]X[/B] eingebaut. Schauen wir uns die &amp;quot;start_neutrino&amp;quot; einiger Images mal an...&lt;br /&gt;
&lt;br /&gt;
AlexW-Image (1.7.1)&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Yadi-Image&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 sectionsd&lt;br /&gt;
 timerd&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
JackTheGrabber-Image (JTG)&lt;br /&gt;
 fi; &lt;br /&gt;
 /bin/sectionsd&lt;br /&gt;
 /bin/timerd&lt;br /&gt;
 /bin/zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
 fi;&lt;br /&gt;
 fi;&lt;br /&gt;
&lt;br /&gt;
Bits4Fun-Image&lt;br /&gt;
 zapit&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
 chmod +x /var/bin/camd2&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Das sind jeweils nur ausgeschnittene Teile der start_neutrino... Wie man sieht, wiederholt sich ein Teil dessen in vielen Images... Nehmen wir´s mal unter die Lupe:&lt;br /&gt;
&lt;br /&gt;
Auszug der start_neutrino:&lt;br /&gt;
 if [ -x /var/bin/camd2 ]; then&lt;br /&gt;
 /var/bin/camd2&lt;br /&gt;
 else&lt;br /&gt;
 if [ -e /var/bin/camd2 ]; then&lt;br /&gt;
  chmod +x /var/bin/camd2&lt;br /&gt;
  /var/bin/camd2&lt;br /&gt;
&lt;br /&gt;
Es wird nach einer camd2 im beschreibbaren Teil /var/bin gesucht und wenn eine gefunden wurde, werden die Rechte zum Ausführen vergeben, sofern nicht schon erfolgt; dann wird gestartet !!&lt;br /&gt;
&lt;br /&gt;
 else&lt;br /&gt;
  /bin/camd2&lt;br /&gt;
&lt;br /&gt;
Wenn keine gefunden wird, wird die orginale camd2 aus /bin gestartet (die jedoch ohne Tüfteleien ohne Premiere-Support daherkommt) !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALLES WAS WIR ALSO NUN MACHEN MÜSSEN, IST DIE CAMD3 IN CAMD2 UMZUBENENNEN UND AN DIE STELLE IM /VAR BEREICH ZU SCHIEBEN, WIE ES IN DER START_NEUTRINO DEKLARIERT WURDE!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... Jene kopiert Ihr dann via FTP nach /var/bin der DBox ! Nun muss sie nur noch umbenannt werden... Zuvor muss aber die laufende camd (sei es die camd2, oder die camd3, oder die in camd2 umbenannte camd3) &#039;&#039;&#039;abgeschossen werden&#039;&#039;&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd2 (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd2 aus dem RAM gelöscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Als nächstes müsst Ihr das Verzeichnis /var/bin anlegen (falls das Verzeichnis noch nicht existiert)... Der ganze Vorgang incl. /var/bin erstellen hier im Detail...&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039; Via FTP unter /var das Verzeichnis /bin erstellen. Nun in das Verzeichniss /var/bin wechseln und die camd3630 dort reinkopieren; danach in camd2 umbenennen !&lt;br /&gt;
&#039;&#039;&#039;Linux-&amp;quot;mc&amp;quot;:&#039;&#039;&#039; Mit TAB auf die &amp;quot;DBox2-Seite&amp;quot; wechseln, in /var wechseln, F7 drücken, &amp;quot;bin&amp;quot; eingeben (erstellt /var/bin), in /var/bin gehen, mit TAB auf die Festplattenseite gehen, F5 drücken (kopiert die camd3630 in /var/bin), mit TAB wieder auf die DBox-Seite wechseln, den Cursor auf camd3630 legen, F6 drücken und eingeben &amp;quot;camd2&amp;quot;+ ENTER (benennt die camd3 um)&lt;br /&gt;
&#039;&#039;&#039;Telnet/Putty:&#039;&#039;&#039; Eingabe &amp;quot;cd /var&amp;quot;, dann &amp;quot;mkdir bin&amp;quot;, dann mit FTP die camd3630 in /var/bin uppen, dann wieder unter Telnet/Putty Eingabe (unter /var/bin) &amp;quot;mv camd3606 camd2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Natürlich könnt Ihr diese camd3630 auch *gleich* in camd2 umbenennen und nach /var/bin kopieren; das spart Zeit. Jeder wie er will...&lt;br /&gt;
&lt;br /&gt;
Jetzt geben wir der &amp;quot;camd2&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039;  camd2 anklicken im Menü oben auf Dateien/Dateiattribute ändern und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschliesen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039;  Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3 liegt. Also &amp;quot;cd /var/bin&amp;quot; und gebt dann &amp;quot;chmod 755 camd2&amp;quot; ein !&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALS NÄCHSTES EDITIERT IHR DIE START_NEUTRINO (ODER START_ENIGMA) SO, DASS DIE WEITER OBEN BESCHRIEBENEN PASSAGEN DRINSTEHEN, FALLS SIE NICHT SOGAR SCHON DRINSTEHEN !!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das Verzeichnis /var/keys anlegen und Konfigs kopieren&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der selben Weise wie wir oben /var/bin angelegt haben, erstellen wir noch /var/keys... Und in der selben Weise, wie wir die camd3 (als camd2) ins Image kopiert haben, kopieren wir die Dateien camd3.config, camd3.keys, camd3.users, camd3.servers in &#039;&#039;&#039;/var/keys&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
Wenn wir mit der camd3 Premiere-Unterstützung durch die Originale Smartcard haben wollen, machen wir folgendes:&lt;br /&gt;
&lt;br /&gt;
Wir öffnen die camd3.config (liegt fast bei jedem camd3-Release von doz21 dabei) unter Windows z.B. mit Ultraedit, oder unter Linux mit dem &amp;quot;mc&amp;quot; mittels F4, und ändern z.B. wie folgt (man könnte durch Telnet/Putty auch direkt innerhalb der DBox2 mittels &amp;quot;vi camd3.config&amp;quot; ändern, aber der vi ist umständlich zu bedienen; wer sich auskennt kann den vi aber nutzen ):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(ACHTUNG ! NICHT MIT NOTEPAD ODER WORD, ETC. EDITIEREN)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Bei den meisten Dateien ist das zwar egal, aber in &amp;quot;camd3.users&amp;quot; kann es Probleme mit den Passwörtern geben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Port=24110&lt;br /&gt;
 Osd=1&lt;br /&gt;
 Debug=1&lt;br /&gt;
 Slot0_Start=0&lt;br /&gt;
 Slot1_Start=0&lt;br /&gt;
 Slot2_Start=0&lt;br /&gt;
 Slot3_Start=1&lt;br /&gt;
 Slot0_AU_G=0&lt;br /&gt;
 Slot0_AU_S=0&lt;br /&gt;
 Slot0_AU_U=0&lt;br /&gt;
 Slot1_AU_G=0&lt;br /&gt;
 Slot1_AU_S=0&lt;br /&gt;
 Slot1_AU_U=0&lt;br /&gt;
 Slot3_AU_A=1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows:&#039;&#039;&#039;  Unter Ultraedit auf Konvertieren/DOS auf Unix gehen und abspeichern !&lt;br /&gt;
&#039;&#039;&#039;Linux:&#039;&#039;&#039;  Beim &amp;quot;mc&amp;quot; einfach 2x Escape drücken und die Nachfrage zum Abspeichern mit &amp;quot;Ja&amp;quot; quittieren ! Bei anderen Editoren (z.B. unter KDE) halt eben abspeichern; ein Konvert DOS/Unix nicht erforderlich !&lt;br /&gt;
&lt;br /&gt;
Die Dateirechte müssen Lesezugriff haben. Können auf 644 bleiben (also nicht-ausführbar) !&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
&lt;br /&gt;
Da sich ab- und an mal bei den Files was ändert, sollte man in dem entsprechenden Thread von doz21 mal nachlesen, bzw. die meist bei Änderungen von doz21 beiliegenden Beispieldateien mit denen im Image vergleichen... &amp;quot;Hell&amp;quot; wirds natürlich nur mit korrekten Konfigs und korrekten Keys... Genauer wird das unter Punkt 4. erklärt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
&lt;br /&gt;
Da wir ja vorhin die laufende camd &amp;quot;abgeschossen&amp;quot; haben, werden wir nun mal einen ersten Test der camd3 mittels Telnet/Putty starten:&lt;br /&gt;
&lt;br /&gt;
Einfach (in unserem Beispiel) /var/bin/camd2 eingeben... danach sollte so ein ähnlicher Log erscheinen/kommen...&lt;br /&gt;
 &lt;br /&gt;
 [camd]: Slot0: deaktiviert&lt;br /&gt;
 [camd]: Slot1: deaktiviert&lt;br /&gt;
 [camd]: Slot2: deaktiviert&lt;br /&gt;
 [camd]: Slot3: aktiviert&lt;br /&gt;
 [camd]: OSD aktiviert&lt;br /&gt;
 [camd]: DEBUG aktiviert (mit Verbindungsinformationen)&lt;br /&gt;
 [camd]: UserDB: USER=benutzer1 PASS=password1 CAIDs=Alle&lt;br /&gt;
 [camd]: /var/keys/camd3.servers: HOST=192.168.0.7 PORT=24110 : alle CAIDs&lt;br /&gt;
 [camd]: /var/keys/camd3.users - No such file or directory&lt;br /&gt;
 [camd]: KeyDB: gestartet&lt;br /&gt;
 camd !!!STREAMBOARD!!! v3.606 - erfolgreich gestartet&lt;br /&gt;
&lt;br /&gt;
Wichtig ist die letzte Zeile &amp;quot;.....&#039;&#039;&#039;erfolgreich gestartet&amp;quot; !&#039;&#039;&#039; Wenn die nicht kommen sollte, dann habt Ihr irgendwas falsch gemacht !&lt;br /&gt;
&lt;br /&gt;
Das war es im Groben ! Nun die DBox neu booten... Die orginale Premiere-Karte sollte nun im Originalslot der DBox2 funzen. &lt;br /&gt;
&lt;br /&gt;
In manchen Images (Boxcracker) ist die camd3 unter /emu oder (Zg0re + SB-Image) unter /bin/emu  zu finden und heißt evtl. camd3.bin, oder gar camd3.ppc ! Aber es ist fast immer der gleiche Ablauf ! Symlinks nicht ausser Acht lassen !!!&lt;br /&gt;
&lt;br /&gt;
Wer Plugins benötigt um die camd2 (die umbenannte camd3606) zu starten/beenden findet diese im Anhang !&lt;br /&gt;
Dieses Plugin kann jederzeit umgebaut werden womit zb der start einer camd3 mit den Namen camd3633.bin möglich ist !!&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, in neueren Versionen der camd3 von doz21 die mitgelieferten Dateien camd3.config, camd3.users camd3.keys, camd3.servers anzusehen da sich dort öfters mal was ändert !&lt;br /&gt;
&lt;br /&gt;
=== Einbau der Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_start&#039;&#039;&#039; dient zum Start von camd3. Zusätzlich wird der Treiber &amp;quot;multicam.o&amp;quot; geladen, der für ein Funktionieren eines erweiterten Kartenlesers in der dBox unabdingbar ist.&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;camd3_stop&#039;&#039;&#039; dient dazu, die camd3 ordnungsgemäß zu beenden ohne die Keydatei zu zerstören, wie es aus früheren Versionen bekannt ist. Dazu wird nach Aufruf des &amp;quot;kill&amp;quot;-Befehles für camd3 in einer Schleife gewartet, bis sich der Prozess ordnungsgemäß beendet hat.&lt;br /&gt;
&lt;br /&gt;
Zuerst müsst ihr in den Dateien &amp;quot;camd3_start&amp;quot; und &amp;quot;camd3_stop&amp;quot; (editieren z.B. mit Ultraedit) den Namen eurer Camd korrekt eintragen.&lt;br /&gt;
&lt;br /&gt;
Hier dazu ein Auszug der Datein &amp;quot;camd3_stop&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # Diese Zeile ANPASSEN !!!&lt;br /&gt;
 # Du muss hier den Name von deinem camd eingeben (camd2 oder camd3 oder camd3606 usw.)&lt;br /&gt;
 CAMD_NAME=&amp;quot;camd3&amp;quot;   &amp;lt;---  hier ändern &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&#039;pcamd&#039;&#039;&#039; ist im Gegensatz zu den vorgenannten Scripten ein Binärfile, das ebenfalls für ein korrektes Beenden des &amp;quot;camd3-Prozesses sorgt. Derzeit existiert nur der Aufrufparameter &amp;quot;pcamd -kill&amp;quot;. Es macht Sinn, den Aufruf dieses Programmes in die Start-Datei (&amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot;) einzuarbeiten, damit auf jeden Fall beim Herunterfahren der dBox camd3 ordnungsgemäß beendet wird und nicht die Datei &amp;quot;camd3.keys&amp;quot; zerschossen wird.&lt;br /&gt;
&lt;br /&gt;
Sinnvollerweise wird z.B. in &amp;quot;start_neutrino&amp;quot; der Aufruf &amp;quot;pcamd&amp;quot; vor der Zeile &amp;quot;pzapit -kill&amp;quot; eingefügt.&lt;br /&gt;
Das Ganze sollte dann so z.B. aussehen:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 /bin/neutrino -u -f&lt;br /&gt;
 /bin/pcamd -kill&lt;br /&gt;
 pzapit -kill&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Danach einfach mit einem FTP Programm auf die D-Box einloggen, und in den Ordner &amp;quot;/var/bin&amp;quot; die Dateien &amp;quot;camd3_start&amp;quot;, &amp;quot;camd3_stop&amp;quot; und &amp;quot;pcamd&amp;quot; hineinkopieren, Rechte auf &amp;quot;755&amp;quot; setzen, zuletzt die Dateien &amp;quot;start_neutrino&amp;quot;/&amp;quot;start_enigma&amp;quot; noch anpassen. Siehe dazu auch die Beispieldatei von Doz, die jeder neuen camd3-Version beiliegt.&lt;br /&gt;
Nach dem Neustart der Box sollte das Ganze korrekt laufen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Die Methode ist zwar schön- und gut, aber in vielen Fällen ist nicht genug Platz in dem bei Cramfs- und Squash-Images zur Verfügung gestellten JFSS2-Bereich ! In solch einem Fall bitte hier weiterlesen (verschiedene Varianten):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Bitte unter 4. weiterlesen...&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst schaut man mal nach unter welchem Namen hier nun tatsächlich eure camd3 gestartet wird. Dazu gibt es mehrere Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
- Ihr verbindet Euch mit FTP auf die DBox und sucht in den folgenden Verzeichnissen /var/bin oder /emu nach einer camd3&lt;br /&gt;
- Ihr grast das ganze Image nach einer camd3 ab (aufwendig, aber man lernt gleich ein wenig sein Image kennen)&lt;br /&gt;
- Ihr Schaut Euch das Plugin an mit dem die camd3 neu gestartet wird !!&lt;br /&gt;
- Ihr schaut Euch die start_neutrino an. Meist steht auch da die genaue Bezeichnung und das Verzeichnis !!&lt;br /&gt;
- Ihr gebt unter telnet/putty den Befehl &amp;quot;ps -fe&amp;quot; ein, und werdet fündig !!&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Manchmal ist die camd3 auch verlinkt mittels Symlinks (aufpassen).  Telnet/putty zeigt die Symlinks an mit &amp;quot;ls -la&amp;quot; an !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Angenommen Ihr habt die *brandneue* camd3 aus dem Streamboard runtergeladen, und jene heisst &amp;quot;camd3630&amp;quot;... In Eurem Image heisst die Datei aber &amp;quot;camd3.bin&amp;quot; statt &amp;quot;camd3630&amp;quot; (und liegt in /emu). Kein Problem... wird gleich erklärt...&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Die camd3 ist beliebig umbenennbar !!! Nun zu dem Vorgang im Detail:&lt;br /&gt;
&lt;br /&gt;
Ihr öffnet telnet/putty und gebt folgendes ein:&lt;br /&gt;
&lt;br /&gt;
killall camd3.bin (oder wie auch immer sie bei Euch heisst)&lt;br /&gt;
&lt;br /&gt;
Hierdurch wird die camd3.bin aus dem RAM gelöscht. Danach:&lt;br /&gt;
&lt;br /&gt;
rm /emu/camd3.bin&lt;br /&gt;
&lt;br /&gt;
Hiermit wird die camd3.bin auch aus dem FlashROM in /emu gelöscht !&lt;br /&gt;
&lt;br /&gt;
Nun in das FTP-Programm wechseln und Eure neue &amp;quot;camd3630&amp;quot; nach /emu kopieren und dort in &amp;quot;camd3.bin&amp;quot; umbenennen.&lt;br /&gt;
Grund: Die bestehenden Plugins funzen weiterhin, und die start_neutrino muss nicht geändert werden !!&lt;br /&gt;
&lt;br /&gt;
Jetzt vergeben wir der &amp;quot;neuen camd3&amp;quot; noch die erforderlichen Rechte. Wenn Ihr nach Attributen schaut, steht dort möglicherweise &amp;quot;644&amp;quot; ! Das ändern wir nun auf 755. Geht wie folgt:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows-FTP:&#039;&#039;&#039; camd3.bin anklicken im Menü oben auf Dateien/&amp;quot;Dateiattribute ändern&amp;quot; und überall Häkchen bei &amp;quot;Ausführen&amp;quot; setzen. Mit &amp;quot;ok&amp;quot; abschließen !!&lt;br /&gt;
&#039;&#039;&#039;Linux/Windows via Putty/Telnet:&#039;&#039;&#039; Mit Telnet/Putty-Konsole dorthin wechseln, wo die in camd3.bin liegt (cd /emu). Dann dort &amp;quot;chmod 755 camd3.bin&amp;quot; eingeben!&lt;br /&gt;
&lt;br /&gt;
Nun sind die Rechte auf 755 (bzw. halt auf &amp;quot;Ausführen&amp;quot;) gesetzt!&lt;br /&gt;
Ein Neustart der Box kann danach nicht schaden und alles sollte wie zuvor funktionieren halt nur mit neuer Camd3 !&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1665</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1665"/>
		<updated>2006-10-24T22:02:01Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Nachtrag/Credits/Dateianhang:&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
== Top 10 der Fehler, die gemacht werden... ==&lt;br /&gt;
&lt;br /&gt;
# Die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
# Respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
 &lt;br /&gt;
 benutzer1:password1&lt;br /&gt;
 &lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
# Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
# Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
# Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
# Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
# Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
# Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
# Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
# Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
== Moral von der Geschicht´ ==&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
Hier ist die Anlaufstelle... [http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid= Fragen, Anregungen zu &#039;HowTo Anleitung camd3&#039;]&lt;br /&gt;
&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist im Dateianhang enthalten?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1664</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1664"/>
		<updated>2006-10-24T21:50:53Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Services Datei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang:&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Top 10 der Fehler, die gemacht werden...[/B][/COLOR][/span]&lt;br /&gt;
&lt;br /&gt;
1. die neue camd3 getauscht, aber die neuen Config-Dateien nicht ! Z.B. stehen in der camd3.servers der camd3.570 vorne&lt;br /&gt;
&amp;quot;cs357x://....&amp;quot;, in der älteren camd3.servers aber z.B. noch &amp;quot;cs353x://....&amp;quot; Das muss schon passen ! &lt;br /&gt;
&lt;br /&gt;
2. respektive zur camd3.servers muss auch die camd3.users passen wenn ihr euch zu einer anderen Serverbox verbinden wollt. Passend zum obigen Beispiel würde dann dies hier reichen&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Da muss man nichtmal die Wörter tauschen ! Der benutzer1 kann ruhig auch so heissen, warum&lt;br /&gt;
nicht !? Dasselbe mit seinem Passwort &amp;quot;password1&amp;quot; ;)&lt;br /&gt;
&lt;br /&gt;
3. Falsch editiert ! Mann sollte drauf achten, dass man grundsätzlich einen Unix-Editor benutzt, und nicht das &amp;quot;Notepad&amp;quot; von&lt;br /&gt;
Windows, oder Word benutzt... Schliesslich läuft auf der Dbox2 ja das Unix-kompatible Operating System &amp;quot;Linux&amp;quot;&lt;br /&gt;
(Problem tritt de facto nur bei &amp;quot;camd3.users&amp;quot; bei Einträgen ohne Filter auf, aber sollte man aus Prinzip tun.)&lt;br /&gt;
&lt;br /&gt;
4. Image voll ! Sowohl bei JFFS2-Only Images, als auch bei Cramfs/Squash-Images kann ein Tausch der &amp;quot;libc.so.6&amp;quot; und der &lt;br /&gt;
&amp;quot;libcrypto.so.0.9.7&amp;quot; das Image zu voll werden (ein Problem älterer camd3-Versionen)... Dann geht NIX mehr ! Also mächtig freischaufeln.. Z.B. Spiele rausschmeissen.&lt;br /&gt;
Bei einem Fehlversuch und nachdem die Message kam &amp;quot;no space left&amp;quot; hilft meist auch kein manuelles entleeren mehr. IdR ist&lt;br /&gt;
das Image dann komplett futsch und muss erst nochmal neu geflasht werden ! Erst danach neuen Versuch wagen.&lt;br /&gt;
&lt;br /&gt;
5. Nix geht ! Geht mal mit telnet auf die Dbox2 und schaut mal was die Eingabe von &amp;quot;kill -9 camd3&amp;quot;, oder &amp;quot;kill -term camd3&amp;quot;, oder &amp;quot;killall camd3&amp;quot; ergibt... Wenn da steht, das es nix zum killen gäbe, hat die camd3 niemals richtig gestartet... Ein manuelles Starten der camd3 durch Eingabe von &amp;quot;/var/keys/camd3&amp;quot; kann da schon so manche üerrraschende Hinweise ausspucken...&lt;br /&gt;
&lt;br /&gt;
6. Alles okay, aber nix wird hell ! Nun, vielleicht vergessen die camd3.keys zu füllen, oder gefüllt zu kopieren ? Übrigens kann&lt;br /&gt;
man die &amp;quot;camd3.key&amp;quot; und &amp;quot;camd3.key1&amp;quot; nun vergessen; die waren in älteren Versionen... Nun heisst sie &amp;quot;camd3.keys&amp;quot;&lt;br /&gt;
Dafür kann man aber durchaus die alte camd3.key in camd3.keys umbenennen - das geht (bis auf ein paar Änderungen abgesehen) !&lt;br /&gt;
&lt;br /&gt;
7. Dennoch geht nix ! Rechte vergeben ? Macht doch einfach mal mit telnet in dem Verzeichnis in dem die camd3 liegt &amp;quot;chmod +x camd3&amp;quot;, dann kann sicher nix mehr anbrennen ;)&lt;br /&gt;
&lt;br /&gt;
8. Und immer noch geht nix ! Vielleicht die Keys von einer anderen camd (emu) einfach in die camd3.keys kopiert ? Die hat ihr&lt;br /&gt;
eigenes Format... Bitte unter Linux, oder im Win mittels Unix-Editor passend um-editieren !&lt;br /&gt;
&lt;br /&gt;
9. Mein unter Linux neu erstelltes jffs2.img oder cramfs.img hat 8257536 Bytes (bzw. typische Grössen für das jeweilige mtd).&lt;br /&gt;
Warum lüppt es dennoch nicht ? Es kann durchaus sein, dass so eine Datei zwar die passende Dateigrösse hat, aber dennoch&lt;br /&gt;
zu gross ist (vielleicht wurde bei Erreichen der Grösse abgeschnitten ? Bzw. ein JFFS2-Only braucht um zu funzen ein bissie&lt;br /&gt;
Rest-Platz zur eigenen Verwaltung... Ca. 500 KByte sollten *wenigstens* frei bleiben !)... Als Tipp hier nur: Ausprobieren !&lt;br /&gt;
&lt;br /&gt;
10. Nix geht bei Cardsharing ! Die Konfiguration richtig gemacht und die richtigen Files in die jeweilige DBox2 geuppt ? Die Datei camd3.users muss auf die Server-Box, die camd3.servers muss auf die Client-Box. Wenn Cascading betrieben werden soll, muss zum Betrieb auch auf eine Server-Box eine camd3.servers und auf eine Client-Box eine camd3.users ! Cascading bedeutet, dass eine Kette von Boxen sich jeweils aushilft, je nachdem welche Box welche Antwort liefern kann... Demnach ist jede Box in dem Verbund sowohl mal Client, als auch mal Server !&lt;br /&gt;
&lt;br /&gt;
Tipp zum Austauschen der libc.so.6 und libcrypto.so.0.9.7 im JFFS2-Only (ältere Versionen der camd3)... Mit FTP in /tmp uppen... Dann mit telnet auf die&lt;br /&gt;
Dbox2 gehen, und mit &amp;quot;cd /var/tmp&amp;quot; dorthineinwechseln... Dann dort eingeben &amp;quot;mv libc.so.6 /lib&amp;quot;... Dann abwarten !!! Kann&lt;br /&gt;
sein, dass da sekundenlang *nichts* passiert... Wenn der Prompt zurückkommt, dann wars erfolgreich !&lt;br /&gt;
&lt;br /&gt;
PS: Wer will, kann die Top10 auch gerne in Top20 erweitern 8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B]Moral von der Geschicht´[/B]&lt;br /&gt;
&lt;br /&gt;
Beachtet, dass eine Smartcard zwar im Besitz des Abonnenten ist, aber der Provider/Programmanbieter der Eigentümer bleibt. Ihr solltet also wissen was Ihr damit tut.&lt;br /&gt;
Man kann es allerdings keinem Abonnenten verbieten, &amp;quot;seine&amp;quot; Smartcard mit zu einem Kumpel zu nehmen (der z.B. auch eine Box hat, aber kein Sport-Abo besitzt) um dort mit der Karte ein Fussballspiel anzuschauen. Etwa ähnlich verhält es sich bei dem Cardsharing. Sowohl bei Heimnetz- als auch bei Internetsharing bleibt die Karte zu Hause im Receiver, und die Verbindung auf Eure Box ist im Grunde nur so eine Art &amp;quot;Verlängerungskabel&amp;quot; auf Eure Smartcard ;)&lt;br /&gt;
&lt;br /&gt;
Ohne gültiges Abo macht Ihr Euch strafbar !&lt;br /&gt;
&lt;br /&gt;
Gegen ein einzelnes Sharing einer Doku, eines Spielfilms etc. wird keiner was sagen. Wird mit dem Feature des Cardsharings z.B. Brummiere regelrecht *ausgenutzt*, und im übelsten Fall in der halben Strasse für &amp;quot;lau geglotzt&amp;quot;, dann entspricht das in keinster Weise den Vorstellung der Autoren des Tools/dieser Anleitung, der Tester und dem Team dieses Boards !&lt;br /&gt;
Weniger &amp;quot;schlimm&amp;quot; finden wir es allerdings mit den Emu-Funktionen einen Sender aufzumachen, der in Eurem Land gar nicht abonnierbar ist. Das ist zwar trotzdem untersagt, aber .... ;) Die camd3 ist auf keinen Fall eine End-Anwender-Software, sondern ist und bleibt eine Technik-Demonstration, an der stetig entwickelt wird. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung soll sowohl den erfahreneren User, als auch den Newbee ansprechen. Man kann sich entweder alles komplett durchlesen, oder es auch als &amp;quot;Nachschlagewerk&amp;quot; nutzen, und nur diese Infos entnehmen, an denen man grade knabbert... Viel Erfolg beim Einbau der camd3 !&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Credits[/B][/COLOR][/span]&lt;br /&gt;
&lt;br /&gt;
Wenn hier irgendwo Fehler enthalten sein sollten, verbessert sie, und gebt Bescheid (an einen der Autoren) ! Es wird dann eingepflegt...&lt;br /&gt;
[COLOR=orangered]Editiert von limette: Hier ist die Anlaufstelle... [url=http://streamboard.gmc.to/wbb2/thread.php?threadid=15858&amp;amp;sid=]Fragen, Anregungen zu [HowTo] Anleitung camd3[/url] [/COLOR]&lt;br /&gt;
Grosses Dankeschön an das Streamboard, und an doz21 für seine unermüdliche Arbeit an der camd3, und an alle, die das Board zu dem machen was es ist.&lt;br /&gt;
&lt;br /&gt;
Gewidmet an: doz21&lt;br /&gt;
&lt;br /&gt;
Erstellt von: imbécil, limette,murphy, tom_63, zor und Just_Me&lt;br /&gt;
&lt;br /&gt;
© 2004 und 2005 by Streamboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Was ist im Dateianhang enthalten ?&lt;br /&gt;
&lt;br /&gt;
- cramfsck&lt;br /&gt;
- mkcramfs&lt;br /&gt;
- mkfs.jffs2&lt;br /&gt;
- mksquashfs&lt;br /&gt;
- camd3-Plugins&lt;br /&gt;
- dieses HowTo im .doc, .pdf und .html - Format zum OFFLINE lesen&lt;br /&gt;
- ein &amp;quot;Erste-Hilfe-Paket&amp;quot; als HTML-Dokument zur Konfiguration der camd3&lt;br /&gt;
&lt;br /&gt;
Update --&amp;gt; Dateianhang 30.06.04, 23.50 Uhr (waren Verlinkungsfehler im &amp;quot;Erste-Hilfe-Paket&amp;quot;); 26 Downloads bis dahin.&lt;br /&gt;
Update --&amp;gt; 03.07.04, 17.00 Uhr - Ergänzung &amp;quot;Was ist debug&amp;quot; unter Punkt 5 (tom_63) ! Entsprechendes Update der Offline-Dokumente im Dateianhang (tom_63) ! Update des &amp;quot;Erste Hilfe-Pakets&amp;quot;, ebenso 03.07.04 (zor); 322 Downloads bis dahin..&lt;br /&gt;
Update --&amp;gt; Dateianhang 08.11.04, 00.05 Uhr (Updates, in Punkt 5. und Punkt 3. - Edits von imbécil und tom_63, Dateianhang von tom_63); 1672 Downloads bis dahin...&lt;br /&gt;
Update --&amp;gt; Dateianhang 29.01.05, 22.00 Uhr; Stand vom 17.01.05 (Updates in Punkt 5. und 6. - Edits von tom_63 - Das HowTo auf den aktuellen Stand der camd3.681 gebracht); 828 Downloads bis dahin...&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 22.10.2005 (PDFs folgen noch - TOM)&lt;br /&gt;
Ersetzen von Kapitel 5 nach einer Überarbeitung von Just_Me am 27.12.2005 (Anpassen nach Version 3.830)&lt;br /&gt;
30.12.2005 Dateianhang aktualisiert (1672 + 2010 Downloads bis dahin)&lt;br /&gt;
&lt;br /&gt;
Stand: Dezember/2005&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1663</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1663"/>
		<updated>2006-10-24T21:50:02Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Konfiguration der camd3&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1662</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1662"/>
		<updated>2006-10-24T21:49:44Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Nachtrag/Credits/Dateianhang&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1661</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1661"/>
		<updated>2006-10-24T21:49:28Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Nachtrag/Credits/Dateianhang&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1660</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1660"/>
		<updated>2006-10-24T21:49:15Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Einbau der camd3 (Image ist noch ohne camd3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd ! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1659</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1659"/>
		<updated>2006-10-24T21:48:19Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* &amp;#039;&amp;#039;&amp;#039;Services Datei&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services Datei ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd ! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1658</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1658"/>
		<updated>2006-10-24T21:48:01Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* camd3.users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Services Datei&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd ! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1657</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1657"/>
		<updated>2006-10-24T21:44:47Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* camd3.servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via LAN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Via Internet:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services Datei&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd ! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
	<entry>
		<id>http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1656</id>
		<title>HowTo - Anleitung Camd3</title>
		<link rel="alternate" type="text/html" href="http://oldwiki.streamboard.tv/index.php?title=HowTo_-_Anleitung_Camd3&amp;diff=1656"/>
		<updated>2006-10-24T21:42:21Z</updated>

		<summary type="html">&lt;p&gt;Limette: /* Wie blocke ich um z.B. mein Abo zu verlängern? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Einleitung/Vorwort&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Was ist die camd3 ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
== Was heisst denn camd3 überhaupt? ==&lt;br /&gt;
CAM steht für &amp;quot;Conditional Access Module&amp;quot;, was übersetzt etwa heisst &amp;quot;Modul für bedingten Zugang&amp;quot;... Das Teil ist im Grunde ein Datenfilter, der sich nur dann angesprochen fühlt, wenn tatsächlich die Sprache an ihm vorbeirauscht, die er auch versteht. Das macht er nur für die Smartcard (aufopferungsvoll), weil die sonst so überfordert wäre... Was nun ein MultiCAM sein soll erklärt sich von selbst dann ;-) Kann halt mehr &amp;quot;Sprachen&amp;quot;... Und kann somit auch mit anderen Smartcards umgehen. Super, weil sonst müsste man für jede Originalkarte die mit einer anderen Verschlüsselungstechnik arbeitet, eine Extra-Settopbox kaufen, bzw. ein Extra-CAM (falls das bei dem jeweiligen Receiver überhaupt geht), bzw. ein CI-Modul (Conditional Interface Module; da kann man die Smartcard direkt ins Modul schieben; is aber im Grunde intern dieselbe Technik)&lt;br /&gt;
&lt;br /&gt;
Und dann gibts ja noch die camd... der Daemon zum CAM (deswegen der Name), also ein Stück Software, bzw. eine Software-Schnittstelle zwischen CAM (Hardware) und dem Tuxbox-Betriebssystem (Software). Könnte man vielleicht als &amp;quot;Treiber&amp;quot; fürs CAM bezeichnen. Wenn man in die Dbox2 reinguckt, dann sieht man allerdings nicht viel konventionelles CAM.  Nur so ein paar festverlötete Hardwarebrocken. Die &amp;quot;cam-alpha.bin&amp;quot; spielt auch noch als &amp;quot;Treiber&amp;quot; mit (manche sagen es wäre das CAM-an-sich)... Jedenfalls bestimmt die cam-alpha.bin schonmal von wo das Signal kommt (Kabel oder SAT; die entsprechende Version von ihr muss ins jeweilige Image, sonst geht nix). Danach reiht sich der CAM-Daemon ein. Man könnte die camd so manipulieren, dass das interne &amp;quot;CAM&amp;quot; auch andere &amp;quot;Sprachen&amp;quot; durchlässt. Z.B. Seca oder sowas, statt immer nur Betacrypt. Mithilfe eines MultiCAMs geht das hardwareunterstützt mit Originalkarten. Aber was ist, wenn man keine Originalkarte hat ? Geht das auch softwareunterstützt ? Tatsächlich: Das geht ! Nennt sich dann camd-Emulator oder auch Emulator bzw. Emu ! Ohne Keys geht aber nix; also eine Schnittstelle in den Emulator, der dann die zu entschlüsselnden Keys nicht mit der Smartcard aushandelt, sondern mit ein paar Dateien, die sich im Image befinden; also ein Emu-Image ! Jetzt isses aber so, dass diese Emu-camd auch nur eine Software ist, die wieder Libraries und weitere externe Dateien benötigt, die ausserdem nur in bestimmten Pfaden liegen sollen/können/dürfen. Gibt viele Hacker-camds... z.B. camd3, newcamd, gbox, evocamd, mgcamd, etc. Da es privat-geschriebene Tools sind, und es keine Emu-Union gibt *rofl* ist es halt so, dass man jeden Emu irgendwie anders ins Image frickeln muss...&lt;br /&gt;
&lt;br /&gt;
Der CAM-Daemon (camd), der von der offiziellen Tuxbox-Developer-Crew geschrieben wurde, nennt sich camd2 und in den meisten Images ist schon eine camd2 drinnen; jedoch bietet jener (jene ?) keinen Premiere-Support, was soviel bedeutet, dass man zwar eine originale Premiere-Karte in die DBox2 stecken kann, jedoch Premiere dunkel bleibt ! Es sei denn man hat noch die Betanova am Laufen ;-)&lt;br /&gt;
Der Grund: Premiere hat dies bei der Tuxbox-Developer-Crew erwirken können, da sie sonst keine Lizenzen für Hardcore-Erotik in Deutschland bekommen hätten. Denn mit der Betanova-Alternativ-Software Tuxbox kann man die Jugendschutz-Sperre umgehen. Deswegen hat die Tux-Crew kurzerhand den [u]gesamten Premiere-Empfang[/u] in ihrer camd2 abgeschaltet !&lt;br /&gt;
&lt;br /&gt;
Wer nun nur Premiere mit einer originalen Premiere-Karte auf einer DBox2 mit Tuxbox-Firmware gucken möchte, muss eine gepachte camd2 einspielen. Oder man spielt sich die camd3 ein, welche das auch kann (neben noch weiteren Features ;-) Zwar zählt die camd3 auch zur Kathegorie &amp;quot;Emu&amp;quot;, aber wer auch ein Geplagter ist, der die Betanova-Firmware Schei**e findet, und dennoch Premiere unter Tuxbox-Oberflächen schauen möchte, findet in der camd3 eine Alternative zur gepatchten camd2 ;)&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Info über die Image-Arten, und welche Werkzeuge benötigt werden&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Welche Image-Arten gibt es ? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt die unterschiedlichsten Images ! Sie unterscheiden sich idR. erstmal durch 1xI oder 2xI (die Bezeichnung bedeutet, dass eine DBox2 entweder *einen* FlashROM-Baustein hat, oder *zwei* ! Das &amp;quot;I&amp;quot; steht für Intel, welches in den meisten DBoxen verbaut wurde. Es gibt auch AMD-FlashROMs. In dem Fall müsste es eigentlich 2xAMD heissen, aber der Kern-Unterschied liegt nicht am Hersteller, sondern an der Chip-Anzahl...)&lt;br /&gt;
Und in diesen FlashROMs kann die Firmware &amp;quot;Tuxbox&amp;quot; (sei es neutrino oder enigma oder both-in-one) in mittlerweile drei Filesystemen stecken. Das sind JFFS2, CramFS und Sqaush. Ersteres ist re-writable, die anderen beiden sind read-only, aber enthalten eine bessere Realtime-Komprimierung als JFFS2 ! Squash die Beste ! Wenn mans genau nimmt, sollte man eigentlich nur noch entweder über Squash, oder JFFS2 nachdenken. Squash weils am besten komprimiert, JFFS2, weils auch re-writable ist ! Wer zwar JFFS2 haben möchte (wegen Beschreibbarkeit), aber mehr Platz braucht, kann sb-shrink zurhilfe nehmen. Mag zwar verwirrend sein, aber in eigentlich jedem CramFS/Squash-Image liegt auch mind. eine JFFS2-Partition. Warum ? Weil dort so Dinge wie Channel-Search, zuletzt geschauter Kanal, oder Auto-Update-Keys irgendwo gespeichert werden müssen, bevor die Box ausgeschaltet wird. Ein JFFS2-Only ist was anderes... Dort ist wirklich *alles* wiederbeschreibbar !&lt;br /&gt;
Jedenfalls wenn die camd2 in /bin liegt (was nur innerhalb eines JFFS2-Only-Images beschreibbar ist), dann führt kein Weg am Re-Imaging vorbei. Sofern es sich um ein JFFS2-Only-Image handelt, kann man das weglassen. Aber sobald man z.B. in einem Squash-Image die camd2 ersetzen will, und jene nicht im beschreibbaren Bereich (z.B. /bin) liegt, dann muss halt gebastelt werden, leider ! (wie das geht, wird hier beschrieben)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wichtig wäre es natürlich als Erstes einmal nachzuschauen ob überhaupt noch genügend Platz im Image zur Verfügung steht ! Verbindet Euch mal mit Telnet oder Putty auf eure Box (wie das funktioniert steht gleich darunter) und gebt mal &amp;quot;df&amp;quot; ein. Werte bei knapp 90% sind idR. Ende der Fahnenstange ! Dann müsst Ihr Plugins/Spiele rausschmeissen, sonst gehts nicht ! Oder Ihr müsst anderwärtig aufräumen (z.B. sb-shrink nehmen, etc.). Durch Eingabe von &amp;quot;ps&amp;quot; unter Telnet/Putty sieht man hier schon meistens wie die eingebaute camd heisst und wo sie liegt ! In seltenen Fällen wird nur der Symlink der laufenden camd angezeigt (muss man dann selbst ausfindig machen). Symlinks sind mittels &amp;quot;ls&amp;quot; unter Telnet/Putty idR. unsichtbar !&lt;br /&gt;
Eingabe &amp;quot;ls -la&amp;quot; zeigt dann wirklich alles an ! Mittels FTP kann man auch einiges angezeigt bekommen...&lt;br /&gt;
&lt;br /&gt;
Also zuerst benötigt Ihr ein FTP-Programm (für Windows z.B. Total Commander; Download hier http://www.ghisler.com/ ; für Linux gehts auch mit dem Midnight-Commander [mc], der idR. vorinstalliert ist), oder Telnet (Boardmittel unter Windows und Linux) .Telnet lässt sich mit Windows via Start-Button/&amp;quot;Ausführen&amp;quot; aufrufen. Alternative für Windows ist Putty... Download hier http://www.uni-giessen.de/hrz/software/putty/ !!&lt;br /&gt;
&lt;br /&gt;
== FTP-Verbindung zur DBox2 herstellen: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Windows: Total-Commander starten. Netz/neue Verbindung/dbox-Namen eingeben (zb &amp;quot;meine dbox&amp;quot;), IP der DBox eingeben; Login &amp;quot;root&amp;quot; und &amp;quot;dbox2&amp;quot; als Passwort (Achtung: Passwort kann auch ein anderes, oder auch ohne PW sein) !! Mit &amp;quot;ok&amp;quot; abschliessen und verbinden !&lt;br /&gt;
Linux: Durch Eingabe von &amp;quot;mc&amp;quot; den Midnight-Commander starten. Dann F9 drücken, mit den Cursortasten zu dem Menüeintrag &amp;quot;Links&amp;quot;- oder &amp;quot;Rechts&amp;quot; gehen, &amp;quot;FTP-Verbindung&amp;quot; auswählen und &amp;quot;root@192.168.x.y&amp;quot;(IP der Box) eingeben, und mit Eingabe des Passwortes abschliessen (wenn kein PW, dann einfach ENTER). Als Alternative könnt Ihr auch kbear verwenden - der ist sehr einfach und intuitiv zu verwenden&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet Ihr auf Eurer DBox2 via FTP eingeloggt sein !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telnet/Putty-Verbindung zur DBox2 herstellen ==&lt;br /&gt;
(Anmerkung: Nur eins der folgenden Varianten wird benötigt !)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putty: Bei &amp;quot;Host-Name&amp;quot; gebt Ihr die IP der DBox2 ein; darunter auf Telnet klicken (Port 23) und unter &amp;quot;saved sessions&amp;quot; gebt Ihr zb &amp;quot;meine dbox&amp;quot; ein. Dannach auf &amp;quot;save&amp;quot; ! Nun Doppelcklick auf &amp;quot;meine dbox&amp;quot;, root/dbox2 (oder Euer eigenes Passwort eingeben)... Nun seid Ihr auch mit Putty auf der DBox2 !!&lt;br /&gt;
Telnet unter Windows: Start-Button/Ausführen/Eingabe: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr auch unter Windows mit Telnet auf der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (grafische Oberfläche): Ein Konsolen-Fenster öffnen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
Telnet unter Linux (Textkonsole): Mittels ALT-F2 auf eine zweite Konsole wechseln (für später: zurück gehts mit ALT-F1). Dort einloggen. Eingabe dort: &amp;quot;telnet (IP der DBox2)&amp;quot;, dann root/dbox2 (oder anderes PW, bzw. auch ohne PW)... Nun seid Ihr mit Telnet in der DBox2 eingeloggt !&lt;br /&gt;
&lt;br /&gt;
== Welche Werkzeuge werden noch benötigt ? ==&lt;br /&gt;
&lt;br /&gt;
- mkfs.jffs2, mkcramfs, mksquashfs (je nach Image-Art nur das zutreffende benötigt; liegt alles dem Anhang bei)&lt;br /&gt;
- Optional: NewTuxBoxFlashTools (NTBFT) &amp;lt;--- gibts hier in der Database !&lt;br /&gt;
- DBox2-Boot-Manager... Hiermit kann man unter Windows Images flashen, aber auch Bootlogs erstellen und Win-Partitionen mounten (und vieles mehr)... (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Un-TAR Utilities für Windows zum enttaren von Files ! Kann man machmal brauchen... Auch Files mit .gz und .bz2 Endung sind hiermit unter Windows entpackbar (Download: http://dbox.feldtech.com )&lt;br /&gt;
- Linux auf dem PC ! Optional: Eine der vielen Linux-Emulationen unter Windows wie cygwin oder Bochs; oder VMware oder Virtual-PC als &amp;quot;PC-Emulator&amp;quot; für einen PC-im-PC in dem ein Linux unter Windows läuft , etc.&lt;br /&gt;
- Optional zum Editieren von Texten unter Windows im Linux-Format: Ultraedit (Download: http://www.ultraedit.com/ )&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Einbau/Update der camd3 ins DBox2-Image&#039;&#039;&#039; =&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits erwähnt, ist die camd3 die Alternative zur &amp;quot;offiziellen&amp;quot; camd2 ! Das einfachste wäre nun, einfach die camd3 in camd2 umzubenennen, und im Image unter /bin zu überschreiben. Bei einem JFFS2-Only-Image wär das dann auch schon fast alles. Augenzwinkern Da aber bei allen anderen Images das Verzeichnis /bin in einem NICHT-beschreibbaren Bereich liegt, sollte man sich was anderes ausdenken...&lt;br /&gt;
&lt;br /&gt;
Jedes Image verfügt über einen beschreibbaren Bereich (JFFS2)... Auch ein Cramfs- oder ein Squash-Image (!) Idee also, die camd3 in den JFFS2-Bereich eines Cramfs/Squash-Images abzulegen !&lt;br /&gt;
Was aber machen, wenn das Image beim Booten bereits die &amp;quot;offizielle&amp;quot; camd2 startet und die camd3 hinterher ? Das geht leider nicht... Geht immer nur eins (!) Lüftung des Geheimnisses ist die Datei &amp;quot;start_neutrino&amp;quot; oder &amp;quot;start_enigma&amp;quot; ! Dort könnte man alle Einträge &amp;quot;/bin/camd2&amp;quot; einfach in /var/camd3&amp;quot; abändern ! Fehlt dann nur noch die Konfiguration (detaillierter beschrieben unter Punkt 5.)&lt;br /&gt;
Einige Image-Ersteller haben da sogar schonwas vorbereitet; lies´ weiter unter Punkt 3.1. (!)&lt;br /&gt;
&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image&#039;&#039;&#039; =&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
Folgende Dateien MÜSSEN (neben der binären camd3) in Euer Image:&lt;br /&gt;
&lt;br /&gt;
 camd3.config&lt;br /&gt;
 camd3.keys&lt;br /&gt;
 camd3.users (muss für Cardsharing auf den Server)&lt;br /&gt;
 camd3.servers (muss für Cardsharing auf den Client)&lt;br /&gt;
&lt;br /&gt;
Alle Dateien müssen nach /var/keys kopiert werden !!!&lt;br /&gt;
== camd3.config ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Wenn Parameter gebraucht wird - &#039;#&#039; entfernen und eure Werte reinsetzen!!!!!&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 # Boxtyp(optional):  1-dbox2, 2-dm7000, 3-dm7020, 4-dm500, 5-dm56xx/Triax;  Default ist 2&lt;br /&gt;
 # BOXTYPE=1&lt;br /&gt;
 #&lt;br /&gt;
 # UDP Port(optional);  Default - 20248&lt;br /&gt;
 #UDP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # TCP Port(optional);  Default - 0 (TCP-server ausgeschaltet)&lt;br /&gt;
 #TCP_PORT=24110&lt;br /&gt;
 &lt;br /&gt;
 # Log(optional): 0 - keine Ausgaben, 1-Datei, 2 - Console, 4 - UDP(syslog), 3 - Console+Datei, 5 - UDP+Datei, 6 - UDP+Console, 7-UDP+Console+Datei;  Default ist 2;&lt;br /&gt;
 #LOG=2&lt;br /&gt;
 &lt;br /&gt;
 # Host für UDP-logging&lt;br /&gt;
 #LOG_HOST=192.168.1.1&lt;br /&gt;
 &lt;br /&gt;
 # Port für UDP-logging(optional);  Default ist 514&lt;br /&gt;
 #LOG_PORT=514&lt;br /&gt;
 &lt;br /&gt;
 # Logfile&lt;br /&gt;
 #LOG_FILE=/mnt/hdd/var/log/camd3.log&lt;br /&gt;
 &lt;br /&gt;
 # DNS cache in sekunden; Default ist 600 sec&lt;br /&gt;
 #DNS_CACHE=600&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum User-File(optional);  Default ist /var/keys/camd3.users&lt;br /&gt;
 #USERS=/var/keys/camd3.users&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Server-File(optional);  Default ist /var/keys/camd3.servers&lt;br /&gt;
 #SERVERS=/var/keys/camd3.servers&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Key-File(optional);  Default ist /var/keys/camd3.keys&lt;br /&gt;
 #KEYS=/var/keys/camd3.keys&lt;br /&gt;
 &lt;br /&gt;
 # Pfad zum Socket-File(optional);  Default ist /tmp/camd.socket&lt;br /&gt;
 #SOCKET=/tmp/camd.socket&lt;br /&gt;
 &lt;br /&gt;
 # Multichannel mode (optional): 0-aus, 1-ein;  Default ist 0&lt;br /&gt;
 #MULTI=1&lt;br /&gt;
 &lt;br /&gt;
 # Kartenslots (anzahl beliebig)&lt;br /&gt;
 # je eine Zeile für Slot:&lt;br /&gt;
 # SLOT=devicename:type:au_g:au_s:au_u:port:username:password:deskey&lt;br /&gt;
 #&lt;br /&gt;
 # deskey für normale Slots ist optional, aber port,username und password müssen immer angegeben werden!!!&lt;br /&gt;
 #&lt;br /&gt;
 # devicename: Pfad (volständig) zum Device, oder Hostname von cardserver(newcamd)&lt;br /&gt;
 # type: 1-serial, 2-intern(dreamox), 4-cardserver(newcamd)&lt;br /&gt;
 # au_g: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_s: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # au_u: 1-eingeschaltet, 0-ausgeschaltet&lt;br /&gt;
 # port: port&lt;br /&gt;
 # username: loginname&lt;br /&gt;
 # password: loginpassword&lt;br /&gt;
 # deskey: cardserver deskey (14 byte)&lt;br /&gt;
 &lt;br /&gt;
 # für Dreambox&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Slot oben&lt;br /&gt;
 #SLOT=/dev/sci1:2:1:1:1:998:slotoben:password2&lt;br /&gt;
 # Slot unten&lt;br /&gt;
 #SLOT=/dev/sci0:2:1:1:1:999:slotunten:password3&lt;br /&gt;
 # Newcamd Cardserver&lt;br /&gt;
 #SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
 &lt;br /&gt;
 # für dbox2&lt;br /&gt;
 # Serial&lt;br /&gt;
 #SLOT=/dev/tts/0:1:1:1:1:997:mastercrd:password1&lt;br /&gt;
 # Multicam&lt;br /&gt;
 #SLOT=/dev/tts/1:1:1:1:1:998:multicam:password2&lt;br /&gt;
 &lt;br /&gt;
 # Au für den original Slot der dbox2: 0-aus, 1-an; Default ist 1&lt;br /&gt;
 #DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet Boxtyp ? ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Boxtyp stellt man die verwendete Box ein auf der ihr die camd3 installieren wollt, ändert einfach die Zahl entsprechend der verwendeten Box.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der UDP / TCP Port ? ==&lt;br /&gt;
&lt;br /&gt;
Die Übertragung wird bei der camd3 entweder über das Protokoll UDP oder TCP gemacht. Bei einer der Serverbox legt dies die udp oder tcp_Portnummer fest, unter der der Server auf eingehende Anfragen lauscht. Genau der gleiche muß bei den Clients in der camd3.servers eingetragen werden damit eine Kommunikation ermöglicht wird. Weiterhin wird über den Porteintrag in camd3.config festgelegt, auf welchem Absende-Port der Client seine Anfragen an den Server stellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Die Serverbox hat Port 20248, Clientbox Port 20250 in der camd3.config und Port 20248 in der camd3.servers stehen.&lt;br /&gt;
Der Client sendet nun mit Absendeport 20250 an den Zielport 20248 des Servers. Bei der Antwort ist es umgekehrt. Der Server nutzt Port 20248 als Absender und schickt seine Daten an Port 20250 der Clientbox.&lt;br /&gt;
&lt;br /&gt;
== Für was ist der Logeintrag ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 gibt verschiedene Informationen aus die z.B. Informationen über die Cardsharinganfragen und Verarbeitung enthalten. &lt;br /&gt;
Dabei gibt es verschiedene Möglichkeiten diese Infromationen anzeigen zu lassen welche mit diesem Eintrag geregelt werden können.&lt;br /&gt;
&lt;br /&gt;
Datei:&lt;br /&gt;
Die Loginformationen werden in einer Datei auf der Box gespeichert&lt;br /&gt;
&lt;br /&gt;
Console:&lt;br /&gt;
Gibt die Informationen über Telnet aus wenn man die camd3 manuell über Telnet gestartet hat.&lt;br /&gt;
&lt;br /&gt;
UDP:&lt;br /&gt;
Die Loginformationen werden über einen UDP Port an eine beliebige IP gesendet und können dann z.B. am PC abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_HOST ? ==&lt;br /&gt;
&lt;br /&gt;
Hier wird die IP Adresse angegeben an welche die Log-Informationen gesendet werden sollen fall UDP als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutete LOG_PORT ? ==&lt;br /&gt;
&lt;br /&gt;
Dies regelt den Port über welchen das Log an die zuvor eigestellt IP gesendet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet LOG_FILE ? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit wird der Speicherort der Logdatei angegeben fall Datei als Logart gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedeutung der Log-Ausgaben: ==&lt;br /&gt;
&lt;br /&gt;
 00 - ECM (request)&lt;br /&gt;
 01 - ECM (response)&lt;br /&gt;
 02 - EMM (für client - set EMM, für server - EMM data) -&amp;gt; veraltet, bleibt aus Kompatibilitätsgründen&lt;br /&gt;
 03 - ECM (cascading request)&lt;br /&gt;
 04 - ECM (cascading response)&lt;br /&gt;
 05 - Kartendaten zum Client (eingehend beim Client) &lt;br /&gt;
 06 - EMMs (eingehende EMM-Daten beim Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normales Sharing Client - Server:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dem Server eingehende Anfrage:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) decoded on /dev/sci1&lt;br /&gt;
die Antwort des Servers auf dem Client:&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.002755s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sharing mit kaskadierten Servern:&#039;&#039;&#039;&lt;br /&gt;
 172.16.0.121 = Client&lt;br /&gt;
 172.16.0.123 = 1. Server&lt;br /&gt;
 172.16.0.124 = 2. Server&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anfrage des Clients beim 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:26 camd3: UDP 00 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.121 ( User1 ) &lt;br /&gt;
&#039;&#039;&#039;Anfrage des 1. Servers bei einem 2. Server&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:28 camd3: UDP 03 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User2 ) decoded on /dev/sci1&lt;br /&gt;
&#039;&#039;&#039;Antwort des 2. Servers an den 1. Server:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:30 camd3: UDP 04 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.124 ( User2 )&lt;br /&gt;
&#039;&#039;&#039;Eingehende Anwort beim Client:&#039;&#039;&#039;&lt;br /&gt;
 Oct  5 00:54:32 camd3: UDP 01 -&amp;gt; 1702:000000:100A:000A 0.286008s from 172.16.0.123 ( User1 )&lt;br /&gt;
&lt;br /&gt;
== Was bedeuten die Pfad angaben? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 nimmt an, dass die key, server und user Dateien sich im Ordner var/keys befinden, falls dies jedoch nicht der Fall sein sollte kamm man hier den Ort angeben an dem sich die Dateien befinden.&lt;br /&gt;
&lt;br /&gt;
== Was bedeutet DNS cache in Sekunden? ==&lt;br /&gt;
&lt;br /&gt;
Hiermit kann man die Zeit in Sekunden einstellen in welchen Abständen DNS aktualisiert werden soll.&lt;br /&gt;
&lt;br /&gt;
== Was ist der Multichannel mode ? ==&lt;br /&gt;
&lt;br /&gt;
Die camd3 ab Version 3.800 unterstützen den Multichannel mode, dabei kann man z.B. einen verschlüsselten Kanal aufnehmen und dennoch weitere verschlüsselte Sender auf dem gleichen Transponder entschlüsseln.  &lt;br /&gt;
Der Eintrag MULTI aktiviert oder deaktiviert diese Funktion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcher slot steht für was? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DBox2:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/tts/1 Multicam&lt;br /&gt;
&lt;br /&gt;
Ab camd3.807 wird wieder der original Slot der dbox2 unterstützt, dieser ist immer aktiviert, er wird nicht über die Config geregelt. Er kann nicht für CS genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dreambox:&#039;&#039;&#039;&lt;br /&gt;
 /dev/tts/0 externe com mit Cardreader&lt;br /&gt;
 /dev/sci0 unterer Slot&lt;br /&gt;
 /dev/sci1 oberer Slot&lt;br /&gt;
&lt;br /&gt;
Des weiteren gibt es noch die Möglichkeit sich mit der camd3 am Newcamd Cardserver anzumelden um auf dessen Karten zuzugreifen, dies geschiet mit dem Eintrag:&lt;br /&gt;
 SLOT=localhost:4:1:1:1:22222:dummy:dummy:0102030405060708091011121314&lt;br /&gt;
&lt;br /&gt;
== Warum liest die camd3 meine Original Karte nicht? ==&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit wäre, dass ihr vergessen habt den entsprechenden Slot in der camd3.config zu aktivieren, überprüft also ob die # vor dem Slot entfernt ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist das Kommando D0,D2 bzw. D3? ==&lt;br /&gt;
&lt;br /&gt;
 D0 -&amp;gt; G=Global -&amp;gt; Globale Kommandos an alle Karten&lt;br /&gt;
 D2 -&amp;gt; S=Shared -&amp;gt; Shared Kommandos an die eigene Kartengruppe&lt;br /&gt;
 D3 -&amp;gt; U=Unique -&amp;gt; Unique Kommandos nur an die eigene Karte&lt;br /&gt;
&lt;br /&gt;
== Wie blocke ich um z.B. mein Abo zu verlängern? ==&lt;br /&gt;
&lt;br /&gt;
Um die Karte zu blocken müßt ihr das Autoupdate der Karte deaktivieren, dies geschiet in der SLOT Zeile:&lt;br /&gt;
&lt;br /&gt;
 SLOT=/dev/sci0:2:&#039;&#039;&#039;1:1:1&#039;&#039;&#039;:999:slotunten:password3&lt;br /&gt;
&lt;br /&gt;
Ändert dazu die fetten Zahlen 1:1:1 in 0:1:0 und die Karte wird nur noch D2 Zeitverlängerungskommandos erhalten und ist somit geblockt.&lt;br /&gt;
&lt;br /&gt;
Falls ihr die Smartkarte im original Schacht der dbox2 verwendet und diese blocken wollt müßt ihr überprüfen ob der Eintrag:&lt;br /&gt;
&lt;br /&gt;
 DBOX2_AU=0&lt;br /&gt;
&lt;br /&gt;
aktiviert und auf 0 gesetzt ist. Damit ist die Karte geblockt.&lt;br /&gt;
&lt;br /&gt;
== Welchen Sinn machte es, bei der Multicam und dem com-Port nochmal in G,U und S zu unterteilen?==&lt;br /&gt;
&lt;br /&gt;
Weil es eben &amp;quot;Sinn&amp;quot; macht entweder nur D0, D2, D3 oder eben auch &amp;quot;alles&amp;quot; durchzulassen!&lt;br /&gt;
So kann man regelt ob man nur Kommandos speziell für seine Karte durchlassen will oder auch Globale Kommandos.&lt;br /&gt;
&lt;br /&gt;
== camd3.keys ==&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # &lt;br /&gt;
 # Eine Zeile - Ein Eintrag, der so aussehen muss:&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:[-]E............&lt;br /&gt;
 # oder so:&lt;br /&gt;
 #&lt;br /&gt;
 # [-]AAAA:BBBBBB:CCCCCCCCCC:DD:FILE=filename:OFFSET=0xXXXX:SIZE=0xYYYY&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA - caid&lt;br /&gt;
 # BBBBBB - provider&lt;br /&gt;
 # CCCCCCCCCC - ppua&lt;br /&gt;
 # DD - keynr&lt;br /&gt;
 # EEE...... - data&lt;br /&gt;
 # X - offset&lt;br /&gt;
 # Y - SIZE&lt;br /&gt;
 # wenn &#039;-&#039; vor caid -&amp;gt; wird das Keys aus DB gelöscht(wenn vorhanden)&lt;br /&gt;
 # wenn &#039;-&#039; vor data -&amp;gt; wird das Datateil bytesweise rotiert&lt;br /&gt;
 #&lt;br /&gt;
 # oder SO:&lt;br /&gt;
 # &lt;br /&gt;
 #&lt;br /&gt;
 # Für OP.keys muss provider 0000000000 sein&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Seca&lt;br /&gt;
 0100:0000A8:0000000000:0C:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0D:1234567890ABCDEF&lt;br /&gt;
 0100:0000A8:0000000000:0F:1234567890ABCDEF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Conax&lt;br /&gt;
 0B00:000000:0000000000:E0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B0:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:E1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 0B00:000000:0000000000:B1:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1&lt;br /&gt;
 234567890ABCDEF1234567890ABCDEF1234567890ABCDEF.....&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Nagra&lt;br /&gt;
 1800:007001:0000000000:00:6FF06F47E957D3C8&lt;br /&gt;
 1800:007001:0000000000:01:BD422C6AD2B58C24&lt;br /&gt;
 1800:007001:0000000001:00:... - PK0_E1&lt;br /&gt;
 1800:007001:0000000001:01:... - PK0_N1&lt;br /&gt;
 1800:007001:0000000001:02:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:03:... - PK2_E1&lt;br /&gt;
 1800:007001:0000000001:04:... - PK_N2&lt;br /&gt;
 1800:007001:0000000001:05:... - EMMK1&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel Via2&lt;br /&gt;
 0500:015000:0000000000:08:11223344556677881122334455667780&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel AES&lt;br /&gt;
 0500:007C00:0000000000:80:11223344556677881122334455667781&lt;br /&gt;
 0500:007C00:0000000000:81:11223344556677881122334455667782&lt;br /&gt;
 .....&lt;br /&gt;
 0500:007C00:0000000000:8A:1122334455667788112233445566778&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel BISS AAAA - service id (hexadizimal)&lt;br /&gt;
 2600:00AAAA:0000000000:00:112233445566&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel ConstandDW AAAA - service id (hexadizimal)&lt;br /&gt;
 0100:00AAAA:0000000000:00:11223344556677881122334455667788&lt;br /&gt;
&lt;br /&gt;
Die Datei &amp;quot;camd3.keys&amp;quot; muss zwingend !! ins Verzeichnis /var/keys. Grundsätzlich könnte man dort auch einen symbolischen Link anlegen, der auf eine in einem anderen Verzeichnis abgelegte &amp;quot;camd3.keys&amp;quot; zeigt. Spätestens nach der Aktualisierung der Datei durch eine Autoupdate eines Senders wird allerdings der Link gelöscht und die Datei in /var/keys abgelegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
== camd3.servers ==&lt;br /&gt;
(wird nur in der Clientbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # cs357x - UDP&lt;br /&gt;
 #	cs378x - TCP&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs&lt;br /&gt;
 #cs357x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
 #&lt;br /&gt;
 # Sende gefiltert nach Services (z.B nur Start und Film)&lt;br /&gt;
 #&lt;br /&gt;
 #cs357x://benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services@www.myhost.com:16663&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Sende alle ECMs via TCP&lt;br /&gt;
 #cs378x://benutzer1:password1@132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Via LAN:&lt;br /&gt;
&lt;br /&gt;
 cs357x:// =&amp;gt; UDP-Protokoll&lt;br /&gt;
 cs378x:// =&amp;gt; TCP-Protokoll&lt;br /&gt;
&lt;br /&gt;
benutzer1:password1 =&amp;gt; name und passwort zur authentifizierung am Server&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Filter nach Services gesetzt:&lt;br /&gt;
 :SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&lt;br /&gt;
&lt;br /&gt;
IP und Port des Servers; Client und Server regeln voll automatisch welche Anfragen per CS gesendet werden und welche nicht:&lt;br /&gt;
 @132.23.78.133:32897&lt;br /&gt;
&lt;br /&gt;
Der eingetragene Port muß identisch sein mit dem Port aus der &amp;quot;camd3.config&amp;quot; der Serverbox.&lt;br /&gt;
&lt;br /&gt;
Die rausgehende Anfragen kann man einschränken, in dem man z.B. &amp;quot;:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services&amp;quot; hinter dem Passwort anhängt, somit lässt er z.B. nur Anfragen raus die vorher in der services Datei eingetragen wurden. Damit kann man manuell den Netzverkehr reduzieren, da z.B. eine Anfrage für einen Kanal, welcher nicht in der Services Datei steht,erst gar nicht an den Server geschickt wird, sondern rein lokal über den passenden Key in der Datei &amp;quot;camd3.keys&amp;quot; beanwortet wird, falls möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Via Internet:&lt;br /&gt;
&lt;br /&gt;
Sieht die camd3.servers genauso aus, man muss nur die Netzwerk-IP durch eine Internetadresse ( zB. www.myhost.com ) ersetzen.&lt;br /&gt;
&lt;br /&gt;
== camd3.users ==&lt;br /&gt;
(wird nur in der Serverbox benötigt)&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von DOZ21&lt;br /&gt;
&lt;br /&gt;
 # Alle services erlaubt, IN_CASC erlaubt, OUT_CASC erlaubt&lt;br /&gt;
 benutzer1:password2&lt;br /&gt;
 &lt;br /&gt;
 # REMM&lt;br /&gt;
 #benutzer1:password2:REMM=/dev/sci1 (kann auch mit FROM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 &lt;br /&gt;
 # nur Start&lt;br /&gt;
 #benutzer2:password2:SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Fim&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # nur Start UND Film&lt;br /&gt;
 #benutzer3:password3:SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/key&lt;br /&gt;
 s/pw_film.services&lt;br /&gt;
 &lt;br /&gt;
 # Cascadingungsabfragen von benutzer5 werden akzeptiert und local bearbeiteit, wenn es in services steht&lt;br /&gt;
 #benutzer5:password5:SERVICES=/var/keys/pw_start_in&lt;br /&gt;
 &lt;br /&gt;
 # Cascading für benutzer6 aktiviert&lt;br /&gt;
 #benutzer6:password6:SERVICES=/var/keys/pw_start_out.services&lt;br /&gt;
 &lt;br /&gt;
 #Cascadingungsabfragen von benutzer7 werden akzeptier, local bearbeiteit und anderen Server weitergeleitet&lt;br /&gt;
 #benutzer7:password7:SERVICES=/var/keys/pw_start_all.services&lt;br /&gt;
 &lt;br /&gt;
 # Nur Anfragen von einer bestimmten IP-Adresse sind erlaubt (kann auch mit REMM und(oder) SERVICES benutzt werden)&lt;br /&gt;
 #benutzer8:password8:FROM=sein.hostname.tv&lt;br /&gt;
 #benutzer9:password9:FROM=192.168.1.210&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=1 -&amp;gt; Sende Disable-Service, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=1&amp;amp;SERVICES=/var/keys/pw_start.services&lt;br /&gt;
 &lt;br /&gt;
 # DISABLE=2 -&amp;gt; Sende Fake-DW, wenn nicht in Service-List (kann mit Anderen Parameters kombiniert werden)&lt;br /&gt;
 benutzer110:password10:DISABLE=2&amp;amp;SERVICES=/var/keys/pw_start.services &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bei der dbox2 kan man nur mit multicam bzw. Cardreader und geladenem &amp;quot;multicam.o&amp;quot; Modul einen Server mit Cardsharing betreiben.&lt;br /&gt;
Grundsätzlich kann &amp;quot;camd3&amp;quot; auch ohne Cardsharing Server für jegliches Cryptsystem spielen. So ist es denkbar, dass in einem lokalen Netz eine Box Server für andere Boxen spielt, aber keine Karte shared. Dies erspart z.B. Arbeit beim Pflegen der &amp;quot;camd3.keys&amp;quot;, da man nur auf einer Box die Datei pflegen muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der camd3.user sind die freigegebenen Clienten, welche mit &amp;quot;camd3&amp;quot; kommunizieren dürfen.&lt;br /&gt;
&lt;br /&gt;
benutzer1:password2 =&amp;gt; alle eingehenden Anfragen von den Clienten werden von camd3 angenommen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filtern mit Service Dateien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
SERVICES=/var/keys/pw_start.services&amp;amp;SERVICES=/var/keys/pw_film.services =&amp;gt; Dem User wird nur erlaubt Sender zu sehe welche in der pw_start.services UND der pw_film.services Datei eingetragen sind. &lt;br /&gt;
Alle anderen Anfragen werden von der camd3 ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMM - Remote EMM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über diesen zusätzlichen Parameter in der Datei &amp;quot;camd3.users&amp;quot; wird gesteuert, von welchem Benutzer Auto-Update Daten für die Karte die geshared wird angenommen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
REMM funktioniert zur Zeit nur bei Verwendung des UDP Protokoll, also wundert euch nicht wenn bei TCP keine Kartenupdates per REMM kommen ;)&lt;br /&gt;
Des weiteren funktioniert REMM bis jetzt nur mit Irdeto (und seine Abarten, also Betacryt oder getunneltes Nagar) Seca und seit 3.812 mit Cryptoworks.&lt;br /&gt;
&lt;br /&gt;
Es gibt folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
DBox2:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/tts/1 =&amp;gt; remote EMMs gehen an das Multicam = Karte im Multicam der dBox2&lt;br /&gt;
&lt;br /&gt;
Dreambox:&lt;br /&gt;
 REMM=/dev/tts/0 =&amp;gt; remote EMMs gehen an den seriellen Port = Karte im externen Kartenleser&lt;br /&gt;
 REMM=/dev/sci1 =&amp;gt; remote EMMs gehen an den oberen Slot = Karte im oberen Slot der Dreambox&lt;br /&gt;
 REMM=/dev/sci0 =&amp;gt; remote EMMs gehen an den unteren Slot = Karte im unteren Slot der Dreambox&lt;br /&gt;
&lt;br /&gt;
Das Senden von Remote-EMMs muss beim Client nicht extra aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Bei korrekter Konfiguration liefert der Server nach der ersten Verbindung seine Kartendaten (HEX-Seriennummer) an den Client, dieser filtert anhand der übermittelten Kartendaten die zutreffenden EMMs aus dem Datenstrom heraus und übermittelt die Daten an den Server. Dort werden je nach AU-Konfiguration D0, D2 oder D3 an die Karte weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
Bei erfolgreicher Weiterleitung schickt der Server eine &amp;quot;Quittung&amp;quot; an den Client.&lt;br /&gt;
&lt;br /&gt;
Wenn man die Logausgabe aktiviert hat, sieht man folgende Sequenzen im Log:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Paket von .... CMD=05 ...&amp;quot; =&amp;gt; beim Client eingehende Kartendaten&lt;br /&gt;
 &amp;quot;Paket von .... CMD=06 ...&amp;quot; =&amp;gt; beim Server eingehende EMMs&lt;br /&gt;
&lt;br /&gt;
Im Erfolgsfalle protokolliert der Server folgendes:&lt;br /&gt;
 &amp;quot;Oct  5 01:18:26 camd3: emm D0 auf Slot /dev/tts/1 erfolgreich&amp;quot; ( ... oder D2 bzw. D3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Was ist cascading&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr einen Server betreibt, welcher eine CW-Anfrage eines Clients nicht beantworten kann (da er die nicht entschlüsseln kann), kann die Anfrage an einen anderen Server weitergereicht werden (der muss sich dann in camd3.servers befinden). Die Anfrage kann maximal 3 mal an einen anderen Server weitergereicht werden. Seit der Version 3.668 wird Cascading User-bezogen gesteuert, d.h die Berechtigungen werden einzelnen Benutzern erteilt&lt;br /&gt;
&lt;br /&gt;
Falls keine weiteren Parameter bei einem User angegeben sind ist Cascading in &amp;amp; out für diesen User aktiviert.&lt;br /&gt;
Falls man für einen User Cascading regeln will muss man eine Services Datei für diesen Anlegen und dem Usernamen zuweisen s.o.&lt;br /&gt;
Das Cascading selber wird dann in der services Datei geregelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services Datei&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beispieldatei von doz21:&lt;br /&gt;
&lt;br /&gt;
 [QUOTE]&lt;br /&gt;
 # AAAA:BBBBBB:CCCCCC:D:E&lt;br /&gt;
 #&lt;br /&gt;
 # AAAA		caid&lt;br /&gt;
 #	BBBBBB	provider&lt;br /&gt;
 #	CCCC		service&lt;br /&gt;
 #	D				IN_CASC (1-ja, 0-nein)&lt;br /&gt;
 #	E				OU_CASC	(1-ja, 0-nein)&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Start&lt;br /&gt;
 1702:000000:0008:0:0&lt;br /&gt;
 1722:000000:0008:0:0&lt;br /&gt;
&lt;br /&gt;
1702 &amp;amp; 1722 =&amp;gt; Sind die ChannelIDs, hier Premiere für Sat und Kabel.&lt;br /&gt;
&lt;br /&gt;
000000 =&amp;gt; Ist der Provider&lt;br /&gt;
&lt;br /&gt;
0008 =&amp;gt; ist der Services oder anders gesagt die Hex des Kanals. 0008 steht z.B. für Premiere Start.&lt;br /&gt;
Mit dem Eintrag FFFF als Platzhalter werden alle Services aktiviert, so dass nicht alle Sender einzeln eingetragen werden müssen (seit 3.812)&lt;br /&gt;
&lt;br /&gt;
0:0 =&amp;gt; regelt das Cascading In und Out. 1 erlaubt dem User Cascading 0 unterbindet dieses.&lt;br /&gt;
&lt;br /&gt;
Die Anfragen können nicht beliebig oft weitergeleitet werden, da sonst irgendwann der Traffic zu groß wird. Der Server der die Anfrage weiterleitet wird muss einem Zugriff erlauben. (Der Client muss also dort in der camd3.users eingetragen sein).&lt;br /&gt;
Weiterhin muss natürlich der weiterleitende Server selbst als Client bei einem anderen Server eingetragen sein.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;IN_CASC&amp;quot; und &amp;quot;OUT_CASC&amp;quot; muss nur bei weiterleitenden Servern hinter dem 1. Server aktiviert sein. Beim 1. Server muss nur OUT_CASC aktiviert sein, da die eingehende Anfrage des Clients eine &amp;quot;normale&amp;quot; Anfrage ohne Cascading-Kennung ist. Beim Client selbst müssen keine Cascading-Parameter aktiviert sein, da dieser ja nur eine Anfrage an &amp;quot;seinen&amp;quot; Server stellt und eine normale Antwort erhält. Beim letztendlichen Server, der die Anfrage beantwortet, muss nirgends mehr &amp;quot;OUT_CASC&amp;quot; stehen, da er nicht mehr weitere Server befragt, mindestens eine Nutzerkennung muss aber &amp;quot;IN_CASC&amp;quot; aktiviert haben, da sonst Kaskadeanfragen nicht bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
Ein Client möchte ein Programm sehen, das der Server nicht entschlüsseln kann, dann gibt er(der Server) die Anfrage weiter an einen anderen Server, wo er (der erst angefragte Server) vorher als Client eingetragen wurde. Dieser entschlüsselt dann das Signal und schickt es, über den erst angefragten Server, an den Client zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselung:&#039;&#039;&#039;&lt;br /&gt;
Weiterhin wird die Kombination aus Username und Passwort zur Generierung eines Verschlüsselungsstrings genutzt. In den aktuellen Versionen von camd3 wird die Übertragung zwischen Client und Server immer verschlüsselt. Vor allem beim Cardsharing über das Internet ist dies mit Sicherheit von Interesse. Bei der Vorgängerversion musste noch ein Schlüssel &amp;quot;von Hand&amp;quot; eingegeben werden und die Verschlüsselung konnte auch abgeschaltet werden. Wenn die Kennungen auf Client- und Serverseite nicht übereinstimmen ist es nicht nur so, dass der Server wegen fehlender Berechtigung keine Antwort gibt, er kann die Anfrage erst gar nicht &amp;quot;verstehen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
== Einbau der camd3 (Image ist noch ohne camd3) ==&lt;br /&gt;
== Nachdem wir das Binary eingebaut haben kommen nun die Konfigs ==&lt;br /&gt;
== Ein erster Test... ==&lt;br /&gt;
== Einbau der camd3_start,stop.pcamd ! ==&lt;br /&gt;
== Update einer neueren camd3-Version (Image hatte bereits camd3 an Board) ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines Nicht-Beschreibbaren Bereiches im Image ==&lt;br /&gt;
&lt;br /&gt;
== Bearbeiten eines CRamFS-Images mit New-Tux-Flash-Tools unter WinXp ==&lt;br /&gt;
== Bearbeiten eines CRamFS-Images ==&lt;br /&gt;
== Bearbeiten eines Squash-Images ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Konfiguration der camd3&#039;&#039;&#039; =&lt;br /&gt;
== Konfigdateien/Localhost/etc. ==&lt;br /&gt;
== Heimnetz-Sharing/Internet-Sharing ==&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Nachtrag/Credits/Dateianhang&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die camd3 ist ein Smartcard-Emulator für verschlüsselte, digitale TV- und Radiosender. Sie unterstützt aber auch originale Smartcards. Ebenso kann man mit ihr Cardsharing via Heimnetzwerk und via Internet betreiben, und sie unterstützt das Multicam...&lt;br /&gt;
&lt;br /&gt;
[span=seagreen][COLOR=yellow][B]Was heisst denn camd3 überhaupt ?[/B][/COLOR][/span]&lt;/div&gt;</summary>
		<author><name>Limette</name></author>
	</entry>
</feed>