« 国土交通大臣認定の「不燃木材」、10社中9社が性能不足 | トップページ | Fresnel(フレネル)の式で表面プラズモン共鳴角を求める -複素数の入った計算 »

2011年7月 1日 (金)

SunワークステーションのNVRAMが電池切れになったので

私の研究室では蛍光X線分析装置(島津製XRF-1700)の制御にSunのワークステーションSPARC station 5を使用している。OSはSun OS 5.5.1である。導入したのは1998年だから、まだパソコンでは装置制御、データ処理に力不足だった時期である。今の大学生にワークステーションと言っても伝わらないので、WSのことをあえてPCと呼んでいたりする。

150万円ほど出せばWindows XPのPCに制御機器周りを更新することもできるらしいが、そんなことはせず、いまだにUNIXベースのSunのWork Stationを使用している。

本日、そのWSが普段通り立ち上がらなくなった。WS本体を起動すると、色々なメッセージが表示された後、OKで停止してしまい。ログインの画面まで行かないのである。

画面上に流れているメッセージを読むと、エラーメッセージらしきものがあった。

The IDPROM contents are invalid.
Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c0000 File and args:
Internal loopback test -- Did not receive expected loopback packet.

Can't open boot device.

一行目のメッセージでWebを検索すると、EVRAMの電池切れが原因と判明した。EVRAMはボタン型電池が内蔵された電子部品であるが、電池も含めて樹脂で封止されているので、電池を交換するのは簡単ではない。

Webで検索した限り、対応は厄介そうであったが、実際やってみるとそうでもなかった。

・大いに参考にしたサイト SunのNVRAMが干上がったら 

・大胆にもNVRAMを分解して電池交換している人 SPARCstation の NVRAM の電池交換

以下の1→2で対応することにした。

1.とりあえず、電池切れのNVRAMを装着した状態で起動し、OK表示の状態から、電池切れのために失った16バイトの情報を入力してやり、普段通りにOSを起動して使えるようにする。

2.1.のようなことを起動の都度、毎回、行うのは面倒なので、新品のNVRAMに交換して元に戻す。

本体を開けてみると、EVRAMの型番はM48T08-150PC1。アールエスコンポーネンツのWeb注文で、当日発送1個2,375円、送料460円だった。

取り急ぎ、上の1.を行った。

幸いなことに、このSPARCstationは、スタンドアロンタイプでネットワークには接続していなかった。ネットワークの設定分、楽である。

起動後、途中で止まった状態でのOKプロンプトから、set-defaults と入力し、以下の手順で16バイト分の情報を入力していった。 (参考 SunのNVRAMが干上がったら

1バイト分ずつ

値 位置 mkp

とOKプロンプトの後ろに入力し、enterしていく。位置とは16バイト中何番目かを16進数で記したもの。順に以下のように入力した。後ろは説明なので入力しなくてよい。

01 00 mkp  ここは常に01
80 01 mkp  host idの1バイト目。機種で違い、SPARCstation 5では80
02 02 mkp  ethernet addressの1バイト目
03 03 mkp  ethernet addressの2バイト目
04 04 mkp  ethernet addressの3バイト目
05 05 mkp  ethernet addressの4バイト目
06 06 mkp  ethernet addressの5バイト目
07 07 mkp  ethernet addressの6バイト目
00 08 mkp  製造日の1バイト目
07 09 mkp  製造日の2バイト目
00 0a mkp  製造日の3バイト目
01 0b mkp  製造日の4バイト目
03 0c mkp  host idの2バイト目
03 0d mkp  host idの3バイト目
03 0e mkp  host idの4バイト目
0a 0f mkp  チェックサム。00~0eのxorの値。この代わりに下の1行でよい。

スタンドアロンタイプだったので、製造日だけでなく、ethernet address、host idの2~4バイト目は適当に数値を入れておけばよかった。上の数値は1~2バイト目以外、適当である。最後の行、チェックサムのxorを計算するのは面倒なので、代わりに

0 f 0 do i idprom@ xor loop f mkp

と入力するとよい。

その後、OKプロンプトにbootと入力すると、OSが無事にたちあがった。

この後、ワークステーションの電源は落とさずに使用する。いったん落とすと、上のことを起動時にもう一度やる必要がある。

NVRAMは日付、時刻も記憶しているので、dateコマンドを使用して、日付、時刻を直す必要がある。

date 0630183011

2011年6月30日18時30分に合わせた。

但し、dateコマンドはスーパーユーザー(login idがroot)でloginしないと変更できない。

後は、NVRAMの新品が届き次第、交換する予定である。NVRAMは挿す向きに注意!逆さまは絶対NG。

|

« 国土交通大臣認定の「不燃木材」、10社中9社が性能不足 | トップページ | Fresnel(フレネル)の式で表面プラズモン共鳴角を求める -複素数の入った計算 »

コメント

お尋ねします。
sunblade150を使っていますが、同じ症状になりましたので、NVRAMを交換しました。参考にされたページを見てやってみましたが、mkp や mkplが使えません。「mkp?」がでましので、c!などを使ってNVRAMのアドレスに直接書き込もうと思います。でも、アドレスが解りません。何か参考になるアドレスは無いでしょうか?よろしくお願いいあします。

投稿: sun初心者 | 2014年5月15日 (木) 19時55分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/187788/52087659

この記事へのトラックバック一覧です: SunワークステーションのNVRAMが電池切れになったので:

« 国土交通大臣認定の「不燃木材」、10社中9社が性能不足 | トップページ | Fresnel(フレネル)の式で表面プラズモン共鳴角を求める -複素数の入った計算 »