おい! あなたは%country%にいるようですが、%language%サイトを使用しますか?
Switch to English site
Skip to main content

故障した Sun SPARC station IPXを修理する! Part 1: ACアダプタと NVRAM

Main46_fd0612eb5acffebe0f6c15845d700c4d3596e609.jpg

ビンテージUNIXワークステーションの故障したAC電源の修理とNVRAMの交換

90年代前半にコンピュータ関連に携わっていたり、コンピュータに強い関心を持っていた方にとって、「Sun Microsystems」はお馴染みの名前であり、非常に憧れのワークステーションであったでしょう。現時点では、急速にPCが標準のデスクトップコンピュータとなり、ほぼすべてが同じようなものだと思われていました。クリエイティブ業界で働いていたならば、Macを使えたのはラッキーですが、それにしてもさほど違いはありませんでした。

SS5_cdaf1a2bf4ef89a276b27488ccbf0660c70f64bc.jpg
1994年頃のSun SPARCstation 5の広告から

しかし、その他のコンピュータとは一線を画し、見かけの違いが目立つだけでなく、パフォーマンスや機能の面でも明らかにリードしている、そんなコンピュータがあったのです。それが、UNIXワークステーションでした。その頃は、ほとんどの人がWindows 3.xを使用していて、限られたリソースや、真のマルチタスクではなかったこと、そして、頻繁に発生する不安定な動作に頭を悩ませていたのですが、UNIXワークステーションは、Windowsと比べ、はるかに高度で機能が豊富、かつ堅牢な環境を提供していました。これには、適切なマルチタスク処理、通常はよりサイズが大きいRAM、より強力なCPUと高度なグラフィックス、そしてより高性能のディスクなどが含まれていました。もちろん、これらすべてにコストがかかり、UNIXワークステーションは通常のPCの10倍の価格でした。

数多くのUNIXベンダーが競合しており、その多くが独自の優れたニッチを持っていたのです。その名の通り、強力なグラフィックワークステーションに特化したシリコングラフィックス社などは、3D視覚化、映画やテレビなどのアプリケーションで人気を博しました。

Sun Microsystemsのハードウェアはさまざまな用途で利用され、「ヘッドレス」(ディスプレイなどがない)バージョンのワークステーションは、初期のインターネット業界で特に人気があり、より大きなサーバーシャーシ構成は、DNS、FTP、メールおよびWebサーバーとして利用されていました。

初めて使用したUNIXコンピュータであり、個人的にはSun SPARCstation IPXが特に思い入れがあります。これは、多くのパワーを(当時にしては)小さなスペースに詰め込み、魅力的な工業デザインを備えたコンパクトな「ランチボックス」型のファクターマシンでした。

ハードウェア仕様

IPX_1682643f14c88e93c34ed2e8d149d501f77c184e.jpg

  • 40MHz 32ビットSPARC CPU + FPU(Sun 4/50)
  • 標準で最大64MBのRAM
  • Sun Turbo GXカラーフレームバッファー
  • 3.5インチフロッピードライブ
  • SCSIドライブ
  • 10Mイーサネット(外部トランシーバーを使用)
  • オーディオ入出力
  • シリアルポート
  • 2x SBus拡張スロット

SPARCは、Sunと富士通によって開発されたRISC命令セットアーキテクチャ(ISA)であり、1987年に初めてリリースされ、現在も富士通が引き続き開発を行っています。初期のSunコンピュータはMotorola 68Kプロセッサをベースとしており、最初のSPARCワークステーションは1989年に発表されました。

プロセッサのクロック速度は今から見れば信じられないほど遅いと思えるかもしれませんし、当時も同じクロック速度のIntel CPUがありました。ただし、SPARC CPUはUNIXを念頭に置いて設計されており、IPXは8x ハードウェアコンテキストを備えたMMUが搭載されていたため、マルチタスクに強いというメリットがありました。

1991年の発売時の価格は、19インチCRTモニター、キーボード、マウスをセットにしたSPARCstation IPXで約15,000ドルでした。そのため、この使用は専門的なアプリケーションに限定される傾向があり、この頃私が使っていたのは、モバイルデータネットワークの適合性テスト向けのものでした。

この記事の主題であるSPARCstation IPXには、数百メガバイトのHDDが搭載されており、さらに、32MBのRAMも備えています。私はこれを何年も所有しており、以前は機能していたのですが、ある時、電源装置に障害が発生しました。

電解コンデンサの故障

PSU_PCBA_db2bf679ccd887580265db0a3cafa10941e104bf.jpg

仕様外であり、故障した電解コンデンサは、老朽化した電子機器に共通の問題であり、すべてのSun SPARCstationのモデルの中でも、これは特にIPXおよびIPCにおいて、問題となっているように思われます。これは、最初に取り付けられたユニットの品質が悪かったか、生産バッチ不良だった可能性があることを示唆しています。

SPARCstation IPCとIPXは同じ電源を採用しており、PCからPSU(電源ユニット)内の電解液を交換する方法についてはこのウェブページで説明されています。興味深いことに、この著者は他の場所で、PSUが故障したIPCが2台あったのに、ある1台のIPXに取り付けられたPSUは正常に機能していたと述べています。ただし、このIPCは少し前のモデルであり、単に古いものであった可能性があります。でなければたまたまだったのかもしれません。いずれにせよ、私は2台のIPXを所有していますが、どちらの電源も故障していました。

ライン側にあり、上部にゴム製キャップが付いた、物理的にサイズが大きいフィルターコンデンサを除き、電解コンデンサはすべて交換しました。使用したRSパーツは以下の通りです。

  • Nichicon470μF電解コンデンサ25V (715-2669)
  • Panasonic3300μF電解コンデンサ10V (526-1171)
  • Wurth Elektronik47μF電解コンデンサ50V (839-8850)
  • Wurth Elektronik1μF電解コンデンサ50V (839-9351)
  • Panasonic220μF電解コンデンサ16V (449-0974)
  • Nichicon100μF電解コンデンサ25V (520-0867)
  • Nichicon1000μF電解コンデンサ25V (715-2678)

元々は25Vと50Vの両方の定格47uFコンデンサが取り付けられていましたが、便宜上、50V定格パーツのみを注文し、これを両方の代替として取り付けました。

Leakage_0008d67e4fad3eebd30889511d56f1ced87e791c.jpg

上の写真から分かる通り、元のコンデンサの電解液は漏れていました。嫌な予感がします。

Corrosion_7f20dc7673d58bf4d4f6a06da8b6bfb2e6be553f.jpg

電解液の漏れにより、ボードの下側が腐食しているように見えました。

Caps_ef51cd3c27219b6a775df3bcacede6bfd54ad152.jpg

コンデンサの交換後、電源装置を再度組み立て、シャーシに戻しました。

PSU_Test_dbd0a6940127672d309bd8b96666aa2632dd156e.jpg

その後、電力をオンにします。どきどきする瞬間です。

残念ながら、電源を入れたときに一瞬PSUのファンがわずかに駆動しただけで、私のSPARCstationは息を吹き返しませんでした。この時点でPSUを取り外し、ショート等がないかはんだ付けをもう一度チェックしましたが、明らかにおかしい個所はありません。先ほどふれた、腐食以外には、ですが。

コンデンサの交換にはそれほど時間がかからず、起動しない2個目のIPXがあることを踏まえて、2個目のIPXでもう一度電源のコンデンサ交換をしてみることにしました。こちらの方は、PCB上部に電解質がなく、下側には腐食がない、はるかに良好な状態でした。

Cleaner_ad75c65e0512cececa72f59e1e04d4495219c5da.jpg

古いコンデンサを取り外す際に、パッドとトレースの一部がついてきて、剥がれてしまいましたが、それほど深刻ではなく、新しいコンデンサを取り付けることにより、簡単に解決できました。

PadLift_a6b8b136fca4b534e0a78053f587a47d040db5f2.jpg

コンデンサを取り付けて組み立て、これを最初のSPARCstationに取り付け、電源を入れたところ、ありがたいことに起動しました。

システムを1台復活させることが第一目標なので、良いタイミングで最初のPSUに戻り、障害を追跡するつもりです。2個目の電源が動いたので、両者を比較することで様々なポイントで測定でき、以前よりも原因究明は難しくないでしょう。

それでは、次の問題に取り掛かります。

NVRAMの交換

PowerUp_1_ff859df426c1a52e5f02d2bd2e9fb656426c6cd7.jpg

ハードウェアを初期化してO/SをロードするBIOSがPCにあるのと同様、SunマシンにはOpenBoot PROM(OBP)ファームウェアがあります。そのため、どのBIOSを使用するか選択することにより、デフォルトで起動するデバイスを設定するなどの構成変更を行うこともできます。これは不揮発性メモリ(NVRAM)に保持されます。

ただし、PCには通常、電源オフでも構成設定や時刻を保持するために、充電式バッテリーやコイン電池が搭載されています。ですが、Sunハードウェアにはその代わりに、SRAM、RTC、およびバッテリーを統合した、TIMEKEEPERデバイスが使用されています。したがって、バッテリーが故障した場合は、デバイス全体を交換する必要があります。

上記の写真のエラーを見るとわかるように、OBPが、NVRAMチップのバッテリーが切れていると判断しているようです。困ったことに、これはイーサネットMACアドレスとそのSunホストIDの格納にも使用されています。この情報は、ライセンスソフトウェアにおける、特定のマシンへのロックなどに使用される一意のIDです。

由緒あるSun NVRAM/hostid FAQから、IPX用にM48T02(310-9655)と指定されている交換パーツの詳細を参照することができます。これをはめ込んだら、MACアドレスとホストIDをプログラムしなければなりません。ただし、MACアドレスとホストIDの情報がない場合は、これを補う必要があり、MACアドレスがネットワーク上の別のデバイスのMACアドレスと競合しないことを確認しておく必要があります。上記のリンクのFAQには、マシンモデルに固有のプレフィックスが付いたホストidフォーマットの詳細が記載されていますが、MACアドレスプレフィックスは、Sun Microsystemsに割り当てられたプレフィックスです。

IDPROMを再プログラムする前に、OBPの”ok”プロンプトで以下のように入力して、NVRAMを初期状態にリセットし、”diag”オプションを無効にする必要があります。

set-defaults
setenv diag-switch? false

OBPモニターは実際にはForthインタープリタであり、”mkp”コマンドを使用してNVRAMのIDPROMセクションを再プログラムすることができます。便利なことに、FAQにはSPARCstation IPXハードウェアに基づく例があり、これには"57c0ffee"のホストIDが、MACアドレスは"08:00:20:c0:ff:ee"が使用されています。

1 0 mkp
real-machine-type 1 mkp
8 2 mkp
0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp

最初のコマンドで、フォーマット/バージョン番号を保持するバイト0を”01”に設定します。バイト2〜7にはMACアドレスが保持されます。バイトc~eはホストIDを格納します。バイトfはチェックサムの保持に使用され、これは上記の最後のコマンドを使用して計算およびプログラムされます。詳細については、FAQを参照してください。

この時点で、プロンプトに”reset”を入力することができます。

PowerUp_2_f40a7489be9499b840647ab4aca5343db66ecf6c.jpg

これでMACアドレスとホストIDが構成されたことがわかりましたが、電源をオフにすると、構成の変更が保持されているにもかかわらず、NVRAMを交換する必要がある、というエラー警告がまだ表示されます。これは珍しい現象ではないようで、これに関してオンラインでさまざま議論がされておりあるスレッドの提案によると、代わりにM48T12パーツを取り付けることで問題が解決する場合があるとのことです。

NVRAM_a07ca2fd5accae0c79bfb80b2e65a7ee20a40e76.jpg

このエラーが引き続き発生することで困ることとしては、マシンが自動的に起動しない、ということが挙げられます。この問題を解決するためにM48T12パーツ(829-4073)を注文し、再度IDPROMプログラミングを行いました。残念ながら、結果は同じでした。さらに調査が必要ですが、少なくともSPARCstationは正確に時間を保持しており、電源を入れる都度MACアドレスとホストIDをプログラムする必要はないのですが、自動起動しないというのは、非常に面倒です。

初めて起動

SunOS_be271c44e42acef2d2d7f825f2388dd3abb8be9a.jpg

内部ディスクから起動するには、OBPプロンプトで以下の通り入力します。

boot disk

これで、Solaris 7(SunOS 5.7)がロードされました。

EthAddress_fec16d08f3b5e4375b10f0f38835f780b360c9c7.jpg

しばらくすると、rootとしてログインできるようになりました。ログを見ると、マシンが最後に起動されたのは、2000年のようです。少なくともマシンは2000年であると認識していたわけです!ログを検索すると、以前に起動した際のイーサネットアドレスを確認することもできました。これは、OBPモニターに戻り、このアドレスを使用してIDPROMを再プログラムできるので役に立ちました。もちろん、これが元のMACアドレスではなく、元のものが失われた際に、ランダムな値が設定された、という可能性も考えられます。

次のステップ

これで稼働するマシンが手に入ったので、エンクロージャをきれいにして傷跡を直したり、可能であればプラスチックの黄ばみを解消できるとなお良いです。NVRAMエラーの問題が解決可能であるかを確認するには、さらなる調査が必要です。最後に、Solaris 7は1998年後半にリリースされており、恐らくこれは、SPARCstation IPXにとって少々新しいモデルです。そのため、使用するなら、システムが導入された時期に近い1991〜1994年のSolaris 1.xリリースが適切と思われます。

パート2も公開されています

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.
DesignSpark Electrical Logolinkedin