Erfahrungsbericht einer Installation von openSUSE Linux 10.3 PPC auf ein PowerBook G3 (Wallstreet II)

1. Vorwort

Seit Mitte 1998 die ersten Apple Powerbooks G3 (Codename Wallstreet) auf den Markt kamen, hab ich ich mich in die Kisten verliebt. Die knapp 14.000 DM, die das Spitzenmodell damals verschlungen hat, waren aber zu der Zeit nicht zu finanzieren.

Fast drei Jahre später war es dann endlich so weit, ich hab bei ebay zugeschlagen. Ein G3 aus der zweiten Wallstreet Serie, das hierzulande Ende 1998 raus kam.
Mit PPC 750 266 MHz (alias G3), 256 MByte RAM, 4 GByte Festplatte, CD- und Floppy und hervorragendem 14,1 Zoll LCD-Display, sowie weiterem Zubehör.

Da ich nun aber mittlerweile "Linuxifiziert" bin und nicht eine zweite Softwarebasis aufbauen will, musste auf das Notebook Linux drauf. Da ich auf IA32-Architektur (Tower mit 1GHz Celeron) bereits auf SuSE setze, ist es natürlich das einfachste auch auf dem Powerbook die damals aktuelle SuSE Linux 7.1, hier natürlich die PPC-Version (Installationsbericht zur Installation der SuSE 7.1 und 7.3 findet sich hier).

Nachdem SUSE nach der 7.3 die PowerPC Version eingestellt hatte, habe ich mir die SUSE 8.2 selbst aus den Source-RPMs compiliert. Leider überlebte das PowerBook einen Aufrüstungsversuch 2004 nicht. Als ich es im Oktober 2007 wieder reanimieren konnte, hat SUSE mit dem openSUSE Projekt auch die PowerPC Version wieder auferstehen lassen. Ich hab mir dann die 10.3 installiert, mehr hierzu im Anschluss.

Inhalt

2. Basisinstallation

2.1. Vorbereitung (MacOS)

Als erstes muss die Festplatte unter MacOS partitioniert werden. Datenverlust war bei mir erstmal kein Problem, da nach meiner Reanimation des PowerBooks die Festplatte anderweitig genutzt wurde. Ich musste sie also so oder so erst mal einrichten. Das MacOS muss bei ner OldWorld Maschine mit drauf, eine reine Linux Installation ist (meines Wissens nach) nicht möglich.
Zur Partitionierung muss CD gebootet werden und "Laufwerke konfigurieren" gestartet und die Partitionen aufgeteilt werden. Ich will da niemandem dreinreden, aber unter 3 GByte für Linux wirds eng mit grafischer Oberfläche. Wer also noch ne Original Platte mit 4 GByte drinnen hat, sollte MacOS nicht zu viel Platz einrämen (300 MByte reichen locker, wenn man damit nicht arbeiten will). Ab MacOS 9 kann man den Partitionen schon den Typ Linux-Filesystem zuordnen, da ich 8.5 drauf habe, wurden sie einfach ohne Typzuweisung erstellt, der Rest erfolgt in YaST.
Apple bietet ein kostenloses Update von MacOS 8.5 -> 8.6 zum Download an, wer also noch eine ähnlich alte Installation hat..

Jetzt Benötigen wir BootX, es handelt sich hierbei um den Bootloader, der Linux Startet (analog lilo oder grub auf PCs). BootX benötigt eine Datei mit dem Kernel und eine mit der Initrd. Leider hat SUSE die Dateien für die 10.3 nicht auf dem FTP-Server abgelegt. Im Bug 333665 findet sich ein Script, mit dem sich aus dem inst32 file extrahieren lässt. Wer damit Problem hat, kann ja bei mir nachfragen.
Ich hab mir also "BootX App" in den Systemordner von MacOS geschoben (damit wird es beim Booten als Systemerweiterung gestartet und gestattet die Wahl zwischen MacOS und Linux). Dort hab ich dann auch einen Ordner "Linux Kernels" angelegt, in den werden nun die "linux32" und "initrd32.gz" Dateien geschoben, die mit dem Script extrahiert wurden. So, jetzt BootX starten, um die nötigen Einstellungen vorzunehmen. Als erstes den Kernel auswählen, die linux32 Datei ist die richtig. Bei den Kernel Argumenten ist es wichtig, den richtigen Video-Modus anzugeben, sonst gibt es nachher kein Bild. Ich habe mit "video=atyfb:vmode:14,cmode:32" gute Erfahrungen gemacht. Die Zeile wird später noch ergänzt. Die Ramdisk size sollten wir erst mal auf 12 MByte setzen (Eintrag 12288), da die initrd bei der Installation recht groß ist. Unter Optionen habe ich dann "Force video settings" angeklickt und die initrd ausgewählt (initrd32.gz aus dem "Linux Kernels" Ordner).

Wer so weit gekommen ist, hat die wiedrigsten Hürden für eine Netzwerkinstallation schon genommen. Schnell noch die Optionen gespeichert, auf Linux geklickt, schon sollte Linux für die Installation starten.

Inhalt

2.2. Basis mit Yast2

BootX ist jetzt noch konfiguriert, das Installationssystem zu starten, nicht das installierte System. Hier gilt es jetzt den letzten Schliff zu vergeben. Die Basisinstallation läuft nach Auswahl der Installationsquelle (noch mit einem Textinterface) genau wie bei einer Installation auf nem PC. Recht unspektakulär und unkritisch, zumindest bei mir, bis zum Bootloader. Wichtig ist als erstes, es darf keine Kernel-Aktualisierung während der Installation durchgeführt werden, also möglichst den Punkt mit den Updates überspringen. Notieren Sie sich auch die root-Partition, auf der Linux installiert wird, sie muss später in BootX angegeben werden.
Wenn YaST jetzt mit der Installation soweit durch ist und den Bootloader einrichten will, wird es zum Fehler kommen, das ist normal und kein Grund zur Panik, da ja per BootX gebootet wird und YaST davon nichts weiss. Wichtig ist es, sobald der Fehler erscheint, auf eine freie Konsole umzuschalten <CTRL>+<Apfel>+Fx (einfach mal durchprobieren, ich glaube auf F5 oder F6 war ein Prompt zur Eingabe. Hier gilt es nun die MacOS Partition zu mounten (deshalb kein Kernel-Update, sonst kann das Kernel-Modul für das Apple-Filesystem (HFS oder HFS+) nicht nachgeladen werden.
Ein mount /dev/hda7 /mnt hat bei mir ausgereicht. Jetzt sind kernel und initrd auf die MacOS Partition zu kopieren, also cp /boot/vmlinux-*-default /mnt/Systemordner/Linux\ Kernels/ und cp /boot/initrd-*-default /mnt/Systemordner/Linux\ Kernels/ reichen aus. Bei einem Kernelupdate muss der Schritt ebenfalls immer durchgeführt werden. Vor dem Update die Partition mounten und nach dem Update Kernel und Initrd kopieren. Sind die Daten kopiert, kann die MacOS-Partition wieder abgehängt werden umount /mnt und zu YaST zurückgekehrt <CTRL>+<Apfel>+F7. Nun den Fehler beim Bootloader abnicken und wir kommen zum Reboot.

Inhalt

2.3. Start aus MacOS

So, zurück in MacOS gilt es den Linux-Start zu konfigurieren. In "BootX App" muss der kopierte Kernel und die kopierte initrd eingetragen werden. Die Ramdisk kann auf 8 MByte (8192) runtergesetzt werden und bei den Kernelparametern ist die Rootpartition mit einzutragen root=/dev/hda8 war bei meiner Partitionierung der passende Eintrag. Ich habe noch ein paar andere Ergänzungen vorgenommen, zum Teil von meiner PC-Installation übernommen und die Framebuffer-Farbtiefe auf 8 Bit reduziert (in der Hoffnung ein wenig RAM sparen zu können. Die Zeile sieht jtzt bei mir wie folgt aus (hda8 ist meine Swap-Partition):
video=atyfb:vmode:14,cmode:8 hda=autotune root=/dev/hda9 resume=/dev/hda8 splash=silent showopts
Jetzt sollte sich das installierte openSUSE starten lassen.

Inhalt

2.4. Der erste Start

Von hier an läuft eigentlich alles wie gewohnt. Aufpassen muss man eben nur, wie bereits erwähnt bei Kernel-Updates, da sind für die 10.3 mittlerweile einige veröffentlicht, wer also das OnlineUpdate durchführt, sollte also gleich mal meine Empfehlungen von oben beherzigen.

Inhalt

3. Nachbesserungen (oder was ich anders gemacht habe, als von SuSE vorgesehen)

3.1. X-Server

Der X-Server war im Gegensatz zu den 7er SUSE Versionen sehr ordentlich vorkonfiguriert, der hardwarebeschleunigte Treiber aktiviert und auch die XVideo-Extension läft ohne zutun. Das Kernel-Modul für hardwarebeschleunigtes OpenGL liefert SUSE nicht mit, es gilt als Sicherheitsrisiko und das Video-RAM würde nur Beschleunigung bei 800x600 Bildpunkten und 16Bit Farbtiefe gestatten. Die Mühe und das Risiko dürfte es kaum wert sein.

Verbesserungen sind nur in ein paar Details möglich, so habe ich bei mir in der 'Section "Device"' die beiden Einträge 'Option "RenderAccel" "true"' und 'Option "AccelMethod" "XAA"' (keine Ahnung, ob das wirklich was bringt) ergänzt und ans Ende die 'Section "Extensions"' aufgenommen:

Section "Extensions"
  Option "Composite" "Enable"
EndSection
Dies ermöglicht es Transparenzen und Schatten in KDE zu aktivieren, ohne dass die CPU gleich einen Kopfstand machen muss.

Inhalt

3.2. Touchpad

Auch hier hat sich gegenüber der 7er SUSE Versionen viel verbessert, pmud ist mit dabei und gut vorkonfiguriert. Wenn es installiert und per RunLevel-Editor aktiviert wurde (bin mir jetzt nicht mehr ganz sicher, ob das per Default bereits der Fall war), Stehen auf <F11> und <F12> die fehlenden mittleren und rechten Maustasten zur Verfügung. Nebenbei bemerkt, funktionieren damit auch die Sondertasten für Laustärke und Helligkeit, ein Suspend2RAM per "Deckel zu".

Inhalt

3.3. Sound

Alsa wollte bei mir beim booten einfach nicht starten, ein hähndischer start danach, bereitete allerdings keine Probleme. Nach dem Auskommentieren aller Zeilen aus dem start)-Bereich, mit Ausnahme der start_all Zeile in der /etc/init.d/alsasound, läuft auch das ohne Schwierigkeiten.

Inhalt

3.4. Diskettenlaufwerk

Leider war ich im Gegensatz zu den älteren auf 2.4er Kernel basierenden SUSE-Versionen nicht in der Lage, das Diskettenlaufwerk zur Zusammenarbeit zu bewegen. Das erste Problem, fehlende device Einträger /dev/fd0 und /dev/ft1 hab ich mit folgenden Einträgen in der /etc/init.d/boot.local angelegt:

/bin/mknod -m 660 /dev/fd0 b 2 0
/bin/mknod -m 660 /dev/fd1 b 2 1
/bin/chown root.floppy /dev/fd0
/bin/chown root.floppy /dev/fd1
User, die in der Gruppe floppy sind, können dann auf das Diskettenlaufwerk zugreifen (im rechten Slot ist es /dev/fd0, im linken /dev/fd1), ein "eject /dev/fd0" wirft z.B. die Diskette auch ordentlich aus, leider gibt es allerdings bei jedweden Mount- oder sonstigen Zugriffsversuch nur massen von I/O Fehlern in /var/log/messages. Da Disketten kaum noch eine Rolle spielen, hab ich es erst mal darauf beruhen lassen...

Inhalt

4. Drucker - Apple StyleWriter II

Für die Reparatur meines PowerBooks hatte ich ein weiteres bei eBay bestellt (inzwischen laufen beide wieder), dem lag auch ein Drucker bei, ein alter Apple StyleWriter II, ein 360 dpi schwarzweiss Tintenstrahler. Eigentlich nichts, was grösseren Aufwand rechtfertigt, aber es hat mich dann doch gejuckt das Ding unter Linux zur Mitarbeit zu bewegen.

Zunächst werden zwei Dinge benötigt, das Programm lpstyl, das den Drucker ansteuert und die passenden ppd Datei. Ersteres liefert SUSE mit (rpm filters), letzteres nicht (Debian macht es genau anders rum). Die fehlende ppd Datei gibt es bei OpenPrinting.org, Ich habe sie mit gzip comprimiert und unter /usr/share/cups/model/Apple abgespeichert.

Das nächste Problem sind die Rechte für die serielle Schnittstelle /dev/ttyS0, über die der Drucker angesteuert wird. Der Eigentümer ist root und die Gruppe uucp, damit konnte ich CUPS nicht zur Zusammenarbeit bewegen, also musste die Gruppe auf lp geswitched werden. Ich habe dafür die Datei /etc/udev/rules.d/85-local.rules mit folgendem Inhalt angelegt:

# ttys0 is used for printing, changing group
KERNEL=="ttyS0", GROUP="lp"
Nach einem Neustart von udev passen die Rechte dann.

Jetzt kann der Drucker für CUPS eingerichtet werden. Ich habe dafür das Webinterface via http://localhost:631/ verwendet. Das funktionierte problemlos, wichtig ist nur, dass die Einstellungen zum Treiber schon beim einrichten gesetzt werden, die Schnittstelle muss korrekt definiert sein, sonst kann lpstyl nichts an den Drucker schicken. Ab hier funktionierte der Drucker zwar im Prinzip, allerdings kam der Ausdruck immer erst aus dem Drucker raus, wenn ich den Auftrag in der Druckerwarteschlange gelöscht habe. Das Problem dabei ist, dass sowohl cups selbst, als auch das über die ppd Datei angestossene lpstyl auf die serielle Schnittstelle zugreifen wollen und CUPS blockiert damit lpstyl. Ich hab den Konflikt durch manuelles editieren der /etc/cups/printers.conf behoben, und das Device auf /dev/null geändert, die DeviceURI lautete dann "serial:/dev/null". Jetzt tut es der Drucker wie er es soll.

Inhalt

5. Kontakt

Ich bin zu erreichen unter der E-Mail Manfred.Tremmel@iiv.de.

Inhalt