1.Ultra1について
Ultra1はSun Microsystemsが作っていたWorkstationで、UltraSparc CPUを積んだ64bitマシンです。オンボードでSCSIやNIC、サウンドなどがついています。当然、他のWorkstationと同様に、シリアルをコンソールとして使用したり、ネットワークからOSを起動することもできます。普通はSolarisをインストールして使うのですが、中古で入手したものなので、OSのライセンスがありません(OS自体はSolaris2.6がインストールされていましたが)ので、FreeなUNIXをということで、使い慣れているNetBSDをインストールすることにしました。うちのUltra1は以下のようなスペックです。
| モデル |
Ultra1 Creator 3D |
| CPU |
Sun Ultra Sparc 167MHz |
| メモリ |
64MB |
| HDD |
なし(netbootします) |
| NIC |
Happy Meal Ethernet(hme) |
port-sparc64では他のアーキテクチャのマシンとは異なり、FDからのbootができません。よって、HDDへのインストールは次のような手段で最小限のシステムを起動して行なうことになります。
- Solarisのswapパーティションにminirootを書き込んで、そこから起動
- netbootで最小限のシステムを起動し、そこからインストール
- Solarisからインストール
うちのUltra1に附属していたHDDはうるさいことで有名なBARRACUDAでしたので、これを使うことはやめて、netbootで運用することにしていました。netbootではインストール作業はNFSサーバ側での設定のみとなるので、実質的にインストールは"tarballを展開するだけ"です。
netbootの基本的なことについてはAlphaマシンのnetbootのページを参考にしてもらうことにして、ここではsparc64(sparcともほとんど共通です)特有の項目について書きます。
2.rarpdのセットアップ
arpコマンドというのを使ったことがあるかと思いますが、同じネットワークに接続されているホストであれば、IPアドレスに対応したEthernetアドレス(Macアドレスともいいます)があります。(arp -anとでもやってみてください。)Sunのworkstationでは、起動時のIPアドレスをrarpdで取得します。rarpdはリクエストを受けると、/etc/ethersと/etc/hostsを参照して、リクエストを出したEthernetアドレスに対応するIPアドレスを割りあてます。
- /etc/ethers … このファイルはEthernetアドレスとホスト名の対応が書かれています。
- /etc/hosts … これはよく知られているように、IPアドレスとホスト名の対応が書かれています。
まずはNICのEthernetアドレスを調べる必要があります。これは非常に簡単に分かります。なぜならUltra1(Sunの他のWorkstaionでも同様)は起動するとCPUの種類などの他にEthernetアドレスを表示するからです。
/etc/ethersはethernetアドレス、ホスト名の順番で、/etc/hostsはIPアドレス、ホスト名の順番で書きます。どちらのファイルも間はスペースかタブで区切ります。
ファイルの編集が終ったら、
# /usr/sbin/rarpd -a -s
のようにしてrarpdを起動します。rarpdの詳細についてはrarpd(8)を参照してください。
※rarpdはBerkeley Packet Filterを使用するので、rarpdを起動するホストのkernel設定でbpfが有効になっていることを確認してください。
3.tftpdのセットアップ
alphaマシンはnetbootの時にtftpで"netboot"という名前のファイルを取得していましたが、Sunのマシンはちょっと違います。SunのマシンはIPアドレスに応じた名前のファイルを取得します。どのような名前になるかというと、IPアドレスを16進数で表記したものが、tftpで取得するファイル名になります。現行のIPv4は32bitなので、16進数では8文字になります。例えば、IPアドレスが192.168.1.32であれば、16進数では
のようになるので、ブートプログラムを"C0A80120"という名前にすればよいということになります。実際には、ブートプログラムをリネームするのではなくて、IPアドレスに合わせた名前のシンボリックリンクを作るほうがよいでしょう(そうすれば複数のマシンでファイルを共有できます)。
あとはalphaマシンの時と同様に、ブートプログラムをtftpdのルートディレクトリに置き、/etc/inetd.confでtftpdを有効にして、inetdを再起動すれば設定は終りです。
4.bootparamdのセットアップ
最後にbootparamdの設定です。これはrootファイルシステムはどこにあるか、といった情報を伝えます。必要な設定は/etc/bootparamsというファイルに記述します。以下のように書きます。
Ultra1のホスト名 root=NFSサーバ名:Ultra1がrootとして使うパス \
gateway=default routeのIPアドレス:netmask
/etc/bootparamsの詳細についてはbootparams(5)を参照して下さい。これを書き終えたら、bootparamdを起動します。これは単純に
# /usr/sbin/bootparamd
のように起動すればよいでしょう。詳細はbootparamd(8)を見て下さい。
5.ファイルシステムの設定
これは特別難しいことではなく、単にtarballを展開するだけで終りです。bootparamdのところで設定したUltra1がrootファイルシステムとして使うパス(NFSサーバでのパス)に移って、そこで最低でもbase.tgz、etc.tgz、kern.tgzの3つを解凍します。そして、etcの中の必要な設定ファイル(fstab,mygate,rc.confなど)を適当に編集し、
必ずデバイスファイルを作成します。詳しくはalphaマシンのnetbootのページを参照して下さい(手抜きか?)。
6.Ultra1の起動
ここまでの設定が終了したら、Ultra1をネットワークに接続して起動させます。キーボードがあるマシンならL1+AかStop+Aで、なければシリアルコンソール(後述)からBREAK信号を送ってPROMの"ok"プロンプトを出します。そこで、
boot net netbsd
のようなコマンドで起動させることができます。また、HDDがついていない場合は自動的にnetworkから起動しようとするので、うちのようにHDDのないマシンの場合は何もしなくてもnetbootしてくれます。
7.おまけ:シリアルコンソールの使い方
6.でシリアルコンソールが出てきましたが、AlphaやSparcなど、いわゆるUNIXワークステーション・サーバと呼ばれるマシンはその機能としてシリアルコンソールをサポートしていることがあります。Ultra1もそうしたマシンの1つです。Ultra1のシリアルポートは2つあり、どちらもD-sub 25pin(PC98と同じです)です。ですから、DOS/VマシンとUltra1を接続するときは、片方がD-sub 9pinで、もう片方がD-sub 25pinになっている
クロスケーブルを使用します。古い98とDOS/Vをつないでインターリンクなどを使用したことがある人は、その時のケーブルを使えば、Ultra1-DOS/Vを繋いでシリアルコンソールを使用することができます。接続速度などは、
9600bps, 8bit, Non-parityにしておいてください。BSDマシンからであれば、cuコマンドなどで接続することができます。