Debian Linux auf IBM RS/6000 43P-150

IBM schreibt zu dieser Workstation:

The IBM RS/6000 43P 7043 Model 150 is an entry-level desktop RS/6000 workstation or workgroup server offered at an affordable price. The 150 provides a continuation of the successful line of entry workstations, offering enhanced performance over the current Model 140.

The Model 150 is a uni-processor system that provides enhanced performance over its predecessor, the Model 140, by utilizing a 250 or 375 MHz PowerPC 604e processor and an enhanced memory controller. With this memory controller, the Model 150 uses SDRAM memory and an 83 MHz memory bus speed. The system memory can also be expanded up to 1 GB.

https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS7043-150

Ich schreibe zu dieser Workstation: Schwarz, schwer, laut. Und alt. Und mit wackligen Speichermodulen. Wenn der Rechner beim Hochfahren mit “E2…” oder “E3…” im Display stehen bleibt liegt das allermeistens am RAM: Dann hilft Rechner aufschrauben, Speichermodule ausbauen, Kontakte putzen, Speichermodule wieder einbauen, hoffen.

IBM hat diesen Rechnertyp um die Jahrtausendwende mit dem Betriebssystem AIX verkauft, eingesetzt wurde die Workstation dann meistens für CAD-Anwendungen. Deshalb gab’s auch leistungsstarke Grafikkarten dafür, z.B. die GXT3000P mit sagenhaften 4096 Bit breitem Speicherinterface – leider überhaupt nicht unter Linux lauffähig.
Vor der Linux-Installation also sicherstellen, dass eine kompatible Grafikkarte im Rechner steckt. In Frage kommen dabei GXT2000P (3D Labs Permedia 2), GXT110P (S3 Trio64V+), GXT120P (Matrox Millenium I), GXT130P (Matrox Millenium II) oder GXT135P (Matrox G450)
Alternativ dazu kann man die Installation über ein an die serielle Schnittstelle angeschlossenes Terminal durchführen. Das habe ich aber nicht ausprobiert.

Debian-Installation

Ich hab lange rumprobiert: Keine einzige Debian-CD startet Linux auf diesem Rechner. Mal stürzt der Rechner beim Laden von Yaboot, dem auf PowerPC gebräuchlichen Bootloader, ab, mal startet zwar Yaboot, aber Yaboot lädt den Kernel nicht. Oder der Kernel wird geladen, verursacht aber sofort eine Kernelpanic.
Im Internet finden sich viele alte Anleitungen mit selbstgebauten Kerneln auf Disketten, gepatchten CD-Images – und viel tote Links. Beim Suchen bin ich dann auf dieses Posting gestoßen: https://forums.gentoo.org/viewtopic-t-42672-postdays-0-postorder-asc-start-25.html – Die Ubuntu 6.06-CD funktioniert! Das tut sie tatsächlich, und sie installiert auch Ubuntu. D.h. der Bootloader Yaboot wird gestartet und funktioniert. Da Ubuntu und Debian nicht so unterschiedlich sind, kann man einfach mit der Ubuntu-CD booten, diese nach dem Start von Yaboot mit einer Debian-Installations-CD austauschen, und losinstallieren.

Also das Ubuntu 6.06-ISO-Image herunterladen (http://old-releases.ubuntu.com/releases/6.06.2/ubuntu-6.06.2-server-powerpc.iso) und auf CD brennen.

Das Debian 4-ISO-Image herunterladen https://cdimage.debian.org/mirror/cdimage/archive/4.0_r9/powerpc/iso-cd/debian-40r9-powerpc-netinst.iso und ebenfalls auf eine CD brennen.

Rechner einschalten, die Ubuntu-CD einlegen, und sobald auf dem Bildschirm der Startbildschirm erscheint solange auf die Taste “F1” einhämmern bis man in den System Management Service (SMS) kommt. Dort die Bootreihenfolge so einstellen, dass der Rechner als erstes von CD startet.

Der Rechner startet ansschließend von der Ubuntu-CD. Beim Yaboot-Prompt dann die Ubuntu-CD durch die Debian-CD ersetzen und “Enter” drücken.

Die Installation läuft dann ganz normal ab, mit einer Ausnahme: Der Debian-Installer bringt wegen des Starts von der Ubuntu-CD die Fehlermeldung “Konnte Vorkonfigurationsdatei nicht laden”. Dann einfach im Menü auf “Installer-Komponenten von CD laden” gehen, irgendeine Komponente wählen (welche ist egal, die laden alle die Basiskomponenten nach), und schon geht’s weiter.

Debian 4 kann anschließend problemlos auf Debian 5 aktualisiert werden.

Ein Update auf Debian 6 funktioniert nur noch teilweise, da der Kernel von Debian 6 (2.6.32-5) beim Booten eine Panic verursacht. Der Start von Debian 6 mit dem Kernel von Debian 5 (2.6.26-2) funktioniert zwar, udev spuckt dann aber ziemlich viele Warnungen aus, sollte also auch auf den Stand von Debian 5 zurückversetzt werden.

Ein Update auf Debian 7 macht die Sache noch schlimmer: Das Update läuft zwar durch, dessen Kernel (3.2) bootet aber ebenfalls nicht. Außerdem funktioniert das Debian 7-udev nicht mit dem letzten lauffähigen Kernel, 2.6.26-2, von Debian 5. Ob sich Debian 7 mit udev von Debian 5 verträgt habe ich nicht ausprobiert.

Aktuell habe ich Debian 6 am Laufen, mit einem neu kompilierten Kernel 2.6.18 von Debian 4 und udev von Debian 5. Warum 2.6.18? Wegen Sound, siehe unten.

Probleme

Sound – ungelöst

Die 43P-150 hat auf dem Mainboard einen cs4232-Soundchip, der per ISA-Bus angebunden ist.

Kein einziger Debian-Kernel hat jedoch für PowerPC die Unterstützung für den ISA-Bus eingeschaltet. Ich habe deshalb den Debian-5-Kernel 2.6.26-2 mit aktivierter ISA-Bus-Unterstützung neu kompiliert. Das ALSA-Modul “snd-cs4232” lässt sich auch laden, belegt aber weder einen IRQ noch einen DMA und funktioniert auch nicht. Das Kernelmodul “cs4232” des ALSA-Vorgängers OSS ist in Linux 2.6.26 nicht mehr vorhanden – aber in den Quellen von Linux 2.6.18!

Also flux die Quellen des Debian-Kernels 2.6.18 heruntergeladen, ISA-Support und OSS eingeschaltet, schnell neu kompiliert (Dauer: 7 Stunden), das “cs4232”-Modul geladen und – lädt!

modprobe cs4232 irq=9 dma=1 dma2=2 io=0x550

Die Modulparameter habe ich aus der Kernel-Dokumentation, da steht, recht vielversprechend:

I have only tested this on the 43P-150. Build the kernel with the cs4232
set as a module and load the module with irq=9 dma=1 dma2=2 io=0x550

Documentation/powerpc/sound.tx

Leider funktioniert’s nicht, es kommt kein Mucks.

Interessanterweise belegt das ALSA-Modul “snd-cs4323” unter Linux 2.6.18 IRQ und DMA, aber auch das habe ich nicht zum Laufen bekommen.

Falls es jemand versuchen will: Hier der Debian 2.6.18-Kernel mit aktivierter ISA-Bus-Unterstützung und OSS-Modulen: ftp://ftp.geierb.de:21/blog/2020-04/linux-image-2.6.18-geierb_2.6.18-geierb-10.00.Custom_powerpc.deb Bei Erfolg hat bitte melden!

Zu wenig RAM erkannt – gelöst

Die 43P-150 verwendet ganz normales 186 poliges PC-100-SDRAM, Registered und mit ECC. Es werden Speicherriegel mit maximal 256 MByte unterstützt, insgesamt also 1 GByte RAM. Das ist etwa 10x so viel wie damals ein Durchschnitts-PC hatte.

Problem: Linux erkennt nicht kompletten Hauptspeicher. AIX 4.3 auch nicht. Mein Rechner hat 1 GByte RAM, das steht so auch im SMS. Unter Linux und AIX werden aber nur 754 MByte bzw. 768 MByte erkannt.

Lösung: Ein Speicherriegel war defekt. Nach Einbacu eines neuen (gebrauchten) Speicherriegels werden jetzt sowohl unter Linux als auch AIX 1024 MByte RAM erkannt.

SCSI-zu-IDE-Konverter – gelöst

Bei alten Rechnern benutze ich statt Festplatten lieber CF-Karten, die sind zuverlässiger und lassen sich leichter sichern. Leider sind sie nur IDE-kompatibel, man braucht also einen SCSI-zu-IDE-Konverter.
Mit einem Acard 7720U-SCSI-zu-IDE-Konverter (hab Firmware 3.45 und 3.60 probiert) funktioniert die Linux-Installation nicht, es hagelt bereits beim Partitionieren SCSI-I/O-Fehler. Die Installation von AIX funktioniert dagegen völlig problemlos.
Offenbar kommt der Acard-Konverter nicht mit dem Tagged Command Queuing (TCQ) des sym53c8xx-SCSI-Treibers von Linux zurecht. Zum Glück lässt sich das ausschalten:

Gleich nach dem Start des Debian-Installers auf ein Terminal wechseln (“Strg-Alt-F2” drücken) und das hier eintippen:

echo settags 2 0 > /proc/scsi/sym53c8xx/0

Die “2” ist die SCSI-ID, auf die ich meinen Acard-Konverter eingestellt habe, bei Bedarf also anpassen.

Damit TCQ dauerhaft abgeschaltet bleibt und nicht beim nächsten Boot die Daten zerschießt, kurz vor Ende der Debian-Installation, wenn der Installer nach einem Neustart verlangt, wieder auf ein Terminal wechseln und Folgendes ausführen:

chroot /target
echo "options sym53c8xx cmd_per_lun=0" > /etc/modprobe.d/sym83c8xx
update-initramfs -u -k all
exit

Dann den Installer den Rechner neu starten lassen.

Ersatz für defektes Netzteil – gelöst

Wie man das Originalnetzteil durch ein ATX-Netzteil ersetzt haben ich hier beschrieben.