Linux auf IBM RS/6000 43P-140 October 22, 2006
Posted by Tobias Scherbaum in : IBM, Spielzeug , 4commentsDas Bedürfnis auch auf einer IBM RS/6000 (hier 43P-140, also eine PReP Maschine) war gegeben, die Umsetzung der Idee aber schon ein wenig schwieriger - aber von vorne ;)
Grundsätzlich ist bei diesen Maschinen die Unterscheidung zwischen PReP und CHRP (siehe Wikipedia) anzustellen, die 43P-140 ist eine Maschine mit (älterer) PReP Plattform - was den Linuxbetrieb und die Installation etwas schwieriger macht. Danny van Dyk berichtete von der Installation seiner RS/6000 (aber einer CHRP Maschine) wenig exotisches - die aktuelle Gentoo LiveCD bootet und die Installation des Systems sowie Nutzung des yaboot Bootloaders funktionieren nahezu problemlos.
tobias@ralph ~ $ cat /proc/cpuinfo
processor : 0
cpu : 604r
clock : 232MHz
revision : 49.2 (pvr 0009 3102)
bogomips : 232.44
machine : PReP IBM 43P-140 (Tiger1)
upgrade cpu : not present
scsi fuse : ok
simms : 0:128MiB 1:128MiB
l2 cache : sync burst, parity, 1MiB
Zur Linux Installation auf einer PReP RS/6000 gibt es grundsätzlich 3 Möglichkeiten: Boot von Floppy (wo gibts funktionierende?), Boot von CD (wo gibts eine funktionierende?) oder Netboot (wo gibts nen Kernel mit initrd?). Die Suche nach Netboot und Floppy Images verlief eher erfolglos, ich hatte zwischenzeitlich einen Satz Disketten heraus gekramt und verschiedene im Netz kursierende Kernel funktioniert, aber das passende Userland wollte sich partout nicht finden oder booten lassen. Das Netbooting schied aus gleichen Kriterien aus. Bleibt also die Suche nach einer auf PReP Maschinen bootbaren CD. Auch diese gestaltet sich eher schwierig, in den Gentoo Foren fand sich eine mehr als 2 Jahre alte CD - diese konnte aber auch nach mehreren Versuchen nicht dazu bewogen werden eine Initrd zu laden. Weitere Recherchen ergaben dann, dass der PPC Port von OpenSUSE die RS/6000 unterstützen soll, die 10.1 CD wollte jedoch nicht booten - ein kurzer Blick auf die OpenSUSE Webseite verrät dann auch warum, die 10.0 CD bootete dann völlig problemlos. Es empfiehlt sich ein “rescue” an die Bootbefehlszeile anzuhängen, Yast über eine 9600 Baud serielle Konsole ist zwar an für sich ein Erlebnis, aber selbst die Installation von OpenSUSE ist damit nicht möglich :P
Die Unterschiede zwischen den 10.0 und 10.1 OpenSUSE CDs förderten dann auch das nächste Problem ans Tageslicht. Dank dem ppc/ppc64 Merge im Linux Kernel >=2.6.15 ist der Kernel 2.6.14.x der derzeit letzte auf PReP Maschinen nutzbare (2.6.18 habe ich mir noch nicht angeschaut, aber …). Die weitere Installation lässt sich “wie gehabt” und analog zu anderen Plattformen durchführen - bei der Partitionierung muss jedoch als erste Partition eine (kleine) PPC PReP Boot Partition (Typ 41) angelegt werden.
Aus der PReP Boot Partition wird der Kernel gestartet, folglich muss der Kernel erstmal dort hinein - dd erledigt das. Damit wäre die Installation nahezu abgeschlossen - bis auf die “Standard” Kernelparameter wie das Rootfilesystem. Da es keinen Bootloader gibt der diese Parameter übergeben kann bleiben zwei Möglichkeiten: Defaultparameter in der Kernelkonfiguration angeben (theoretisch schön, funktioniert aber praktisch leider nicht) oder die Nutzung des “preptool” mit dem Kernelparameter fest ins Bootimage geschrieben werden können - funktioniert mit einem 2.6.x Kernel leider auch nicht …
Die gesamte Installation gestaltet sich “ein wenig” kompliziert, danach läuft die Maschine aber durchaus stabil. Wer selbst mit seiner 43P-140 spielen möchte, hier findet sich die für mich funktionierende die Kernelkonfiguration (2.6.14.7). Viel Spaß beim Nachbauen ;)
