United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

Sun SPARCstation IPXを修理する! Part 3: SCSI2SD、Solaris のインストールと拡張

Main57_99b98e47550244b29eb7e1fbd9ddebbddbfdc9da.jpg

SCSI-to-SD ストレージ変換器の取り付け、O/S のインストール、拡張の検討

このシリーズの最初の記事では、Sun SPARCstation IPXを紹介し、動作しない電源アダプタの電解コンデンサの交換をしたり、BIOSでPCの設定をするのと同じように、イーサネットアドレスとSunホストIDを保存するために使用するNVRAMを交換したりしました。2回目の記事では、プラスチック製エンクロージャーの清掃、追加のPSU作業、元のデバイスを修理することにより、NVRAMの永続的な問題に対処する方法について取り上げました。

このシリーズ最後の記事となりました。Solarisオペレーティングシステムの新しいコピーをインストールする前に、SCSI-to-SD ストレージ変換器を導入する方法をご紹介します。

SCSI2SD

207MB SCSI HDD with a 32GB Micro SD as comparison

SPARCstationに取り付けられたSCSIドライブは、問題なく動作しているようです。旧式のドライブは、時々動かすことをお勧めしますが、常に動かしていなければ、少しは長持ちするかもしれないですね。また、207MBは大容量のストレージではありません。上の画像は、32GBマイクロSDドライブと比較するために撮影したものです。

Adaptor board for SD Card Storage

便利なことに、SD カードをストレージに使用し、複数のドライブとして認識させることができるボードが購入できます。SCSI2SDの最新バージョン(バージョン6) は、最大7個のドライブをエミュレートするためのサポートを提供し、ハードディスクドライブと光学ドライブを混在させることが可能です。

SCSI cable

これをIPXのシャーシに取り付けるには、少し長めのSCSIケーブルを新たに作る必要があります。ここでは、RS Pro 50-wayリボンケーブル (289-9981) と、3M IDC ケーブルマウントソケットコネクタ (828-0412) を使用しました。元のケーブルは写真左、新しいカスタム長のケーブルは写真右のものです。

ファームウェアとscsi2sd-util6のビルド

SCSI2SDボードにはファームウェアがあり、一般的には、最新版にアップデートすることがお勧めです。ダウンロードのリンクはウィキペディアにありますが、ソースからビルドすることも可能です。ここでは、Ubuntu Linux 20.04でビルドする際の手順を次に示します。

はじめに、依存関係にあるファイルを、以下に従ってインストールする必要があります。

$ sudo apt install gcc-arm-none-eabi dfu-util automake-1.15 libgtk2.0-dev

$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

$ sudo python2 get-pip.py

$ sudo pip2 install intelhex

インストールされていない、他のツールをインストールする必要が出てくるかもしれません。その場合、構築時のエラーから、何をインストールするべきなのか、明確にわかります。

引き続き、ファームウェアのソースをクローンしてビルドします。

$ git clone --recursive git://www.codesrc.com/git/SCSI2SD-V6

$ cd SCSI2SD-V6

$ ln -s Makefile.2020c Makefile

$ make -j4

「バージョン 6 2020c」ボードであったため、Makefile.2020c へのシンボリックリンクが作成されましたが、別のビルドを使用している場合は、正しい Makefileを使用する必要があります。

ビルドが正常に終了すると、次のファームウェアファイルが作成されます。

build/firmware.V6.2020.dfu

ユーティリティGUIの構築には以下も必要です。

$ cd src/scsi2sd-util6

もう一度makeを実行します。しかし、ここでのビルドは成功しませんでした。cmakeやconfigureを使用しないため、システムに合わせてファイルを手動で編集する必要があるのかもしれません。ドキュメントやイシュートラッカーなども特にないようでした。

GitHub を見てみると、このコードベースにはいくつかのフォークがあるようで、中でも、jwakelyというユーザーによるものが信頼できるように思えました。問題があるとされていた、dfu-util のビルドを試みる代わりに、システムにインストールされているビルドを使用するオプションが追加されているコミットがあったためです。ここでは、これをクローンして以下のようにビルドしました。

$ git clone --recursive https://github.com/jwakely/SCSI2SD-V6.git

$ cd SCSI2SD-V6/src/scsi2sd-util6

$ USE_SYSTEM_DFU_UTIL=Yes make -j4

実際には、scsi2sd-util6 バイナリがビルドされるまでmakeコマンドを何度か実行する必要がありました。また、“sudo make install”の実行はお勧めできません。これを実行すると、/usr/bin/ にインストールされますのでご注意ください。言うまでもなく、バイナリは簡単に、 /usr/local/bin などのより適切な場所に移動させることが可能です。

ここまでの解説が、ユーティリティをソースからビルドしたい方の役に立つことを願っています。また、アップストリームバージョンをビルドしようとしたときに、明らかな間違いがあった場合や、makeインフラに簡単な変更を加えるだけでよかった場合には下にコメントを残していただけると幸いです。

SCSI2SDの設定

latest firmware and scsi2sd-util6 debug log

最新のファームウェアと、scsi2sd-util6(どちらもダウンロードしただけか、ソースからビルドしてあるもの)が準備できました。では、ボードのアップデートとストレージの設定に進みましょう。

まず、USBポートにアクセスします。udevルールが提供されていないので、sudoでscsi2sd-util6を実行する必要があります(もちろん、ルールを作成してしまっても良いです)。

$ sudo scsi2sd-util6

ファームウェアメニューにファームウェアアップグレードのオプションがあり、ここでファームウェアを選択してボードを接続すると、すべて順調に進んだ場合、上の写真のようなデバッグログが出力されます。

Configuring the scsi2sd-util6

次は、設定を済ませましょう。一般的な設定は上記の通りです。必要な設定は、パリティをサポートしているか、バスターミネーションがドライブで必要か、または、システムにより異なります。エミュレートされるドライブごとにタブが用意されていますが、例えば、好きなだけ大きなストレージデバイスを設定する、といったことはできない場合もよくあります。これは、古いシステムではハードの制限がかなり強く、特定のベンダーやドライブのモデルしか認識しない可能性が高いため起こります。そのため、特定の既知デバイスをエミュレートしてみることをお勧めします。

Configuring the settings

Web検索をしてみると、SPARCstation 10をSCSI2SD、NeXTSTEP O/Sと併用する場合の推奨設定について詳述されたページが見つかりました。そして、同じ設定を使用し、エミュレートされたドライブをSCSI ID 3で、サイズを2GBに、セクターサイズを512バイトに設定しました。この設定をGUIからXMLファイルにエクスポートし、sectoresPerTrackを139に、headsPerCylinderを4に変更後、 再インポートしてからボードにアップロードしました。

SCSI2SD was then cabled up to the SPARCstation

後からドライブの構成を調整する必要がある場合に備えて、組み立てる前に、SCSI2SDとSPARCstationを接続し、簡単なテストを行いました。

executing probe-scsi at the OpenBoot prompt

幸運にも、OpenBootプロンプトでprobe-scsiを実行すると、ターゲット3のSCSIディスクと、接続されている外付けCDROMドライブがIPXで認識されていることが確認できました。

Solarisのインストール

early version of the Solaris operating system

SPARCstation IPXが発表された頃のものである、Solarisオペレーティングシステムの初期のバージョンSolaris 1.1をインストールすることに決めました。このパッケージには、SunOS 4.1.3 UNIXとOpenWindows Desktopバージョン3が入っています。

Installing - booting from CDROM

インストールはまぁまぁ簡単で、CDROM からの起動、インストール先のドライブの選択、フォーマットを行います。

first stage of installation results in a “miniroot” being written to disk

インストールの最初の段階では、「ミニルート(miniroot)」という、最小限のブート可能なイメージがディスクに書き込まれます。ここからシステムが起動し、インストールが再開されます。この段階で、小さな問題が2つ起きました。1つ目は、インストーラーが日付に入力された2021年を受け付けなかったことで、最終的に1998年に設定しました。2つ目の問題は、「10」で始まる固定IPアドレスを入力するときに起こり、ネットワークマスクを入力することができませんでした。その後調べてみると、CIDRのRFCが、このO/Sリリースの1年後まで存在しなかったことがわかりました!

上の動画では、システムの起動、ログイン、いくつかの簡単なアプリケーションの起動をしています。

拡張

The collection includes a number of additional SCSI expansion units

このコレクションには、多数のSCSI追加拡張ユニットがあります。CDROMドライブの上には外付けHDDエンクロージャーがあり、その上には、DATベースのテープカセットに非圧縮で最大4GB、圧縮して最大8GBまで保存できる、DDS-2テープドライブが積み重ねられています。一番上にある周辺機器は、150MB 1/4インチカートリッジ(QIC)テープドライブです。おそらくこれが最も便利なものでしょう。というのも、IPX時代にまでさかのぼると、この形式で配布されたソフトウェアを時折見かけるためです。しかし、これもかなり状態が悪く、どこか湿った場所に保管されていたようです。復元にはかなり手こずるかもしれません。

internal expansion via SBus cards

SPARCstationsは、32ビットのアドレス、データバスをもつSBusカードによる内部拡張にも対応しており、当時としては非常に高速な100MB/sまでの転送が可能でした。IPXには、2 種類のSBus拡張スロットがあります。上の写真で示したカードは、Transputerリンクアダプターです。Sunワークステーションを、Transputer ベースの並列処理システムのフロントエンドプロセッサ、つまり、計算量の多いワークロードのアクセラレータとして使用することができます。

SBusカードの優れた機能の1つとして、PROMが搭載されていることが挙げられます。PROMは、カードとその特性を示すものと、オプションで、ソフトウェアドライバが格納されています。このドライバが付属している場合、Forthベースの言語で書き込まれています。実際のところ、OpenBootコンソール(BIOS)もForthベースです。残念ながら、上の写真のカードには空のEEPROMが付属していたので、もしも、EEPROM がコピーされている可能性のあるParsytec BBK SBusカードをお持ちでしたら、ご連絡いただけると幸いです。

最後に

SPARCstation IPX の復元は楽しいプロジェクトでした。10 代の頃、どうしても欲しかったけれども、手が届くことはなかったレベルのシステムをついに手に入れて、この手で動かせることに感動しています。加えて、今後のプロジェクトでこれを利用する可能性はあり、やや遅咲きタイプではありますが、いずれ詳細をお伝えできればと思います。

アンドリュー・バック

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.