Inhaltsverzeichnis
1. Einführung
Die RS/6000 7024 Modell E20 ist eine ältere Server-Maschine von IBM. Sie wurde bis 1997 hergestellt, besitzt ein Tower-Gehäuse und hat folgende Konfigurationsdaten:
- PowerPC 604e-Prozessor mit 100 bis 233 MHz (auf Platine montiert, daher wechselbar)
- PReP Architektur
Keine Grafikkarte
Ein SYM53C825 SCSI Host-Adapter onboard
- SCSI-CD-ROM und -Bandlaufwerk (DDS-2) sowie eine 2 GB-Platte serienmäßig
- Platz für vier weitere Platten mit bequemen Montage-Einschüben
- AIX 4.1.3
Der letzte Punkt stört natürlich gewaltig . GNU/Linux auf dieser Maschine laufen zu lassen, ist anfangs nicht ganz ohne, dann funktioniert es aber ganz hervorragend.
Das Alter des Rechners ist in diesem Fall ein Problem; im Netz findet man ein Posting, dass Kernel 2.1.56 gut funktioniert. Danach muss es wohl mal irgendwann einen Bug gegeben haben, der nie beseitigt wurde. Im Prinzip kann man alle "vielversprechenden" Kernels, die für RS/6000 geeignet sein sollen, vergessen. Der SCSI-Treiber hängt sich beim Booten auf, und auch die Netzwerkkarte (IBM FC 28xx, mit AMD PCNet-Chipsatz) tut nicht.
Dennoch gibt es Hoffnung: Leigh Brown hat einen Patch für die E30 und linuxppc_2_4_devel von http://penguinppc.org/ 1 veröffentlicht. Diesen gibt es auf der o.a. Seite -- wie auch ein fertiges Kernel-Image, das man mit dd auf eine Bootdisk schreiben kann. Dieser Patch ist ziemlich fies -- er enthält eine fest verdrahtete Tabelle der PCI-Einstellungen, die für die RS6000 E20 oder E30 verwendet werden. Trotzdem ist er die einzige Möglichkeit, Linux überhaupt zum Laufen zu bringen.
Ein großer Vorteil beim Einsatz von Linux ist, dass man statt teurer RS/6000 Original-"Features" auch ganz normale PCI-Karten2 bzw. IBM SCSI-Festplatten verwenden kann.
2. Debian-Installation (woody)
2.1. Vorbereitungen
Benötigt wird:
Ein Satz Debian-CDs für PowerPC (für Mitglieder der LugLudwigsburg: BennySiegert hat diese CDs und verleiht sie auf Anfrage)
- Alternativ (bei Netzinstallation) kommt man auch ohne aus
Den fertigen Kernel von Philippe Andersson (s.u.), mit dd auf eine Diskette geschrieben
Die "Root-Floppy" der Debian boot-floppies für PowerPC
- Ein Nullmodemkabel (entfällt, falls die Maschine eine Grafikkarte enthält)
Einen zweiten Rechner für das andere Ende des Nullmodemkabels
Als erstes wird das Kabel angeschlossen. An der RS/6000 schließt man es über den Adapter, der jeder Maschine beiliegt, an die serielle Schnittstelle an. Auf dem anderen Rechner kann man entweder minicom verwenden (nicht ganz empfehlenswert, da die VT100-Emulation nicht vollständig ist) oder das Programm cu aus dem uucp-Paket:
cu -l /dev/tts/0 # Linux mit devfs cu -l /dev/ttyS0 # Linux ohne devfs cu -l /dev/cua00 # OpenBSD, NetBSD cu -l /dev/cuaa0 # FreeBSD
Wichtig ist es 9600 bps einzustellen, cu macht das IIRC automatisch.
Die Original-Netzwerkkarte mit AMD-Chipsatz läuft nicht, da der Treiber broken ist. Als Workaround empfiehlt es sich eine normale PCI-Netzwerkkarte (z.B. Intel) einzubauen. Vorteil: Die IBM-Karte kann nur 10 MBit, die Intel-Karte ist wesentlich billiger als eine originale RS/6000-100MBit-Karte.
2.2. Beginn der Installation
Jetzt kann man die RS/6000 endlich einschalten. Zuerst erscheint nur ein Häkchen (>), dann werden die Subsysteme getestet. Beim letzten Eintrag "boot" werden die Platten initialisiert, und es der Lautsprecher piept einmal. Noch vor diesem Piep sollte man die Taste "5" drücken, dann gelangt man in das Menü der Firmware. Hier kann man mit der Auswahl 1 die Bootreihenfolge umstellen (Tipp: Vorher in den Grundeinstellungen die Sprache auf Deutsch setzen). Das Diskettenlaufwerk wird an die erste Stelle der Bootreihenfolge gesetzt. Danach wählt man den Eintrag "Betriebssystem jetzt starten" und legt die Diskette mit dem Kernel ein.
Man gelangt in eine Eingabezeile für die Kernel-Parameter. Die Kommandozeile sollte ungefähr so lauten:
root=/dev/fd0 load_ramdisk=1 console=ttyS0,9600
Jetzt kommt der spannende Moment: Der Kernel wird geladen und initialisiert die Hardware. Wenn alles gut geht, sollte nach einer Weile folgende Meldung erscheinen:
VFS: Insert root floppy and press ENTER
Jetzt legt man die Debian Root-Diskette ein. Das Installationsprogramm erscheint. Wer schon einmal Debian auf i386 installiert hat, wird sich sofort heimisch fühlen. Allerdings gibt es einige Stolpersteine:
- Wenn man eine Shell benutzen will, muss man im Hauptmenü den Eintrag "Execute a shell" wählen. Der Wechsel des Terminals ist über eine serielle Konsole naturgemäß nicht möglich.
Der Schritt "Partition a hard disk" startet cfdisk, das die AIX-Partitionstabelle findet und gleich aussteigt. Das Installationsprogramm bietet einem an die ersten Sektoren der Festplatte zu löschen. Danach kann man den Schritt noch einmal wiederholen.
Da Linux normalerweise nicht mit AIX-Datenträgern umgehen kann, sollte man zumindest eine ganze Festplatte für Linux reservieren. Auf dieser löscht man mit dd die ersten paar Sektoren und legt mit fdisk eine normale PC-Partitionstabelle an. Die erste Partition sollte so klein wie möglich sein (ca. 2 MB) und den Typ 0x41 -- PPC PReP Boot -- besitzen. Die Partition bekommt also kein DateiSystem und wird auch nicht gemountet.
Man kann vom Installer aus die Platte noch nicht bootfähig machen. Der erste Neustart erfolgt mit der Bootdiskette der Installation, aber natürlich mit anderem root-Parameter, z.B.:
root=/dev/hda6 console=ttyS0,9600
2.3. Bootkonzept
Auf der PReP-Architektur gibt es ein sehr originelles Bootkonzept: man benötigt keinen BootManager zum Start von Linux, der benötigte Code ist im Kernel bereits enthalten. Wenn man einen Kernel (zImage.prep) mit dd auf eine Diskette schreibt, ist diese bootfähig.
Um nun von Festplatte booten zu können, benötigt man eine Bootpartition (siehe vorheriger Abschnitt). Auf diese Partition wird dann mit dd einfach das Kernel-Image geschrieben:
dd if=zImage.prep of=/dev/discs/disc0/part1 bs=1k
WICHTIG: Es ist mit diesem Bootkonzept nicht möglich alternative Kernel als "Fallback" zu haben. Zumindest die Diskette mit dem Installationskernel sollte man für Notfälle immer parat haben.
Wenn man nach der Installation ein RAID1 einrichtet3, sollte auf beiden Platten die erste Partition als Bootpartition eingerichtet sein -- mit identischen Kerneln. In der Firmware kann man beide Festplatten als bootbar eintragen.
2.4. Nach der Installation
Es gibt auf der PowerPC-Architektur Probleme mit hwclock. Als Workaround kann man die hwclock-Aufrufe komplett deaktivieren. Eine Lösung dafür kenne ich nicht. PPC-Experten vor!
Falls noch logische Datenträger von AIX übrig sind, kann man sie mit EVMS unter Linux einbinden. Dabei kann man dann gleich sehen, ob das jfs unter Linux tatsächlich mit dem von AIX kompatibel ist .
3. Links
Philippe Anderssons RS/6000-Seite hat alles für diese Maschinen: Kernels, Bootprotokolle und den benötigten Patch.