Sun Ultra 1 Creator mit Debian

Stefan Bauer (duke at splatterworld dot de)

11. November 2004


Sun Ultra 1 Creator mit Debian


Einleitung:

Vorhanden ist eine Sun Ultra 1 (Creator) mit 140 oder 170 Mhz eine SCSI Festplatte und einer Netzwerkkarte, ein lokaler Zugang zum Gerät oder eine Verbindung via serielles Kabel.


Vorbereitung:

Wir gehen von einer seriellen Verbindung zu unserer Workstation aus. Zum Aufbau der Verbindung benutzen wir unter Windows Hyperterminal oder unter Linux/Unix minicom.

Bitte beachten: die korrekten Einstellungen von 9600 bits pro Sekunde, 8 Datenbits, keiner Parität, einem Stopbit und einer deaktivierten Flussteuerung sind die Default Werte.

Wir bauen eine Verbindung über die serielle Schnittstelle auf (RS232) und bekommen nachdem wir unsere Kiste gestartet haben, folgende Eingabemaske. (Achtung default ist der COM Port nicht auf RS232 gestellt und muss via Jumper abgeändert werden, näheres hierzu im Sun Anwenderhandbuch).

ok

ok” Wartet auf Eingaben und wir befinden uns somit im Boot Menü unserer Sun Workstation. Der unter Sun verfügbare OpenBoot Manager wird nun an unsere Bedürfnisse angepasst. (Nähere Infos zum Openboot Manager finden sie im OpenBoot Quick Manual)


Wir ändern Optionen für: Eingabemethode, Boot Parameter und Ausgabemethode und passen diese unserer Verbindung, die am seriellen Terminal hängt an.


setenv input-device ttya

setenv output-device ttya

setenv boot-device net disk



Nach unserer Eingabe prüfen wir diese mit folgendem Befehl


printenv


Die Ausgabe sollte in etwa so aussehen (Achtung gekürzte Ausgabe)



output-device ttya screen

input-device ttya keyboard

boot-device net disk net




Ablauf:

Jetzt wo wir unsere Boot Manager angepasst haben und er bereit ist,via Netzwerk zu booten, beginnen wir unser Bus System durchzuprüfen.

probe-sbus

probe-scsi

Eine Antwort auf unsere Eingabe sollte in etwa so aussehen, und div. Informationen über die enthaltene Festplatte liefern

Target 0

Unit 0 Disk IBM DNES30917SUN9.0GSAD0993418T557

(C) Copyright IBM Corp.

1998. All rights reserved.



Hinweis!: Wärend meiner Installation fiel mir auf, dass die Eingaben im Openboot Manager nicht immer angenommen werden. Abhilfe schafft hier ein “reset-all” gefolgt von einem “probe-sbus” und “probe-scsi” um die internen Geräte und Kontroller frisch zu integrieren.

Nun weis unser System Bescheid über die Festplatte und was zu tun ist, wenn wir via Netzwerk booten, nun ist es an der Zeit den Server zu präparieren. Hierzu verwenden wir “rarpd” und “tftpd” in seiner aktuellen Version. (rarpd ist ein reverse ARP daemon) (tftpd ist ein Internet Trivial File Transfer Protocol server)

Zuerst richten wir arpd ein, rarpd lauscht nach ARP Anfragen und teilt den Hosts IP Adressen zu. Wir erfragen die Mac Adresse unserer Sun Ultra und vervollständigen diese anhand unserer Konfigurationsdatei.

banner (auf dem Client System)

liefert in etwa folgende Ausgabe:

Sun Ultra 1 UPA/SBus (UltraSPARC 167MHz), No Keyboard

OpenBoot 3.25, 128 MB memory installed, Serial #8973688.

Ethernet address 8:0:20:88:ed:78, Host ID: 8088ed78.

Wichtig in unserem Fall ist nur der Teil “8:0:20:88:ed:78” Wir ergänzen diesen Teil in unserer rarpd Einstellung. Die zuständige Datei für rarpd ist “/etc/ethers”

vi /etc/ethers

08:00:20:88:ed:78 sun

Wir setzen den Werten “8:” und “0:” eine Null “0” voran um die Adresse konform zu halten. und weisen der Mac Adresse einen Hostnamen zu, den wir anschliesend in unserer /etc/hosts definieren. (Achtung in unserem Fall ist die Mac Adresse 08:00:20:88:ed:78 und wir verwenden den Hostnamen sun sowie die IP Adresse 192.168.0.10)

echo “192.168.0.10 sun” >> /etc/hosts

Nach dieser Einstellung, installieren wir für unser System tftpd und binden dies ins System ein. Zusätzlich definieren wir als Root Pfad für tftpd /tftpboot (in unserem Fall auf einer FreeBSD Kiste in Verbindung mit inetd)

cd /usr/ports/ftp/tftp-hpa

make install clean && rehash

echo “tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot” >> /etc/inetd.conf

mkdir /tftpboot

Jetzt sind wir im Besitz von tftpd in Kombination mit arpd und definieren lediglich noch unser Bootfile für die Sun Workstation


An dieser Stelle muss angemerkt werden, dass es 2 Möglichkeiten gibt, das Bootfile der Maschine zu genierieren, sodass diese dann auch vom System gelesen wird. Die einfachste Methode ist, mit tcpdump oder einem anderen Netzwerkprotokoller den Verkehr abzufangen und somit die angeforderte Datei auszulesen. Die alternative Variante besteht darin, sich seine Datei zu “berechnen” wir benutzen hierzu unter Unix “bc”. (Mit bc wird lediglich die eigene IP Adresse eingegeben, mit einem Enter getrennt anstelle der Trennungspunkte / 192 enter 168 enter usw.)


duke@rid:~$ bc

bc 1.06

Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty'.

obase=16

192

C0

168

A8

0

0

10

A

quit


Aus diesem Aufruf ergibt sich ein Dateiname für unser Boot Image: -> C0A8000A


Als zweite Möglichkeit, beobachte man den Netzwerkverkehr (welche Datei wird vom Client beim boot net Befehl angefordert) Zur Überwachunb bietet sich tcpdump an.( Alternativ ethereal als grafischer Vordergrund).


Nun ist es an der Zeit, das Boot Image in unser /tftboot Verzeichniss zu laden. (Bitte boot.img Quelle an neuere Versionen anpassen. (auch alternative Quellen verfügbar)


cd /tftpboot (auf dem Server System)


wget ftp://ftp2.de.debian.org/pub/debian/dists/unstable/main/installer-sparc/current/images/sparc64/netboot/2.6/boot.img



Wir benennen nun die Datei konform um und starten den Boot Vorgang


cp boot.img C0A8000A


Jetzt setzen wir auf unserem Clienten noch den Namen der Boot Datei und starten im Anschluss den Boot Prozess via Netzwerk


setenv boot-file boot.img (auf der Sun Kiste)


boot net



Hinweis: Falls die Ausgabe in etwa so aussieht


xxxxx Fast Data Access MMU Miss


muss erst ein “reset-all” und anschliesend wieder ein “probe-sbus” und “probe-scsi” durchgeführt werden!!


Falls der Kernel folgendes meldet, oder ähnlich


Inconsistent console: input 3, output 3


müssen sie die Einstellungen für die Umgebung (device-input / device-output) mit “printenv” einsehen und sogleich mit “setenv” anpassen. Sollte dies nichts helfen, prüfen Sie bitte ob eine Tastatur angesteckt ist oder nicht.


Sollte alles geklappt haben, sieht die Ausgabe in etwa wie folgt aus (die Workstation rattert nun das Image durch und startet es sogleich)


Boot device: /sbus/SUNW,hme@e,8c00000 File and args: boot.img

2a1a00


Nachem das Image korrekt verarbeitet wurde, beginnt der eigentliche Boot Prozess unseres Systems (Achtung gekürzt...)


Remapping the kernel... done.

Booting Linux...


Linux sun 2.6.8-1-sparc64 # gibt Auskunft über die Architektur und die aktuelle Kernel Version

ARCH: SUN4U

Ethernet address: 08:00:20:88:ed:78 # gibt Auskunft über die aktuelle Mac Adresse

Memory: 123528k available (1992k kernel code, 600k data, 152k init) # Info bezüglich der Grösse des Rams

Calibrating delay loop... 331.77 BogoMIPS # Info über Die Rechenleistung (Mhz *2~ = bogoMIPS)

sunhme.c:v2.02 24/Aug/2003 David S. Miller (davem@redhat.com) # Treiber für die Netzwerkkarte

eth0: HAPPY MEAL (SBUS) 10/100baseT Ethernet 08:00:20:88:ed:78

eth0: Link is up using internal transceiver at 100Mb/s, Full Duplex.


Anmerkung: Bei den Onboard Happy Meal Karten handelt es sich um einen bekannten Bug, der die Karte von Zeit zu Zeit austimen lässt, und die Netzwerkverbindung trennt. Der aktuelle U1-hme-lockup.patch ist hier verfügbar.




Wir befinden uns im Hauptmenü und folgen den Anweisungen bezüglich der Netzwerkonfiguration. Wir weisen menügeführt Hostnamen, IP Adresse, Gateway, Netmask, Domäne und DNS Server zu.


Anschliesend lassen wir die Hardwarerkennung durchlaufen und fahren mit der Partition unserer Festplatte fort.


An diesem Punkt weise ich darauf hin, dass Debian in seiner aktuellen Sparc64 Version den passenden Scsi Treiber für div. Geräte nicht erkennt. Den laden wir an diesem Punkt manuelle nach. Wir wechseln im Debian Installations Haupt menü auf den Punkt “run shell” und halten uns an folgende Anweisungen (evtl. muss das Verzeichniss zu den Modulen angepast werden.


insmod /lib/modules/2.6.8-1-sparc64/kernel/drivers/scsi/scsi_mod.ko

insmod /lib/modules/2.6.8-1-sparc64/kernel/drivers/net/esp.ko


Die erfolgreiche Ausgabe sieht dann in etwa so aus (Achtung abweichende Hardware erfordert andere Module) Hinweis: Die Shell lässt sich mit “exit” beenden und wir befinden uns wieder im Hauptmenü, wo wir mit der weiteren Installation fortfahren


SCSI subsystem initialized

esp0: IRQ 4,7e0 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast)


ESP: Total of 1 ESP hosts found, 1 actually in use.

scsi0 : Sparc ESP366-HME

Vendor: IBM Model: DNES30917SUN9.0G Rev: SAD0

Vendor: IBM Model: DNES30917SUN9.0G Rev: SAD0

esp0: target 0 [period 100ns offset 5 20.00MHz FAST-WIDE SCSI-II]

SCSI device sda: 17689267 512-byte hdwr sectors (9057 MB)

SCSI device sda: drive cache: write through


Wir befinden uns im Partitionsmenü und erstellen folgende Partitionen:


/boot Die Boot Partition ca. 128mb

swap Speicher für Auslagerungen zusätzlich zum Ram Arbeitsspeicher * 2

/ Die Root Partition der rstlich verfügbare Speicher




Nun formatieren wir unsere eben erstellten Partitionen und folgen den weiteren Anweisungen der Installation. Wir folgen dem Menü und nehmen letzte Änderungen am System vor. Letztendlich starten wir unsere Kiste neu



Sollte alles funktioniert haben, befinden wir uns nach dem Reboot wieder im Openboot Manager von unserer Sun Workstation. Nun ist es an der Zeit die Boot Optionen zu ändern, um die Kiste direkt von Platte zu starten


setenv boot-device disk

boot


Jetzt sollte unser System zum ersten mal selbstständig booten, die Ausgabe hierzu, sieht in etwa so aus (scsi Module sollten nun automatisch geladen werden)


Nun beginnt der letzte Teil der Konfiguration und kümmert sich um die Einstellung der Zeitzone, die Verwaltung der Passwörter (MD5...) festlegen des Root Passworts, Einrichten von normalen System Benutzern, und den Paket Manager apt.


Ist dies abgeschlossen, können sie sich das erste mal in Ihr frisches System einloggen


Debian GNU/Linux 3.1 sun ttyS0


sun login:



Viel Spass mit eurer Sun Ultra Creator :)




Dieses HOWTO wurde mit groesster Sorgfalt erstellt. Trotzdem koennen Fehler nicht vollstaendig ausgeschlossen werden.
Ich kann fuer fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung uebernehmen.
Fuer Verbesserungsvorschlaege und Hinweise auf Fehler bin ich dankbar.