Zum Öffnen der Sun 3/80 die rot markierten Schrauben entfernen. Die Grafikkarte ist mit den blau markierten Schrauben befestigt.
Danach den Deckel nach oben aufklappen.
Das NVRAM sitzt auf der Hauptplatine in der linken hinteren Ecke. Es hat einen gelborangen Aufkleber mit Barcode. Es ist ein batteriegepufferter Speicher und die Batterie, eine 3V Lithiumbatterie gibt üblicherweise nach 4-6 Jahren ihren Geist auf. Außerdem steckt noch die Hardwareuhr in diesem Chip.
Hier sieht man die Hauptplatine der 3/80. Die Grafikkarte ist bereits entfernt. Das NVRAM ist blau eingekreist.
Dazu geben Sie als "root" folgendes Kommando ein:
# dd if=/dev/eeprom of=/var/adm/eeprominhalt bs=1 count=2040
Besorgen Sie sich folgende Teile:
1 1 1 0 0 0 0 0 0 0 0 0 2 1 0 9 8 7 6 5 4 3 2 1 +-----------------------+ Stirn- > | +----------------+ o<-- weisser Punkt seite > | ! XXXX | | zum > | ! |||||||||||| |<----- gelber Aufkleber Kratzen > | +----------------+ | mit Barcode und +-----------------------+ vierstelliger 1 1 1 1 1 1 1 2 2 2 2 2 Kennziffer 3 4 5 6 7 8 9 0 1 2 3 4Das aufgesetzte Plastikgehaeuse fuer die Batterie ist an den Stirnseiten vermittels einer harzartigen Masse mit dem eigentlichen Chip verklebt. Kratzen Sie diese Masse vorsichtig auf der dem Pin 1 gegenüberliegenden Seite (also zwischen Pin 12 und Pin 13) auf, bis zwei Metallbahnen zum Vorschein kommen. Dann noch vorsichtiger diese soweit freilegen, bis man ein Drähtchen daran anlöten kann.
Eine der Metallbahnen hat direkte Verbindung zum Massepin des Chip (Pin 12). Löten Sie ein Drähtchen an die Oberseite dieses Massepin und das andere Drähtchen an die andere Metallbahn.
Hier sehen Sie das NVRAM auf dem Rücken liegend. Ein Draht ist bereits an Pin 12 (rot), der ja mit der einen Metallbahn (ebenfalls rot) verbunden ist, angelötet, der andere muss erst noch an die andere Metallbahn (blau) angebracht werden.
Löten Sie nun die Batterie an die Drähtchen. Achten Sie auf die Polarität. Minus (-) kommt an den Massepin, Plus (+) an die freigelegte Metallbahn, die keinen Kontakt mit dem Massepin hat.
Tip: Die Oberfläche der Lithiumbatterie läßt sich wesentlich besser mit Lot benetzen, wenn man sie vorher mit einem schafen Gegenstand ankratzt. Zu langes Heizen mit dem Lötkolben ruiniert dagegen eventuell die Batterie.
Nachdem die Batterie abgekühlt ist, umwickeln Sie sie rundherum mit Isolierband. Biegen Sie die Drähtchen vorsichtig so um, daß die Batterie auf dem Chip zu liegen kommt.
Setzen Sie das NVRAM und die Grafikkarte wieder ein. Die Grafikkarte sollte die Batterie nun festhalten.
Zur kurzweiligen Unterhaltung können Sie jetzt das Terminal an Port A anschließen. Einstellungen: 9600 baud, 8 bit, no parity. Wahrscheinlich brauchen Sie auch ein Null-Modem-Kabel (2x3,4x5,6+8x20,7-7). Dann koennen Sie die Diagnoseausgaben beobachten. Ansonsten müssen Sie eben solange warten, bis der Bildschirm hell wird. Das dauert aber eine ganze Weile. Gehen Sie dann in den PROM-Monitor ((L1-A) drücken).
Nun muss das IDPROM mit sinnvollem Inhalt gefüllt werden. Sonst kann man nicht booten, weder vom Netz (mit Broadcast-Adresse sowieso keine gute Idee) noch von der Platte. Wir werden das IDPROM mit zufällig gewählten Daten füllen. Später können Sie dann, wenn Sie noch eine Kopie des NVRAM oder zumindest die Ethernet-Adresse und/oder die Seriennummer haben, diese nachtragen.
Geben Sie im PROM-Monitor folgendes ein:
> q70b (return) 70b=00? 6 (return) 70c=00? (Ctrl-C) (return) > ^t fef04000 (return)Hiweis: ^ ist das ASCII-Zeichen 0x5e (normalerweise links neben der 1).
TIA entry = 33FA500 TIB entry = 33FB80A PTE = 64000049Diese Werte aufschreiben!!!
Nun muss der Eintrag für TIA fedfa000 geändert werden:
m a fedfa000 (return) TIA MAP FEDFA000 [...] ? 33FA500 (return)Bei der nächsten Kommandoeingabe (Strg-C) (return) drücken.
Nun muss der Eintrag für TIB fedfa000 geändert werden:
> m b fedfa000 (return) TIB MAP FEDFA000 [...] ? 33FB80A (return)Bei der nächsten Kommandoeingabe (Strg-C) (return) drücken.
Und zu guter Letzt muß noch der pagemap-Eintrag angepasst werden:
> p fedfa000 (return) PageMap FEDFA000 [...] ? 64000049 (return)Bei der nächsten Kommandoeingabe (Strg-C) (return) drücken.
> o fedfa7d8 (return)So! An dieser Stelle müssen jetzt die neuen Werte für das IDPROM eingegeben werden. Insbesondere muß die Quersumme stimmen, da ansonsten die Maschine nicht bootet.
Position Inhalt fedfa7d8 Versionsnummer - immer 01 fedfa7d9 Erstes Byte der hostid (Systemtyp, 42 bei der Sun 3/80) fedfa7da-df 6 Bytes Ethernetadresse (die ersten drei sind immer 08,00,20) fedfa7e0-e3 Herstellungsdatum. Oft alles Nullen fedfa7e4 Zweites Byte der hostid (hoechstes Byte der Seriennummer) fedfa7e5 Drittes Byte der hostid (mittleres Byte der Seriennummer) fedfa7e6 Viertes Byte der hostid (niedrigstes Byte der Seriennummer) fedfa7e7 IDPROM Quersumme - XOR der Bytes d8-e6Hier klicken, um einen per Zufall ausgewürfelten IDPROM-Inhalt sammt Quersumme zu bekommen.
Wenn Sie den Rechner nun aus- und wieder anschalten, sollte er einen Kaltstart ohne Diagnose machen und von der Platte booten.
# dd if=/var/adm/eeprominhalt of=/dev/eeprom bs=1 count=2040 # haltDanach muß man die Maschine anhalten, aus- und wieder einschalten. Achten Sie darauf, daß die Ethernetadresse korrekt angezeigt wird.
Wer nicht dieses Glück hatte, muß sich den Inhalt des NVRAM selber zusammenbasteln.
Hier nochmal die Prozedur, das NVRAM auszulesen:
# dd if=/dev/eeprom of=/var/adm/eeprom.contents bs=1 count=2040Das wichtigste ist eigentlich, die Quersumme bei 0x7e7 korrekt hinzubekommen. Falls Sie (wie ich) leichte Schwächen beim Rechnen im Hexadezimalsystem haben, hier ein kleines C-Programm, welches Ihnen die Checksum berechnet:
#include main() { unsigned char x,y; int i; x=0; while(1) { scanf("%x",&i); y=i; x^=y; printf("%x\n",x); } }Speichern Sie das Programm als xor.c und übersetzen Sie es:
# gcc xor.c -o xorGeben Sie die Hex-Werte von 0x7d8-0x7e6 ein:
# ./xor 01 42 08 00 20 07 ed aa 24 74 ec 43 00 50 18 1 43 4b 4b 6b 6c 81 2b f 7b 97 d4 d4 84 9cDer letzte Wert (0x9c) muss dann an die Stelle 0x7e7 geschrieben werden.
So, nun ist es fast geschafft! Schreiben Sie das NVRAM zurück und halten Sie die Maschine an:
# dd if=/var/adm/eepromneu of=/dev/eeprom bs=1 count=2040 # haltSchalten Sie die Maschine aus und wieder ein und achten Sie auf die korrekte Anzeige der Ethernetadresse.
Wenn Sie überhaupt keine Daten Ihrer Maschine mehr finden, weder in irgendwelchen Unterlagen noch in /etc/ethers, dann gibt es noch eine Möglichkeit, an diese Daten über den gelben Aufkleber zu kommen. Sun hat nämlich eine Datenbank, in der alle diese Werte aufgehoben wurden. Versuchen Sie doch mal Ihr Glück bei der Sun-Hotline. Wichtig sind die vier Kennbuchstaben/-ziffern unterhalb des Barcode.
Die ganze Reparaturanleitung ist natürlich ohne jede Gewähr!!!
Ich hoffe trotzdem, Ihnen gelingt die Reparatur des NVRAM anhand meiner Anleitung. Ich selbst habe schon über 10 NVRAMs auf diese Art und Weise repariert und so einige Sun 3/80 vor der Schrottpresse bewahrt.
Peter Koch