Last Modified: Sunday, 21-Nov-1999 18:02:06 JST
Install Note for NetBSD/newsmips
この文書は、桝田(h-masuda@ootani.nagata.kobe.jp)が、
NetBSD/newsmips を
導入する最に行った作業と気が付いた点などをまとめたものです。
本文書に従った行ったすべての作業についての責任は、桝田にはありません。
あくまで無保証です。
しかし、コメントなどありましたら、
桝田まで連絡して
いただければありがたいです。
もくじ
準備
現状(based on NetBSD-1.3)の NetBSD/newsmips は、fd device driver が
ないため、自力で起動することはできません。
また、boot code や /boot のコードも提供されていません。
従って、最初の導入を行うためには、NEWS-OS 4.x が起動するだけの HDD と、
それとは別に NetBSD/newsmips を入れるための HDD が必要です。
さらに、NEWS-OS 4.x の、
/usr/mdec.mips/boot, /usr/mdec.mips/boot0
も必要です。
ここでは、最終的に HDD(ID=0)から NetBSD/newsmips が動いて欲しいでしょう
から、HDD(ID=1)に NEWS-OS 4.x を入れておくこととして書いていきます。
準備するもの
- Sony NWS-3470D
- main memory(1MB/4MB 30pin SIMM, 最大16枚まで)
- NEWS-OS 4.x が起動する SCSI HDD(ID=1)
- NetBSD/newsmips を導入するための SCSI HDD(ID=0)
NEWS-OS 4.x の入った HDD の ID を変更
たまたま NEWS-OS 4.x が入った HDD が手元にあったけども、ID=0 となって
いた場合は、以下の話での HDD の ID まわりの対応が変わってしまいます。
変更するのは非常に簡単なので、以下にかきます。
- とりあえず、NEWS-OS 4.x を起動する(HDDのIDは0)。
- /etc/fstab内の、sd00をsd01に書き換える。
- sd01 系列の device file の作成を確認する。
( cd /dev; ./MAKEDEV sd01 )
これで再起動すれば、ID=1 の SCSI disk からブートできます。
NEWS-OS 4.x の起動
NEWS ROM monitor
詳しくは NEWS-OS アドミニストレータガイド を見てもらうのが確実ですが、
一応、必要最低限だけは書いておきます。
- bo
- ブートします。
- off
- 電源を切ります。
必要なツールを手元に導入 (on NEWS-OS 4.x)
NEWS-OS 4.x に付属のツールだけではすべての作業はできません。
とりあえず、以下に挙げるツールを、NEWS-OS 4.x 上で作成しておきます。
どれも GNU のツールですので、基本的に、
./configure mips-sony-bsd && make && make install
で作成可能です。
- gzip
- distribution の圧縮を伸長するのに必要です。
gzip-1.2.4.tar.gz を展開するだけでできます。
- bash
- MAKEDEV が想定している sh(1) の仕様が違う
ので必要となります。
bash-2.01.1.tar.gz を展開するだけでできます。
- GNUtar
- distribution の tar ファイルを展開するのに必要です。
NEWS-OS 4.x 付属の /usr/bin/tar では正しく
展開できません。
tar-1.12.tar.gz を展開するだけでは、残念ながら、
mktime(3)がなかったり、
make(1)の仕様の違いにより、
コンパイルに失敗します。
従って、
libmissing.a
や GNUmake が必要です。
env LIBS="-L/usr/local/lib -lmissing" ./configure
&& gmake MAKE=gmake && gmake MAKE=gmake install
- GNUmake
- GNUtar をコンパイルする為に必要です。
make-3.76.1.tar.gz を展開し、configure 時に
env LIBS="-lmld" ./configure && make && make install
として libmld.a をリンクするようにすればコンパイルできます。
SCSI HDD の geometry 情報を得るためのツールがあると嬉しいかも知れません。
HDD の 論理分割と newfs
NEWS-OS 4.x も、tahoe label が書けますので、disklabel(8)を
とりあえず NEWS-OS 4.x から行います。
論理分割は、
/(/dev/rsd00a),swap(/dev/rsd00b),/var(/dev/rsd00d),/usr(/dev/rsd00f)
と分割してみます。
メモリがあるならば、/tmp は md で行ってもいいですが、どうやら、
compile 時などに /usr/libexec/cc1 が Interrupted System Call(errno=4)
などで落ちるので、/tmp(/dev/rsd00e)を別途用意してもいいでしょう。
ここでは、/ に同居させます。
(md でやるつもりで動かし始めたけど、動き出してからうまくいかないことが
判明したので、/tmp が別途用意できなかっただけ、ともいいます。既に
直っているかも知れませんけど。)
- /
-
20MB ぐらい使われますので、kernel の入れ換え用などを想定して、
32MB。/tmp を同居させるなら、48MB ぐらいでしょうか。
- /var
-
2MB ほど使われます。mail server などの server 用途を考えるなら、
100MB 程度あると安心です。ユーザの HOME directory を、/var/home
などに入れるなら、もうちょいあるといいかもしれません。
- /usr
-
256MB くらいあれば、full install 可能でしょう。
X Window System の server は用意されてませんが、client だけなら
32MB くらいで導入可能です。
source を展開して current をおっかけたい、とか思うと、source
領域に 320MB くらい、それ以外に 300MB くらいの compile 用領域が
必要となります。
pkg までいくと予想もつきません (^^;)
- swap
-
まあ、main memory より多くないと、crash dump が出来ませんので、
それ以上にしましょう。
次に論理分割をした partition に対してファイルシステムを作成します。
newfs(8) を、NEWS-OS 4.x から行った partition も使えますが、
mount_union(8)などが出来ないので、とりあえず、/
partition のみ newfs(8) をかけておきます。
newfs /dev/rsd00a
他の partition に対しては、NetBSD/newsmips が起動してから newfs(8)
を実行することにします。
趣味の論理分割
いまどきの SCSI disk は、単純に cylinder 毎に同じ sector 数ではない
ものがほとんどです。ですが、UNIX の論理 partition は未だに cylinder
単位の切り方になっています。従って、1 cylinder を、head数 x sector数
としたくても、disk 自体の geometry とはどうせ一致させることはできま
せん。
さて、いまどきの SCSI disk も容量が十分に大きいので、少々の無駄など
に気を使っても仕方ないかも知れませんが、すみまで使えてないと気持ち
悪いので、以下の方針で disklabel の値を決めていきます。
- SCSI disk の 総sector数を何らかの方法で得る。
- /usr/games/factorなどを利用し、総sector数を因数分解する。
- head数を10前後、sector数/track を 200前後となる組合せを因数分解
結果からひねりだす。大体 1 cylinder が 1MB 程度となる。
- 各partitionは、16の倍数 cylinder になるようにする。但し、swap
partition は除く。つまり、swap partition 以外を 16の倍数として、
残った部分を swap とする。
- 各partitionを newfs する。
NetBSD/newsmips の導入
とりあえず、NetBSD/newsmips の
snapshot
を導入する予定のNEWS-OS 4.xの動作している計算機からアクセス可能なところに
コピーしておきます。
HDD の中身の準備
$ mount /dev/sd00a /mnt
$ mkdir /mnt/usr /mnt/var
$ mount /dev/sd00d /mnt/var
$ mount /dev/sd00e /mnt/usr
$ cd /mnt
$ for d in /dist/snapshot/*.tgz; do
gnutar zxfp $d
done
$ ln -s netbsd vmunix
$ mv /bin/sh /bin/sh- && cp /usr/local/bin/bash /bin/sh
$ cd /mnt/dev
$ sh MAKEDEV all
$ mv /bin/sh- /bin/sh
/bin/sh を bash に入れ換える手続きは若干強引ですが、
/mnt/dev/MAKEDEV の中に記述されているshを全部
bashに替えるか、PATHの記述に、/usr/local/bin
などを入れて、ここに、bash を sh として置く、など
の対応でもいけます。
- ln -s netbsd vmunix
NEWS-OS 4.x の /boot は、default で /vmunix を見ることになっている
ので、自動的に boot するように設定したい場合は、この symbolic link
を作っておくと便利です。
設定ファイルの編集
networkに接続されてないなどの状況を確認の後、再起動すると NetBSD/newsmips
が、single user mode で動き出すはずです。
- /etc/fstab
-
- /etc/rc.conf
- 適当に変更する。
- /etc/ifconfig.le0
- le0 の network 設定値をかく。
- /etc/group
- root に su できるユーザを wheel group に登録しておく。
- /etc/hosts.allow
- アクセス制限をしたければ適当にかく。
- /etc/hosts.deny
- アクセス制限をしたければ適当にかく。
- /etc/resolv.conf
- 手近に DNS サーバがあれば適当にかく。
- passwd root
- root のパスワードをつけておく。
- vipw
- ユーザの entry や、NIS map を見るための設定を
しておく。
最後に
関連しそうな情報源を書いておきます。
- Web Pages
- NetBSD
- 本家。www.jp.netbsd.org は日本の mirror site
- developpers
- 開発者のページ
- Mailing Lists
- ports-newsmips@netbsd.org
- NetBSD/newsmips の開発者の ML (本家)
- ports-mips@netbsd.org
- NetBSD/mips (mips based) の開発者の ML (本家)
- ports-mips-ja@jp.netbsd.org
- NetBSD/mips (mips based) の開発者の ML (主に日本語)
- netbsd@re.soum.co.jp
- NetBSD の ML (主に日本語)
h-masuda@ootani.nagata.kobe.jp
h-masuda@jm3spa.felix.or.jp
h-masuda@mangajin.org
h-masuda@mangajin.net
h-masuda@toklab.ics.es.osaka-u.ac.jp
h-masuda@rd.ecip.osaka-u.ac.jp