De/Hardware Methode Anleitung

From Xbox-Linux

von Michael Steil, 5. Juli 2003 (überarbeitet 29. März 2004)

Übersetzung: Steffen Schröder, 19. August 2006


Diese Anleitung beschreibt, wie die XBox für ausschließliche Linux-Nutzung modifiziert wird.

Table of contents

Einleitung

Die XBox ist eine IBM-kompatibler PC, mit einem Unterschied: Sie führt nur Code aus, der von Microsoft autorisiert wurde, i.d.R. muss der gesamte ausführbare Code mit einem Microsoft-eigenen Schlüssel signiert sein. Deshalb wird Linux nicht laufen wenn man eine XBox-Linux Installations-CD in eine Standart-XBox einlegt.

Aber, es gibt bis jetzt einige Wege um diese Sperre zu umgehen:

  • Die 007/Mechassault Methode
  • Die Dashboard Methode
  • Die "onboard TSOP" Methode

Es ist zu beachten, dass die Anwendung dieser Methoden zu Garantieverlust fürhen kann. Wir übernehmen keine Haftung für Schäden an ihnen oder ihrer XBox.

Die 007/Mechassault Methode

Sowohl dass Spiel "007 Agent Under Fire" (Electronic Arts) als auch das Spiel "MechAssault" (Microsoft) enthalten Fehlfunktionen, die ausgenutzt werden können um Linux zum laufen zu bringen. Alles was man tum muss ist, ein speziell modifiziertes Savegame zu laden und schon lässt sich Linux starten.

Das Problem hierbei ist, dass zum Starten von Linux jedesmal die Spiele-CD eingelegt werden muss und "Load Game" ausgewählt werden muss. Ausserdem, ist es unmöglich die DVD aus dem Laufwerk zu nehmen währen Linux ausgeführt wird.

Die modifizierten 007-Savegames finden sie woanders.

Die Dashboard Methode

Eine weitere Fehlfunktion findet sich im Dashboard, dass ist die Applikation, die läuft wenn sich kein Spiel im DVD-Laufwerk befindet, sie macht es möglich Linux zu starten wenn die XBox eingeschaltet wird - anstelle des Dashboards. Die 007/Mechassault Methode wird benutzt um die Dashboard-Modifikation zu installieren, die Spiele-DVD muss so nur einmal benutzt werden, von nun an wird Linux immer dann starten wenn sich keine Spiele-DVD im Laufwerk befindet. Auch für diese Methode muss die XBox nicht geöffnet werden und das DVD-Laufwerk kann weiter benutzt werden, da Linux von der Festplatte bootet.

Durchführung der Modifikationen

Die 007/MechAssault Methode

Vorraussetzungen:

  • entweder das Spiel "007 Agent Under Fire" oder das Spiel "MechAssault"
  • modifizierte Savagames für das entsprechende Spiel
  • die Möglichkeit auf ein mit FATX formatiertes USB-Gerät zu schreiben (siehe unten)

Es gibt unterschiedliche Möglichkeiten um auf einem USB-Gerät mit FATX-Dateisystem zu schreiben:

  • eine andere bereits modifizierte XBox nutzen um ein USB-Speicher-Gerät beschreiben, wie z.B. einen USB-Stick oder eine XBox Memory Card
  • ein USB-Speicher-Gerät von einem Linux, mit FATX-Unterstützung, aus am PC beschreiben
  • bereits vorhande FATX-Images auf ein USB-Speicher-Gerät von einem PC oder einer Linux-XBox schreiben
  • die XBox öffnen und die Festplatte hot-swappen auf einen Linux-PC der FATX unterstützt - in diesem Fall wird kein USB-Speicher-Gerät benötigt, jedoch muss die XBox geöffnet werden.

Savegames auf ein USB-Gerät kopieren

Die Idee ist es, ein modifiziertes Savegame(der das Spiel abstürzen lässt und Linux lädt) auf eine unmodifizierte XBox zu kopieren. Soll die XBox nicht geöffnet werden, ist hierzu eine XBox-Memory-Unit notwendig. Die XBox acceptiert jedoch auch die meisten USB-Speichermedien, wie USB-Sticks und ZIP-Laufwerke als Memory-Units.

Die benötigten Savegames können hier heruntergeladen werden: [1] (http://www.xbox-linux.org/wiki/Download#Action_Replay_Saved_Games_ZIP_Files)

Eine Memory-Unit mit einer anderen XBox erstellen

Zur Durchführung wird eine andere XBox benötigt, die bereits modifiziert wurde, so dass die Savegames auf Laufwerk E: hochgeladen werden können. Nun muss der USB-Stick oder die XBox-Memory-Unit angeschlossen und die Savegames darauf kopiert werden. Dazu werden die Savegame-Management-Funktionen des Dashboards benutzt.

Eine Memory-Unit mit einem PC mit FATX-Unterstützung erstellen

Hierfür wird eine wird ein USB-Speicher-Gerät benötigt(eine XBox-Memory-Unit wird nicht funktionieren) und einen XBox-USB-Adapter. Es muss ein neuer Linuxkernel kompiliert werden, der Unterstützung für das FATX-Dateisystem enthält. Dazu müssen die Kernelsourcen mit dem XBox-Linux-Patch patchen und FATX einschalten. Nun ist ihr PC bereit FATX-Dateisystem zu schreiben und zu lesen. Zuerst wird das USB-Gerät mit dem XBox-USB-Adapter an die XBox angeschlossen und im "Memory"-Menu formatiert. Anschließend wird es an den PC angeschlossen und die Savegames werden darauf kopiert.

Eine Memory-Unit mit einem Linux-PC und FATX-Images erstellen

Wenn die Savegames im FATX-Image-Format vorliegn und nicht als ZIP- o. TGZ-Datei, können sie einen Linux-PC benutzen um die RAW-Images mit dem "dd"-Befehl auf das USB-Gerät zu schreiben. Wie unter 2.1.2 funktionieren auch hier keine XBox-Memory-Units, es wird also wieder ein XBox-USB-Adapter und ein USB-Speicher benötigt.

Die XBox öffnen und die Festplatte "hot-swappen"

Diesmal wird kein USB-Gerät oder eine XBox-Memory-Unit benötigt, jedoch muss die XBox geöffnet werden. Anschließend wird die Festplatte bei eingeschalteter XBox entnommen und an einen Linux-PC mit FATX- und XBox-Partitions-Unterstützung der bereits läuft und im LILO/Grub boot menu. Der PC wird die Festplatte erkennen und kann Laufwerk E: mounten. Die Savegames können nun ins Unterverzeichnis UDATA kopiert werden. Nach der Anwendung dieser Methode sind die Savegames bereits auf der Festplatte, die restlichen Schritte von 2.1.2 können übersprungen werden.

Die Savegames auf die XBox-Festplatte kopieren

Sobald sich das Savegame auf dem USB-Gerät befindet, kann dieses mit jeder unmodifizierten XBox verbinden und mit Hilfe des Dashboards auf die Festplatte der XBox kopiert werden.

Linux starten

Starten sie jetzt das Spiel und wählen sie "Load Game". Bei 007 wählen sie "XBox Hard Disk", bei MechAssault wählen sie "Run Linux". Linux wird jetzt starten. Diesen Schritt können sie immer wiederholen, wenn sie Linux starten wollen. Es werden keine USB-Geräte mehr benötigt - jedoch kann es weiter benutzt werden um die Savegames auf weitere XBoxen zu kopieren.

Die Dashboard Methode

Linux kann leicht dauerhaft auf die XBox-Festplatte installiert werden, dass es bei jedem Starten der XBox bootet. Natürlich laufen darauf weiter Spiele, wenn man während des Einschaltens eine DVD einlegt.

Es ist sehr zu empfehlen das XBox-Dashboard auf die Version mit "XBox-Live"-Unterstützung zu updaten. Dies geschieht indem man bei einem Spiel mit Live-Unterstüzung(z.B. MechAssault) den Menüeintrag "XBox Live" auswählt. Es wird keine XBox Live-Mitgliedschaft benötigt, es muss nur der Menüeintrag ausgewählt werden.

Jetzt wird Linux gestartet mithilfe einer der Methoden die unter 2.1 beschrieben sind, dann wird, mit Hilfe von Linux, auf C:/ das Verzeichnis "fonts" in "fonts.old" umbenannt. Anschließend muss ein neues Verzeichnis "fonts" erstellt werden, in das die Dateien "ernie.xtf" und "bert.xtf" kopiert werden. Dann wird die Datei "default.xbe", die zusammen mit dem Dashboard-Hack kommt, nach C:/ kopiert zusammen mit "linuxboot.cfg", vmlinuz und initrd. Beim nächsten Start der XBox ohne Spiel wird dann Linux starten.

Durch eine Rückumbennenung des "fonts.old"-Ordners in "fonts" kann Linux ganz einfach deinstalliert werden.

Bitte bedenken Sie dass das Spiel jedesmal benötigt wird um Linux zu installieren, oder um es zu deinstallieren falls bei einer Installation etwas schief läuft. Solange Linux installiert ist, ist das Dashboard nicht mehr benutzbar.

Caution

Wenn sie den Strom der XBox solange ausstecken, dass sie die Zeiteinstellung verliert, wird das Dashboard jedesmal starten wenn die XBox eingeschaltet wird. Sie fragt nach Zeit und Datum, wobei ignoriert wird dass eine DVD im Laufwerk liegt. Wenn das passiert und die Linuxinstallation ist beschädigt(z.B. fehlender Kernel oder initrd) gibt es keinen anderen Weg, Linux zu deinstallieren, als die XBox zu öffnen, weil alle Methoden von 2.1 nicht mehr funktionieren. Also Vorsicht, wir arbeiten jedoch bereits an einer Lösung.

Es ist zu bedenken dass dieser fehler nicht bei der MechAssault-Methode passieren kann. Es besteht jedoch die Möglichkeit in ähnliche Schwierigkeiten zu geraten, aber leicht dadurch gelöst werden, indem man die XBox einschaltet und sie eine halbe Stunde in der Schleife hängen lässt.

Es gibt eine spezielle Clock Loop Problem HOWTO(Englisch), es empfiehlt sich sie zu lesen.


Die onboard TSOP Methode

Eine weitere Möglichkeit Linux dauerhaft zu installieren ist, den das Flash ROM auf dem XBox-Motherboard meit einem XBox-Linux-BIOS neu zu programmieren. Dafür muss die XBox jedoch göffnet werden um zwei Brücken auf das Motherboard aufzulöten, damit der Schreibschutz auszuschalten, wie es in der TSOP flashing HOWTO beschrieben ist. Die Anleitung beschreibt den Umbau für alle Versionen(revisions) der XBox, also vergewisserns sie sich welche Version sie vor sich haben befor sie die Modifikationen durchführen.

Holen sie sich das Raincoat-Programm und ein XBox-Linux-BIOS ("Cromwell") Image von unserer Download-Seite auf Sourceforge (http://sourceforge.net/project/showfiles.php?group_id=54192). Danach starten sie Linux mit der MechAssault-Methode wie unter 2.1 beschrieben. Benutzen sie ihren Lieblings-FTP-Client um raincoat und das BIOS-Image vom PC aus die XBox zu kopieren, wenn sie nicht schon drauf sind.

NoteMechInstaller Benutzer: Die kanonischen UNIX-Verzeichnisse (/bin, /etc, /tmp) sind mit Emergency Linux nicht beschreibbar. Warum? Weil durch Emergency Linux diese Verzeichnisse als cramfs Dateisystem (http://en.wikipedia.org/wiki/Cramfs) angelegt werden. Benutzen sie /mnt/X, /mnt/Y, oder /mnt/Z als temporäre Verzeichnisse anstatt der oben aufgeführten.

Angenommen die Dateien heißen raincoat-0.10.tbz2 und cromwell-2.40.tar.gz (so hießen sie währen der Entstehund dieses Textes), und sie werden ins Verzeichniss /tmp hochgeladen, dann werden sie mit folgenden Befhlen entpackt:

cd /tmp

tar xvjf raincoat-0.10.tbz2
cp raincoat-0.10/bin/raincoat /bin
cp raincoat-0.10/etc/raincoat.conf /etc

tar xvzf cromwell-2.40.tar.gz
cd cromwell-2.40

CautionWenn sie eine 1.0 oder 1.1 Xbox (1 MB Flash ROM) haben, benötigen die 1024 KByte Version des Images, ansonsten zerstören sie ihre XBox!

Geben sie nun Folgendes, abhängig von der Größe des BIOS ihrer XBox, ein

raincoat -p cromwell.bin
or
raincoat -p cromwell-1024.bin

um den aktuellen Flashing-Prozess zu starten.

Jedes Mal wenn sie nun ihre XBox starten wird das Linux BIOS nach einer Linux CD fragen, solange auf der Festplatte kein Linux installiert ist. Die neusten XBox Linux BIOS Versionen zeigen ein grafisches Menü mit eine Auswahl an Bootoptionen an - detaillierte Informationen finden sich im Cromwell Manual.

Bitte beachten sie dass die XBox nun keine Spiele mehr ausführt!!

Links

Im Moment können wir ihnen keine direkten Links zu den Savegames anbieten, also müssen sie sie selbst finden (Die XBox-Linux-Website ist ein guter Ausgangspunkt). Wir denken darüber nach demnächst eine Liste von Links anzubieten.