<< SparcStationのNVRAMの改造(リチウム電池の外付け) >>
古いSun-SSをお使いの方へ
はじめに
お約束の事柄ですが、このページに書かれている内容は無保証です。
あくまでも自分の責任において行なって下さい。このページの内容を実行して、
WSのデータ、ハードウェア等が失われたり壊れたとしても 当方は一切責任は負いません。
はじまりの動機
Sun SPARC Station( 以下 SS )1 や SS IPC 、SS 2 などをお使いのみなさま
そろそろ、NVRAMのバッテリ切れ間近でドキドキしてませんか。
#怖くて電源落とせないとか(^^;
ある日、突然ネットにつながらなくなって、OSブートもできなくなって
なんて日が来る前になんとかしましょうね。
NVRAMは秋葉でも品薄だし、有っても\6〜\7000もします。(しんたろ調べ)
そこで、NVRAMに外付けリチウム電池を載せて、繋いでしまいましょう。
この作業は少々指先の器用さが必要です。
不器用な人は
1、手を切る−>血が出る
2、NVRAMをぶったぎる−>SSが死ぬ
3、上記両方をやってしまうま
なので、これを読んでみて、お手手に自信がないひとはあきらめて高いけど新品の
NVRAMを買いましょう。(アミュレットあたりでは7,8千円です。書き込みまで
頼むと1万5千円くらいらしい )
お困りの方で私のご近所にお住まいの方(茨城県西部)は、時間が許せば、お手伝い
しますです。ストックのある時は電池切れNVRAMを下取りで再生NVRAMをお分けしても
いいですが何があっても文句を言わないで下さい。
作業をする前は、こんな事やる人がこの世にいること自体信じられなかったのですが
やってみると結構はまります。
いまでは、電池切れのNVRAMを見つけるとウキウキします。(危ないやつ?)
ちなみに作業する前に私が参考にしたのはSPARC関係で有名な以下のWEBです。
NVRAMのデータを保存、書き込みする情報として
大嶋コスミックさんのSparcのNVRAMの交換のはなしと
NVRAMの改造作業などは写真入りで判りやすい
とうだい笹部さんのSun の電池切れ NVRAM に新しい電池を付けて修復するページです。
たいへん、参考になりました。上記を見ると仕組みがよく判ると思います。
これより以下は上記URLを参考にしながら、わたしが作業した内容をまとめたものです。
間違ってる事や思い込みで書いてる事も多々あると思うのでその際はご指摘頂ければ幸いです。
実際の作業にあたっては、わたしの場合はこんな感じでやったら、うまくいったくらいに
お考え下さい。
その人、その人で機器、環境が違いますから一概に全部OKとは言えません。
前置きが長くなりましたね。でわ、はじまりはじまり
1、まず道具
ですが、いろいろ他の方の話を聞くと、カッターとかまた、newsでは
彫刻刀がいいとの情報が流れていました。
わたしの場合は先の尖ったニッパがたまたま手元にあったので
↓これを使う事にしました。(以前、秋葉で¥700くらいだった)
それと半田ごて(細先)、クランプするもの(万力など)が必要です。
あると便利なのは導電マット(CPUに付いてくる黒いやつ)です。
NVRAMにこれをひいて作業しましょう。
で、材料はすでに電池切れのNVRAMをjunkなどで入手できれば、最高ですが
無いときは今マシンにのっかてる、現役のヤツでやらなくてはいけません。
リチウム電池はできれば、リード線付の方がいいのですが、無いときは
コンビニで売っているカメラ用(¥280くらい)を買ってきます。
リード線付きは秋葉の千石通商で売っていたとの情報あり
#7.26に行った時はありませんでした。
#かわりにリード端子付きがあって¥200です。
2、生きてるうちにデータを待避する
ここと、8のデータの書き戻しに関しては コスミック大嶋さんのページが
たいへん判りやすいです。
2−1、現状 NVRAM 内容のファイルへの書き出し
% su <- rootになる
passwd ********
# cat /dev/eeprom > /eeprom.bak <- NVRAMの内容をeeprom.bakに書き出す
2−2、host ID 、ethernet addr などの読み出し
# devinfo -vp | grep idprom
idprom: 01550800.20xxxxxx.2aeab8fc.xxxxxxxx.00000000.00000000.00000000.00000000
2−3、
3、現状の情報をメモる(最悪に備え印字しておく)
3−1、一応念のために、NVRAM内容の印字
# od -a /eeprom.bak | ps | lpr
3−2、(2−2)で読み出したデータを紙に書いておく
後でチェックサムの計算もするので、大きめに書くを見やすい
3−3、電源を落とす
# shutdown ( halt )
なんちゃら、かんちゃらメッセージ
system holt
電源off
4、ケースからNVRAMの取り出し
ICソケットに刺さっている24pinの黒いやつで、EPROMのとなり
脚を曲げないようにROM抜きで抜く、ROM抜きが無いときは
マイナスドライバーで両側からこじりながら少しずつ浮かしして抜く
抜いたNVRAMはすぐに導電マットに差しておきます。
5、ひたすら削る、削る
NVRAM上から見た図
---------------
| |
> topview | ← こちら側をひたすら、丁寧に削る
|o |
---------------
↑
o 印は一番pinマーク
とそのうちこんなかんじになる。
図5−1:
別角度から
図5−2:
この時、意外と太い電池へ行くリード線が見えてきますので
この片方を切ります。(電池の並列接続防止の為)
テスタで+−の確認もしておきます。
13番側がプラスで12番側がマイナスでした。
6、半田付け作業
あらかじめ電池にリード線を付けておくか、リード線付きの電池を買う
図6−3:
図6−4:
図6−5:
7、ケースへ再装着
元有った位置に付ける訳ですが、気を付けるのはNVRAMの向きです。
逆差しをすると壊れるので、ちゃんとpinマークをみて1番に1pinが
くるように差します。
今度は電池がぶら下がって(正確にはのっかってる)いるので
やたらとまわりに接触しないようにビニールテープなどで絶縁します。
8、データの書き戻し
8−1、電源を入れる(周辺->本体)
8−2、シングルユーザーモードで立ち上げる
L1(stop)+A キーを同時に押す
Type b(boot), c(continue), n(new command mode)
>b -s
Sun Workstation Model Sun-4/55
なんちゃらかんちゃらメッセージ
8−3、ファイルに落としておいた NVRAM の内容(eeprom.bak)を書き戻す
# dd if=/eeprom.bak of=/dev/eeprom
4 + 0 block in
0 + 4 block out
8−4、shutdown する
# shutdown ( halt )
8−5、ROM モニターモードから new command mode へ
Type b(boot), c(continue), n(new command mode)
> n
ok
8−5、Ethernet addr と host ID を書く( これより慎重に!!! )
直接アドレスへデータを書き込む作業のために、入力値を間違えると
boot しない、ハードが壊れるなどの恐れがあるそうです。
慎重にやりましょう。
ok f7002000 ffd04700 pgmap! <- 最初に書き込み許可
ok 01550800 ffd047d8 l! <- 4バイトづつ ffdo47d8 番地から書き込みます。
ok 20xxxxxx ffd047dc l!
ok 2aeab8fc ffd047e0 l!
ok xxxxxxxx ffd047e4 l!
ok 00000000 ffd047e8 l!
ok 00000000 ffd047ec l!
ok 00000000 ffd047f0 l!
ok 00000000 ffd047f4 l!
ok .idprom <- 入れた値を確認する
ok ffd047d0 64 dump
ok reset <- リセット
順調に行けばこれで完了です。リブートしましょう。
8−6、参考
もし、データを待避してない時は以下を参考にそれらしいデータを作る事もできます。
8−6−1、host ID
host ID は NVRAM のデータの ffd047d9 番地に入ります。
SS 1 = 51
SS IPC = 52
SS 1+ = 53
SS SLC = 54
SS 2 = 55
SS ELC = 56
SS IPX = 57
SS 10,20 = 72
SS Classic,LX,5,4 = 80 を選んで入れます。
ちなみにSS 2なら ffdo47d8:01550800
8−6−2、Ethernet addr
Ethernet addr は世界的に一意になってて、上位3バイトは
SunMicroSystems の 08.00.20 が入るそうなので
ffdo47da 〜 ffdo47df までを 08.00.20.xx.xx.xx と xx を適当に
入れます。
8−7、Warning NVRAM checksum eeror が出る時
単なる警告なので問題はないそうですが、気持ち悪いので
ちゃんと計算した値を入れましょう。
先ほどの NVRAM の ffd047d8 〜 ffd047e6 までの15バイトを
xor した値を ffd047e7 番地に入れます。
つまり
ffd047d8:01550800
ffd047dc:20000000
ffd047e0:2aeab8fc
ffd047e4:aeab8cxx
だとすると xx は になります。
9、めでたし
これでめでたく、いい「ほっ」が出る。・・・事を願っています。
上記の作業の結果、あなた、もしくはあなたのSSにどんなことが
起こっても当局(わたし)は一切、関知しないのでそのつもりで
なおこのテープは自動的に消滅はしません。
では検討をお祈る。ちゃちゃちゃちゃん♪
#スパイ大作戦懐かしいっすね。
それでは ふろ〜む しんたろ@茨城県境町の空のしたより
∩ ∩
( ̄。 ̄)..zzZ E-mail
〜(_ x _) URL http://shin.nu/