UNMODDED XBOX-LINUX WHOTO - DEUTSCH

Version: work in progress, 18.07.2003, Author: Roland Lezuo

Über

Diese HOWTO versucht die Schritte zu erklären die nötig sind um ein Linux auf einer Microsoft XBox zu installieren. Alle dabei verwendeten Hilfsmittel sind ebenfalls unter Linux zu benutzen, und sind reine Softwaretools, es ist keine Hardwaremodifikation (sprich ModChip) notwendig.


Alle Copyrights gehören ihren Eignetüern


Ich konnte das alles bis jetzt nur auf einer XBox versuchen, weitere Erfahrungen, Ergänzungen oder Korrekturen bitte an mich

Ich kann natürlich keinerlei Garantie oder Haftung für den hier aufgezeigten Weg übernehmen, Sie sind für alles was sie machen selbst verantwortlich

Was braucht man

Schritt fürr Schritt Anleitung

Verscheissen der Garantie und öffnen der XBox

Öffnen Sie Ihre XBox von der Unterseite, dazu muss man 6 Schrauben entfernen, 2 sind in der Mitte der langen Seiten unter Klebern versteckt, die restlichen 4 sind unter der Gumminoppen welche die rutschfesten Fuuml;sse der XBox darstellen versteckt, diese einfach abreissen. Danach den Deckel weg und vorsichtig die Festplattenhalterung entfernen TODO:sind hier noch Schrauben? Ziel ist es die Festplatte der XBox abgesteckt in der Hand zu halten. Bei unserem Model handelte es sich hier um eine 10GB Festplatte der Marke Seagate, Standard ATA66/100 TODO:Modelnummer, es gibt aber auch Varianten mit 8GB

Hardwarevorbereitungen am PC

Wir haben sehr viel Zeit damit verbracht das zum Laufen zu bekommen, darum so genau wie möglich unsere Hardwarekonfiguration des PC's:
Alle CD Laufwerke vom IDE Bus genommen, und nur eine Festplatte im System (auf dieser das später beschrieben Linux). Diese Festplatte sollte am primären Kanal des IDE Kontrollers hauml;ngen und als Slave gejumpert sein (sprich: /dev/hdb). Wichtig: Der 2te Stecker des bei uns 100pologen IDE Kabels sollte so liegen dass man leicht eine 2te Festplatte daran anstecken kann, ohne den PC ausschalten zu müssen ;)

Software am PC

Bei uns führte folgendes zum Ziel: eine vanilla kernel 2.4.20 (wie man ihn von www.kernel.org bekommt) und die XBox Patches für ebendiesen von www.sf.net/projects/xbox-linux. Diese Patch trug die Versionnummer 0.7.0

Erzeugen des Kernels

den Kernel auspacken, dazu den kernel ins Verzeichnis /usr/src kopieren und mit "tar jxf linux-2.4.20.tar.bz2" auspacken. Das Verzeichnis mit "mv linux-2.4.20 linux-2.4.20-fatx" umbenennen sodass man später weiss was da drinnen ist. ACHTUNG wenn schon ein Verzeichnis mit dem Namen /usr/src/linux-2.4.20 existiert wird das überschrieben, und das will man nicht!
Den XBox Kernel Patch in das Verzeichnis /usr/src/linux-2.4.20-fatx kopieren und mittels "zless TODO:genauer Dateiname | patch -p1" anwenden, sollte keine Fehler geben.
Falls sie schon eine konfigurierten kernel auf dem System besitzen können sie jetzt dessen .config Datei in dieses Verzeichnis kopieren und sich so einige Konfigurationsarbeit sparen. Wenn dieses konfigurierte Kernel im Verzeichnis /usr/src/linux liegt dann heisst der Befehl "cp /usr/src/linux/.config .". Neuere kernel legen ihre Konfigration manchmal als /proc/config ab, auch das könnte einen Versuch wert sein. Manche Distibutoren packen diese Datei auch nach /boot/kernel-version-config oder ähnlich. Nur wenn sie eine solche Datei gefunden haben hilft ein "make oldconfig", wenn er was fragt einfach ENTER ruecken, wir konfigurieren dann nochmals grafisch nach ;)
Egal ob "make oldconfig" oder nicht, jetzt ein "make menuconfig" (Sie können auch make config verwenden, nur wozu lesen sie das dann überhaupt ;). Kontrollieren sie ob alle Einstellungen passen, als erfolgreicher "make oldconfig" Mensch können sie das meiste wohl überfliegen, wichtig sind folgende Unterstüzungen: in "File Systems" "FATX" und im Unterpunkt "Partition Types" "Advanced partition selection" sowohl "PC BIOS" (wir wollen ja noch booten) und "XBox Partitioning". ACHTUNG: Im "Processor Type and Feature" TODO:stimmt dieses Menu nicht den XBox Support aktivieren, da dieser Kernel den PC booten soll, nicht die XBox
WICHTIG: aktivieren sie im den "file systems" auch das devfs
"make dep bzImage modules modules_install" macht den kernel, darf meine Fehler geben, sonst hilft vielleicht ein "make mrproper" und anschliessendes neukonfigurieren des kernels :(
"cp arch/i386/boot/bzImage /boot/xboxkernel" bringt den Kernel wohin er soll (ACHTUNG: gentoo user müssen u.U. diese Partition davor via "mount /boot" mounten)

Bootloader am PC

Sie brauchen ganz dringen einen bootloader entweder lilo oder grub. Wir haben grub verwendet was wir hier sehr sehr empfehlen mouml;chten

booten mit grub

Glück gehabt, es ist nicht mehr zu tun ;)

booten mit lilo

Pech gehabt, weil: TODO: booten mit lilo

PC testbooten

Mit Grub

wenn sie das System jetzt booten erscheint das Grub boot menu, drücken sie jetzt "c" um in den Kommand Modus von grub zu schalten. Wenn sie alles wie bisher beschrieben gemacht haben booten folgende Sequenz das System "root (hd0,0)" weil nur eine Platte im System ist und grub Platten nummeriert im Gegensatz zu linux. "kernel (hd0,0)/boot/xboxkernel root=/dev/hdb?" statt Fragezeichen ihre rootpartition (versuchen sie von 0 bis 4 wenn sie sie nicht wissen) "boot" danach bootet der Linuxkernel und sie sollte sich in ihrem gewohnten Linux befinden, falls sie die Platte nur für diese Operation zum primären Slave gemacht haben können ruhig einige startscripten fehler produzieren, das sollte alles ignorierbar sein, viel brauchen wir ja nicht.

Mit Lilo

TODO

Hottest Swapping every

Microsoft hat sich sehr viel einfallen lassen um das Installieren eines anderen Betriebssystems "lustiger" zu machen. Einer der Punkte ist es die Festplatte mit einer sehr alten und selten gebrauchten Funktion der ATA Platten zu "locken". Eine gelockte Platte muss entsperrt werden bevor sie bereit ist mit dem IDE Kontroller zu sprechen, dazu sollte dieser ein spezielles Kommando an sie schicken und danach ein 32 Byte langes Passwort. Bevor dies geschehen ist reagiert sie auf jeden anderen Versuch der Kommunikation mit einem Lesefehler. Nun ist es aber so dass das BIOS beim booten die Platten auf korrekte Funkiton hin überprüft und nichts von der Sperre weiss. Darum scheitern die meisten BIOSe beim booten wenn die XBox Platte angesteckt ist.
Die Lösung ist erstaunlich einfach ;) Booten sie den PC und drücken sie "c" sobald das grub menu erscheint. Tippen sie alles ein was es zum booten brauchen, aber bestätigen sie den Befehl "boot" noch nicht. Jumpern sie die XBox Platte als Master, der XBox ist das kein Problem, unsere Platte war ursprünglich als CabelSelect gejumpert. Nun booten sie die XBox mit der XBox Platte angesteckt und sobald die XBox ihr grünes Gesicht zeigen ziehen sie das Datenkabel von der Festplatte ab und stecken den 2ten Stecker des primären IDE Kontroller Datenkabels des PC's in die XBoxplatte, ohne dabei die XBox auszuschalten (die Stromversorgung lassen sie die XBox erledigen). Dann bestätigen sie den "boot" Befehl von grub mittels ENTER Taste, und der kernel sollte booten.
Was haben wir getan? Ganz einfach, haben die schon eingeschalten und von der XBox entsperrte Platte in den PC eingebaut. Der kernel ist klug genug die Äderungen der Plattenparameter zu erkennen und kann sie nun richtig ansprechen.
ACTUNG: es kann sein dass beim Anstecken der XBox Platte nicht alles zu hinhaut wie es soll und das System nicht bootet, oder beide Platten nicht mehr erkennt, das ist uns oft passiert, bei uns "scheint" es geholfen zu haben nach Anstecken der XBox Platte einige Zeit zu warten (30 sec) und erst dann zu booten, aber wer weiss, einfach ein paar Mal versuchen, irgendwann klappts dann schon ;)
TIP: Sie können die Platte jetzt auch wieder abstecken und in die XBox einbauen, sie dort wieder booten um zum Beispiel die Installation zu testen und die Platte dann wieder wie geabt in den PC hotswappen. Sie müssen dazu den PC nicht neu booten (spart Zeit), aber sie dürfen während die Platte nicht da ist nicht auf se zugreifen sonst weigert sich der kernel mit ihr zu sprechen und sie müssen den PC neu starten. Also alles unmounten und erst wieder mounten wenn die Platte wieder drinnen ist.

Installation des LinuxBootloader auf der XBox

Nachdem der kernel also gebootet hat, und die XBox Platte hoffentlich erkannt hat, können sie das device /dev/hda51 mounten. Auf ihm das Laufwerk E: der XBox. "mount /dev/hda51 /mnt/temp" legen sie temp u.U. davor mittels "mkdir /mnt/temp" an. ACHTUNG: wenn sie kein devfs betreiben gibt es das device /dev/hda51 nicht, sie sollten es mittels "mknod /dev/hda51 b 3 51" anlegen können. Vielleicht müssen sie auch "mount -t fatx /dev/hda51 /mnt/temp" schreiben.
Danach müssen sie einige Datein des Microsoft'schen Dashboards austauschen um den Hack perfekt zu machen. Spricht eh fü sich selbst: "cd /mnt/temp" "mv XBox\ Book.xtf XBox\ Book.xtf.old" "mv "Xbox.xtf Xbox.xtf.old" "cp /bla/bla/bert XBox\ Book.xtf" "xp /bla/bla/ernie Xbox.xtf" "cp /bla/bla/default.xbe ." Wobei /bla/bla das Verzeichnis mit den Datei ist die sie aus dem full-disclousre Mail des free-x teams haben.
HINWEIS:Es gibt auch Live enabled XBoxen, dann befinden sich die Schrift Dateien im Unterverzeichnis fonts, tauschen sie diese Dateien aus, wenn sie eine solche XBox hacken bitte ein mail mit den genauen Orten wo die Datein hingehören!
(TIP: wenn sie ein Mail finden und dort nur viele sinnlose Zeichen anhauml;gen dann markieren sie all die sinnlosen Zeichen mit der Maus, lassen die letzte Zeile die nur aus "=" besteht aus und öffnen sie einen Texteditor, keine OfficeApplikation nur einen einfachen Texteditor. Fügen sie alles mittels mittleren Mausklick ein und speichern sie die Datei als dayX.tgz.base64. Mit dem tool base64 (TODO:simmt das so "base64 -d dayX.tgz.base64 > dayX.tgz") können sie diese Datei umcodieren und dann mittels "tar zxf dayX.tgz" auspacken und kommen so zu ernie und bert)
Das wars, der Linuxboot loader ist nun installiert. Wenn immer sie die XBox ohne SpieleDVD eingelegt starten startet der Linux Bootloader.



Das wars, sie sollten jetzt beim booten ohne SpieleDVD im Laufwerk den Linux bootloader sehen können

Eine Distribution installieren

Allgemeines

Der bootloader (default.xbe) kann konfiguriert werden, dazu muss eine Datei names linuxboot.cfg im gleichen Verzeichnis der XBox zum liegen wo auch der bootloader liegt. Das Format dieser Datei ist recht einfach.

ROOT \Device\Harddisk0\Partition1
kernel vmlinuz initrd=initrd pci=biosirq kbd-reset init=linuxrc
	
Dazu braucht es dann noch eine kernel für die XBox und eine initramdisk (initrd). Ein Rootfilesystem welches das eigentliche Linux enthält muss auch erzeugt werden. Diese Schritte sind nicht ganz trivial und werden hier nicht beschrieben. Wir haben sowas gemacht auf Basis der gentoo LiveCD Technik (welche wiederum auf knoppix zu beruhen scheint), nur soviel dazu: initrd ist ein gzip komprimiertes ext2 filesystem. Das rootfilesystem ist ein wie loop device erzeugtes filesystem in einer Datei (man losetup) und das wurzelverzeichnis muss nach dem booten von der initrd dorthin verschoben werden (man pivot_root), aber wie schon gesagt, wir haben schon eine distri gebaut, lesen sie weiter ...

Gentoo Linux 1.4_rc4 stage3 tarball für die XBox

download from: TODO
Starten sie den PC wie beschrieben und führen sie folgende Befehle aus

Das wars dann auch schon, wenn sie die XBox nun booten sollten sie danach am login des gentoo-stage3-tarballs landen. Nun haben sie wahrscheinlich kein Keyboard zur Hand, egal ;) Dieser tarball hat ihre Netzwerkkarte schon gestartet und sshd läuft auch schon Loggen sie sich einfach via "ssh root@192.168.0.23" ein das Passwort ist "billgates".
ACHTUNG: Die XBox verwendet statisch die IP Adresse 192.168.0.23 achten sie darauf dass diese IP nicht vergeben ist und dass ihre Netzwerkkarte auch im 192.168.0.0 Netz erreichbar ist.

Have Fun!