OpenBSD auf Apple iMac G4 installieren

24.02.2015 yahe administration legacy linux

Man kann nie genug Macs haben. Das dachte ich mir, als ich mir kurz vor Weihnachten einen iMac G4 ersteigerte und ihn noch am gleichen Tag mit dem Auto aus Leipzig abholte. Mein Plan war ziemlich einfach: Debian für PowerPC herunterladen, Debian für PowerPC installieren, fertig! Leider sah die Realität anders aus.

Zum Hintergrund: Der iMac G4, auch bekannt als "die Lampe", ist inzwischen 12 Jahre alt. Er verwendet einen PowerPC-Prozessor, der nie Mainstream war. Dementsprechend ist die Unterstützung dieser Plattform nicht sonderlich weit verbreitet und hat sich in den letzten Jahren sogar verschlechtert. Früher war es möglich, Debian für PPC auf dem iMac G4 zu installieren. Seitdem hat sich der Treibersupport in Linux geändert. Vieles wurde in den Kernel verschoben, wodurch alte Treiber nicht mehr funktionieren. Der iMac G4 gehört leider dazu. Die älteste Generation enthält eine Nvidia-Grafikkarte, für die es einen "neuen" offenen Treiber und einen "alten" Binärtreiber gibt. Leider scheinen beide Varianten inzwischen kaputt zu sein. Das einzige, was noch funktioniert, ist der Boot-Parameter "nomodeset", der den Grafiksupport im Kernel wieder deaktiviert. Mit anderen Worten ist die grafische Oberfläche unter Linux auf dem iMac G4 überhaupt nicht mehr zu gebrauchen. Alles stockt, ist langsam und die CPU arbeitet permanent auf Hochtouren.

Linux ist heutzutage also nicht mehr das Mittel der Wahl, um einen alten iMac G4 anzutreiben. Aus diesem Grund habe ich mich dieses Mal von Linux entfernt und den BSDs zugewandt. Im Gegensatz zu Linux haben die es geschafft, ihren Grafiktreibersupport nicht vollständig zu versauen. OpenBSD relativ gut darin, PowerPC-Systeme zu unterstützen. Selbst mit der schwachbrüstigen 700MHz CPU und den sehr geringen 256MB RAM lässt sich das System samt XFCE halbwegs akzeptabel nutzen, noch akzeptabler mit einer einfachen Aufrüstung auf 768MB RAM.

Apple iMac G4 RAM Upgrade Apple iMac G4 RAM Upgrade

Damit auch andere, die diesem Computer ein zweites Leben verschaffen wollen, eine Anlaufstelle haben, wollte ich einmal meine Schritte festhalten, um das System zum Laufen zu kriegen. Die wichtigsten meiner Quellen für dieses kühne Unterfangen waren Wikibooks.org, Gabsoftware.com und OpenBSD.org. Ohne sie hätte ich wohl wesentlich länger gebraucht.

Alles fängt damit an, dass wir uns das aktuelle OpenBSD-Image herunterladen, das man hier in der Version 6.2 für Mac PowerPC findet. Das sinnvollste ist, sich einfach ein Linux zur Hand zu nehmen und das Image auf eine CD oder DVD-R zu brennen, denn der iMac G4 wurde damals bereits mit einem Combo Drive ausgeliefert, das sowohl CDs als auch DVD-Rs lesen konnte.

Wenn wir nun unser OpenBSD-Installationsmedium in der Hand halten und kein funktionierendes Betriebssystem auf dem Rechner haben, treffen wir bereits auf das erste Problem: Wie legen wir die Scheibe ins Laufwerk ein? Das Laufwerk ist im Gehäuse verbaut, nicht direkt zugänglich und besitzt keinen Auswurfknopf. Die Lösung: Wir müssen den Rechner komplett ausschalten, die linke Maustaste gedrückt halten und dann den Rechner wieder starten. Das veranlasst den iMac G4 dazu, den Laufwerksschacht zu öffnen. Nun können wir die Scheibe einlegen und das Laufwerk mit leichtem Druck auf das ausgefahrene Tray wieder schließen. Zur Not muss man noch einmal neu starten, damit von der CD/DVD gebootet werden kann. Sollte bereits ein Betriebssystem installiert sein, das anstelle der CD/DVD gebootet wird, müsst ihr beim Neustarten die Buchstabentaste "C" gedrückt halten. Das veranlasst den Mac, von der CD/DVD zu booten. Alternativ könnt ihr durch Drücken der "ALT"-Taste auch die Bootauswahl aufrufen.

Bootauswahl

Nach einem kurzen Moment solltet ihr dann im Installationsprogramm von OpenBSD landen. In diesem können alle wichtigen Konfigurationen vorgenommen werden. Im weiteren Verlauf gehe ich davon aus, dass OpenBSD das einzige Betriebssystem auf dem iMac G4 sein wird, was vor allem bei der Festplattenpartitionierung wichtig sein wird.

Wir starten also die Installation, geben dem Rechner einen sprechenden Hostnamen (z.B. "iMacG4"), definieren den Namen des Netzwerkanschlusses (z.B. "gem0") und führen die Netzwerkkonfiguration durch, wobei "dhcp" das einfachste sein dürfte, wenn euer Netzwerk DHCP unterstützt. Dann wird es auch schon Zeit, das Passwort des "root" Users festzulegen.

Start der Installation Start der Installation

Bei den nächsten Konfigurationsschritten habe ich einfach die Defaults genommen. Der SSH-Server soll per Default gestartet werden, der NTP-Dämon hingegen nicht, wir wollen später ein X-Window-System für die grafische Oberfläche verwenden und die Default-Konsole soll beibehalten werden, wie sie ist. Zudem legen wir noch einen weiteren normalen Nutzer an, damit wir nicht permanent als Root auf dem System arbeiten müssen. Nachdem wir das Passwort des neuen Nutzers festgelegt haben, verbieten wir noch den Root-Login per SSH und setzen die Zeitzone (z.B. auf "Europe/Berlin").

Default- und Nutzersetup Default- und Nutzersetup

Nun geht es um die Formatierung der Festplatte. Da diese fest im Gehäuse verbaut ist und das Gehäuse nur Platz für genau eine Platte lässt, ist die Auswahl relativ schnell erledigt (z.B. "wd0"). Zudem geben wir an, dass wir die gesamte Festplatte nutzen wollen ("w" oder "whole"). Der Installer erstellt dann ein in meinen Augen recht komplexes Partitionslayout. Da mir das nicht sehr gefiel, habe ich ein eigenes Layout nutzen wollen ("c" oder "custom").

Festplatte vorbereiten Festplatte vorbereiten

Dadurch wird ein recht einfaches Partitionierungsprogramm gestartet. Hier sollten wir uns mit dem Befehl "p" zuerst die vorhandenen Partitionen anzeigen lassen. Bei mir gab es zum einen eine große Partition "a" vom Typ "4.2BSD", eine kleinere Partition "b" vom Typ "swap", eine Partition "c" vom Typ "unused", die offenbar die gesamte Platte anzeigt, und eine Partition "i" vom Typ "MSDOS", wo evtl. der Bootloader seinen Platz hat. Da mir die Swappartition zu klein ist, lösche ich die Swappartition und die Datenpartition und lege beide mit neuen Größen wieder an. Man startet das Löschen mit dem Befehl "d" und gibt erst im nächsten Schritt den Namen der Partition an, sprich "a" und "b". Danach lege ich mit dem Befehl "a" erst die Partition "b" an, die offenbar immer für Swapping verwendet wird und erst danach die Partition "a" mit der verbliebenen Gesamtgröße der Festplatte. Die Partition "a" erhält den Mountpoint "/", so weiß der Installer später, wo alles hinkopiert werden muss. Abschließend muss die neue Partitionstabelle mit dem Befehl "w" geschrieben und das Partitionsprogramm mit dem Befehl "q" beendet werden. Man landet dann wieder im Installationsprogramm.

Festplatte partitionieren Festplatte partitionieren Festplatte partitionieren Festplatte partitionieren

Die wichtigsten Installationspakete befinden sich auf der eingelegten CD/DVD, daher können wir einfach diese installieren. Die Installation besteht im Grunde daraus, "*.tgz"-Dateien auf die Festplatte zu entpacken, weshalb die Installation selbst auch recht fix geht.

Pakete installieren Pakete installieren

Nun bleibt noch eine wichtige Sache zu tun: Wir müssen dafür sorgen, dass OpenBSD direkt gestartet wird. Dafür müssen wir in der Open Firmware ein paar Änderungen vornehmen. Dazu starten wir den Rechner mit dem Befehl "reboot" neu und halten die Tastenkombination "CMD+ALT+O+F" gedrückt, bis wir in der Open Firmware landen. Dort können wir die Tasten wieder loslassen. Hier müsst ihr nun drei Befehle eingeben, die jeweils mit "ok" vom System quittiert werden:

setenv auto-boot? true
setenv boot-device hd:,ofwboot
reset-all

Nach dem letzten Befehl sollte der Rechner neu gestartet werden. Sollte das nicht geschehen, könnt ihr alternativ mit dem Befehl "shut-down" den Rechner herunterfahren und beim erneuten Einschalten prüfen, ob eure Änderungen Erfolg hatten und der automatische Start von OpenBSD klappt.

Open Firmware konfigurieren Open Firmware konfigurieren Open Firmware konfigurieren

Wenn alles klappt, solltet ihr euch nun das erste Mal als Root am System anmelden können. Hier könnt ihr nun die Paketverwaltung von OpenBSD konfigurieren. Dazu müsst ihr die Datei "/root/.profile" bearbeiten und dort zwei Variablen definieren (z.B. über den Befehl "vi /root/.profile"):

export PKG_PATH=http://ftp.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(machine -a)/
export PKG_CACHE=/pkg_cache

Speichert die Datei ab. Am einfachsten loggt ihr euch noch einmal aus und wieder neu ein, damit die Änderung wirksam wird. Nun könnt ihr durch Anlegen des Cache-Ordners und durch Nutzung des Befehls "pkg_add" weitere Pakete installieren (bspw. die Bash, VIM oder XFCE):

mkdir /pkg_cache

pkg_add bash
pkg_add vim
pkg_add xfce

Ich habe mir zumindest einmal die grafische Oberfläche installiert. Sollte die Wahl eines Paketes nicht eindeutig sein, so wird nachgefragt, welches Paket genau gemeint war. Auch während der eigentlichen Installation können noch einmal Nachfragen zu abhängigen Paketen kommen, wenn es dort mehrere Wahlmöglichkeiten aufgrund unterschiedlicher Featuresets gibt.

grafische Oberfläche installieren grafische Oberfläche installieren grafische Oberfläche installieren

Nach der Installation von XFCE kann jeder Nutzer die grafische Oberfläche starten, Root-Rechte sind dazu nicht notwendig. Das ganze funktioniert mit folgendem Befehl:

startxfce4

In der grafischen Oberfläche sollte sich nun jeder halbwegs gut zurecht finden können. Man kann sich für sie nun beispielsweise auch Firefox, Gimp und Co. installieren. Eine vollständige Liste der verfügbaren Software findet man im Repository.

OpenBSD mit XFCE auf einem Apple iMac G4

Sollte ein Nutzer die grafische Oberfläche direkt nach dem Login gestartet bekommen wollen, so kann er den Befehl "startxfce4" einfach in seine eigene "~/.profile" Datei schreiben. Ich habe einmal ein Video auf Youtube gestellt, in dem man den vollständigen Bootvorgang sieht, von der Open Firmware, über den Login auf der Shell, bis hin zum automatischen Starten der grafischen Oberfläche.


Search

Categories

administration (45)
arduino (12)
calcpw (3)
code (38)
hardware (20)
java (2)
legacy (113)
linux (31)
publicity (8)
raspberry (3)
review (2)
security (65)
thoughts (22)
update (11)
windows (17)
wordpress (19)