NetBSD/Sun3は MPUに680X0を使用したSun3シリーズのためのNetBSDである。
本文書は、NetBSD-1.3.2をSun3にポーティングした
NetBSD1.3.2/sun3について述べる。
以下にNetBSD/Sun3の概要を列挙する。
Sun3はそもそもBSD(SunOSも当時はUNIX BSD/Sun Versionであった)が動作する
いにしえの名機であり、そのハードウェアで最新のBSDが動作するのは、楽しい。
Sun3は今では非常に遅いものの、様々なサーバとして、それなりに使い道
があるだろう。
なんといっても、ハードウェアを保有しているマニアとしては、
実働できる最新OSが入手できることに意味があるだろう。
NetBSD1.3.2/Sun3は、非常に安定して動作している。十二分に実用に耐える。
なお、本文書で紹介するインストール方法は、
FreeBSD
の動作するマシンを必要とする。
BSD UNIXのネットワーク管理に慣れた読者なら、FreeBSDではなく、他のOSでも代
替できる。
NetBSD1.3.2/sun3のインストールには、
実用的に使うには、少なくとも8MB、X windowを使用する場合は16MBの メモリが必要だとされている。
ディスク容量は次の通り
パーティション | 推奨 | 推奨(Xwin使用) | 最小 | 最小(Xwin使用) |
---|---|---|---|---|
root (/) | 20M | 20M | 15M | 15M |
user (/usr) | 95M | 125M | 75M | 105M |
swap | 実メモリの2倍 | 実メモリの2倍 | 実メモリの2倍 | 実メモリの2倍 |
local (/usr/local) | ありったけ | ありったけ | ありったけ | ありったけ |
3/50, 3/60, 3/110 3/75, 3/150, 3/160 3/260, 3/280, 3/Eである。
- シリアル・ポート (RS232C)
- 内臓 ttya, ttyb
- ビデオ・アダプタ
- bwtwo, cgtwo, cgfour
- ネットワーク・インターフェース
- オンボード Lance Ethernet (le)
- オンボード または VME の Intel Ethernet (ie)
- Sun3/E SCSI/Ethernet board
- SCSI (ほとんどの SCSI ディスク, テープ, CD-ROM, etc.)
- オンボード "si" (SCSI-3)
- VME "si" (SCSI-3) ボード
- Sun3/E SCSI/Ethernet ボード
- SMD ディスク (巨大な 8inchディスク)
- Xylogics 450/451
- Xylogics 753/7053
- 入力デバイス
- Sun キーボード、マウス
- その他
- バッテリ・バックアップされたリアルタイム・クロック
本稿のために筆者が使用したSun3の構成は、
- 本体
- Sun3/160
- メモリ
- 4MBytes
- キーボード
- Type3 英語キーボード
- マウス
- Sun製標準の光学マウス
- ビデオ・アダプタ
- CG2
- SCSIインターフェース
- VME SC(サポート外なので、動作せず)
Sun3のメモリは4MBを試用した。 4MBのメモリは非常に苦しい。仮想記憶に よってかろうじて動作するものの、マルチユーザ・モードで使用するには無理が ある。可能ならば8MB以上を搭載すべきであろう。
今回試用したキーボードは、SunのType3キーボードである。東芝から日本 語キーボードが供給されていたが、NetBSDでどうなるかは不明である。
Sun3はキーボードやディスプレイ・ユニットが無くても、シリアル・ポー トにキャラクタ端末を接続することで使用することができる。 (参照:シリアル・ポートをコンソールにする)
Sun3はキーボードやディスプレイ・ユニットが無くても、シリアル・ポー
トにキャラクタ端末を接続することで使用することができる。
まず。RS232CのAポートに
が表示されたら、すばやく端末のなにかのキーをたたく。Type a character within 10 seconds to enter Menu Tests... (e for echo mode)
続いて、モニタのPROM変更コマンドでCmd=>q >
とする。>q1f EEPROM 01F: 12? 10 EEPROM 020: 12? .
Sun3本体以外に、ファイル・サービス、その他各種サービスを提供するサーバ 機として、
を使用した。ファイルサービス以外に、大した負荷がかかるわけではないので、 旧型マシンでも充分に使用に耐える。
- 本体
- Intel DX4/100MHz
- OS
- FreeBSD 2.2.7
- メモリ
- 20MBytes
- HDD
- 1.6GBytes
具体的には、 RARP, tftp, bootparamd, NFS をサービスする。
NetBSD/Sun3のインストール方法には
よって、ここでは、現在、一般的であると思われる、ネットワークを使用し たインストールを紹介する。
また、本稿で使用したSun3ではSCSIインターフェースが動作しないため、こ
こでは、ディスク・レスでの使用を具体例とする。
ネットワーク・インストールの前に、次に述べる、Sunのネットワーク・ブート
手順を理解しておいた方が良い。トラブル・シューティングを円滑に行うには、
ブート手順の理解が不可欠だろう。
ここでは、Sun3のネットワーク・ブート手順を記述する。
以下のインストールでは、主にこのブート手順に使用されるサーバの設定を行
う。
FreeBSDのサーバでは、ネットワーク・ブートで必要とされる機能を提供す
るように設定する
Sun3に向かっているよりも、FreeBSDの設定を行っている時間の方が長いだろう。
ここで設定するインストールするSun3は
ホスト名 | sun3 |
---|---|
IPアドレス | 192.47.224.8 |
Ehternetアドレス | 8:0:20:1:67:6c |
ホスト名 | gigi |
---|---|
IPアドレス | 192.47.224.156 |
Sun3のためのファイル・システムはFreeBSDマシンの
/usr/home/export/sun3/root以下にもつことにする。
FreeBSD側の設定
FreeBSDでは、
●bpf
FreeBSDでrarpd, bootparamdを使用するには、
bpf(Berkley Packet Filter)が
カーネルで使用できるようになっていなければならない。
カーネルのconfigファイルを確認して、bpfが入っていない場合は、
という行を加えてFreeBSDカーネルを再構築する。pseudo-device bpfilter 4 #Berkeley packet filter
# sh MAKEDEV bpf[0-9]とする。
●rarpd
rarpdは/etc/ehtersというファイルを参照する。
/etc/ethersは次のような内容である。
1行に1エントリづつ書く。8:0:20:1:67:6c sun3
とする。# rarpd ネットワーク・インターフェース名
とすると、現在使用可能なネットワーク・インターフェースが表示される。# ifconifg -a
rarpd_flags="ed0"には、自分の使用したいネットワーク・インターフェース名 を入れる。rarpd_enable="YES" # Run rarpd (or NO). rarpd_flags="ed0" # Flags to rarpd.
●tftpd
tftpdを使用可能にするには、/etc/inetd.conf中のtftpdに関する以下のエント
リを追加する。
inetd.confファイルを編集した後は、tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot
として、intedに変更を通知する。# kill -HUP `cat /var/run/inetd.pid`
その後、# gunzip < NetBSD-1.3.2/sun3/boot.../netboot.gz >/tftpboot/netboot
とする。ここで、C02FE008はSun3のIPアドレス192.47.224.8を16進数で表記し たものである。(必要ならば、リーディング0を付け、1バイトを2桁で表記せねば ならない)# cd /tftpboot # ln -s netboot C02FE008
tftpの実験はtftpコマンドで行える。
とりあえず、任意のマシンから、次の様にする
このようにファイルが取れれば、OKであろう。gyopi% tftp tftp> tra Packet tracing on. tftp> verb Verbose mode on. tftp> bin mode set to octet tftp> conn 192.47.224.156 tftp> get netboot getting from 192.47.224.156:netboot to netboot [octet] sent RRQreceived DATA sent ACK : received DATA sent ACK received DATA Received 15360 bytes in 0.1 seconds [1228800 bits/sec] tftp> quit gyopi%
●bootparamd
bootparamdの設定ファイルは、/etc/bootparamsである。
/etc/bootparamsには次の様に記述する。
sun3 root=192.47.224.156:/usr/home/export/sun3/root \ swap=192.47.224.156:/usr/home/export/sun3/swap \ dump=192.47.224.156:/usr/home/export/sun3/swapsun3はサービスを受けるホスト名である。
/etc/bootparamsが書けたら、
# bootparamdとして、bootparamdを起動する。
# bootparamd -dとすると、bootparamの振舞いが観察できる。
●NFS
NFSの設定は/etc/exportsを記述する。
/usr/home/export/sun3/root -maproot=0とする。
●tcpdump
tcpdumpはネットワークをモニタリングするためのコマンドである。
tcpdumpも bpfを使用する。
tcpdumpはrarpd,bootparamd, tftpの動作を確認するのに、非常に有用である。
tcpdumpは次のように使用する。
# tcpdumptcpdumpはEthernet上のすべてのパケットを見ることができるので、rarpのブロー ドキャストなども確認できる。ただし、CPUやbpfデバイスの処理能力によっては、 パケットを落すこともあるので、それを前提として使用すべきである。
今回は、ディスクレスでの使用であるから、ファイルの展開はサーバとなる FreeBSDマシンで行ってしまう。
base, etcをまず展開し、続いてcomp, man, misc, text, games を展開する。
実用的な使用には、base,etc,compを展開するべきだろう。
なお、tgzファイルの展開はrootで行わなければ、ownerなどが正しく設定され
ない。
必ず、rootで行おう。
# cd /usr/home/export/sun3/rootとします。同様に、etc,compなどを展開する。
# tar xvzpf NetBSDの収めてあるディレクトリ/sun3/binary/sets/base.tgz
カーネルファイルを展開する。
# gunzip < NetBSDの収めてあるディレクトリ/sun3/binary/kernel/netbsd-gen.gz >netbsd
その後、デバイスも作ってしまう。
# cd /usr/home/export/sun3/root/dev
# sh MAKEDEV all
次に、sun3の/etc/fstabを設定する。
# cd /usr/home/export/sun3/root/etc
# vi fstab
今回は、スワップはスワップ・ファイルを使用することとした。
そこで、 swap指定は通常のファイルを記述する。当然ながら、このスワップ・
ファイルは NFSファイルシステム上にある。
/etc/fstabに次の様に記述する。
192.47.224.156:/usr/home/export/sun3/root / nfs rw,-r=1024,-w=1024
/var/swap none swap sw 0 0
以上で準備完了である。
sun3の電源を投入する。
通常は、自動的にHDDからのブートを行おうとするので、「L1」キー
と「A」キーを同時に押下し、モニタへ戻す。
シリアル・コンソールでは、Breakの送出(tipコマンドを使用しているなら「
~#」)で、同様の効果がある。
sun3のモニタ、SunOSでは、いかなる場合も、L1+Aの押下(またはシリ
アル・コンソールからのBreak)でモニタへ戻るようになっている。
モニタに戻ったら、既述のように、
> b ie()で、ネットワーク・ブートがはじまる。
今までの設定が正しければ。問題無くブートが完了し、シングルユーザモード で NetBSD/sun3が起動するだろう。
シングルユーザモードで起動したら、sun3が使用可能である。
/etc/rc.confを編集してみよう。
# vi /etc/rc.conf以下はNetBSD/sun3の/etc/rc.confである。
(前略)まずは、この3項目の設定するのみでよいだろう。
# If this is not set to YES, the system will drop into single-user mode.
rc_configured=YES
# Basic network configuration
hostname="sun3" # if blank, use /etc/myname
(中略)
# Set this to YES if you have purposefully setup no swap partitions and
# don't want to be warned about it
no_swap=""
(後略)
BSDの場合、シングルユーザ・モードのshellをexitすると、自動的にマルチユー
ザモードへ移行する。
メモリが少ない場合は、非常に時間を要するが、問題は出ないだろう。
なお、ネットワーク設定のコマンド等は、通常のBSD系OS とまったく同じである。
NetBSD 1.3.2/sun3は、現段階で充分、実用的に使える。
このように十分に使えるUNIXが動作することで、骨董品的なSun3を実際に 稼働させ、サーバとして使用することも可能だろう。
好事家の諸氏ならSun3の魅力がわかるだろう。
なお、この文書をもとにした文章が技術評論社ソフトウェアデザイン 1999/Febに掲載されています。
本稿を書くにあたって、参考にしたWWWページのURL を以下に挙げる。これ らに注目しておけば、 NetBSD/Sun3のバージョンアップ情報などが得られるであ ろう。
- http://www.netbsd.org/
- NetBSD.orgの公式ホームページ
- http://www.netbsd.org/Ports/sun3/
- NetBSD/sun3の公式WWWページ