NetBSD 1.2をAlphaにインストールする


竹岡 尚三 (AXE, Inc.)

Copyright (c) 1996-1999 AXE, Inc. All rights reserved.

目次

  1. はじめに
  2. NetBSDの動作するハードウェア
  3. NetBSD/Alphaの起ち上げ
  4. NetBSD/Alphaの各種設定
  5. HDDのディスクラベル再設定
  6. Zipドライブをブート可能HDDにする
  7. X Window
  8. おわりに
  9. 参考URL
  10. フリーUNIXの動作するAlphaマシンについて
  11. Alphaマシンのベンチマーク
  12. UNIXマガジン掲載記事を元にした文章を読む

インデックス・ページに戻る

*本稿はUNIXマガジン1997/Jan, 1997/Marに 掲載された竹岡の文章をもとにしています。
はじめに
目次へ前の章へ次の章へ

DEC(現Compaq)のAlphaはIBMのPowerPCと地上最高のクロック周波数を競いなが らも、ほぼ常に地上最高クロック周波数を保持しているマイクロプロセッサである。

Alphaの世界では、int(もっとも自然な整数)のビット幅は64bitである。
NetBSD/AlphaもDEC UNIXもLinux/Alphaも64bitの世界である。OSのシステムコー ルもライブラリも各コマンドも64bitが基本である。

Alphaで動作するUNIXとしては

がある。

本文書はNetBSD1.2/Alphaをインストールする手順を述べている。


NetBSDの動作するハードウェア
目次へ前の章へ次の章へ

NetBSDが動作するハードウェアは

である。

筆者が入手して動作確認したハードウェアについては、別文書
フリーUNIXの動作するAlphaマシンについて
を用意した。詳しくはそちらを参照して頂きたい。

Alphaマシンには

という2種類のモニタ・プログラムがある。
モニタ・プログラムについては モニタ・プログラムについてを参照して頂きたい。

一般の販売店で売られているシステムはARCになっている可能性がある。
モニタ・プログラムをSRMにする方法は、マシンによって異なる。
各機種についての記述は フリーUNIXの動作するAlphaマ シンについてを参照して頂きたい。

NetBSDのX windowサーバは

TGA
と呼ばれるDEC純正のビデオカードしかサポートしていない。
NetBSD/AlphaのチームはまだまだTGA以外のカードをサポートする気が無いよう である。




以下に、NetBSD/Alphaに共通なハードウェアについて概説する。


NetBSD/Alphaの起ち上げ
目次へ前の章へ次の章へ

NetBSD1.2はftp.netbsd.orgなどから入手できる。
日本国内ならば、国内のミラーサイトから入手すべきだろう。

最初のインストールには、

	NetBSD-1.2/alpha/binaries/rz25-image.gz
 
だけあれば大丈夫である。

このrz25-image.gzは400MBytesのHDD全体のイメージをddで読みだしてgzipし たものである。
インストールするには、逆にgzipを解きながら、ddしてHDDに書き込むだけあ る。

この作業を行うには、gunzipが動作し、HDDにddできる機械が必要である。
筆者は、DEC UNIXの動作しているAXPpci33で作業を行った。が、FreeBSDマシ ンやSUNなどでも同様である。

適当な機械にHDDを接続し、

	% gunzip < rz25-image.gz | dd of=/dev/rsd?c  obs=409600
 
などとするのみである。('?'は書き込みたいHDDによる)
ブロック・サイズは適当で良い。しかし、あまりに小さいと、とんでもなく時 間がかかる。
また、最近のBSDのddはBlockSizeに満たない最終ブロックのデータを書き込ま ないので、conv=syncオプションの指定が必要である。

HDDにイメージが書き込めたら、Alphaマシンに接続し、SRMよりブートする。


	>>>boot dka?00
 
とする。('?'はSCSI-Id)

すると、NetBSD/Alphaのブートが始まる。
基本的なブートが終ったあたりで、日付のエラーを報告しつつ、強制的にシン グル・ユーザ・モードになり、 shellを尋ねてくる。それには、[return]を押 下するだけで、/bin/shが起動する。
ここまでくれば、一安心である。

さて、ここで、fstabを適切に変更しなければならない。
デフォールトの/etc/fstabは

/dev/sd0a	/	ffs	rw	1 1
/dev/sd0b	none	swap	sw	0 0
/dev/sd0d	/usr	ffs	rw	1 2
 
となっている。
NetBSDを入れたHDDがもっともSCSI-IDの小さいものなら、 NetBSDにsd0と認識 されており問題はない。

NetBSDの入っているHDDがsd0でない場合は、以下の手順でfstabをエディット する。
(ここでは、/dev/sd2にNetBSDが入っているものとする)

	# mount -u /dev/sd2a /
	# cd /etc
	# ed fstab
	1,$s/sd0/sd2/
	wq
	#
 
とする。

この後、shellをexitすると、マルチ・ユーザ・モードへ移行する。
これで、NetBSD/Alphaの起ち上げは完了である。

なお、コンソールのターミナル・タイプは'sun'とするべきらしい。
しかし、コンソールではエディタなどが今一つうまく動作しない。
スクリーン・エディタを使う場合には、別なホストからrloginなどして、別な 端末を使った方が楽なようだ。


NetBSD/Alphaの各種設定
目次へ前の章へ次の章へ

NetBSD/AlphaはBSDの伝統に従っているので、BSDでは常識的な設定ばかりである。
以下にNetBSD/Alphaで必要な設定項目を列挙する。

以上でNetBSD/Alphaが使えるようになるだろう。

最後に、NetBSDをシャットダウンし、SRMで

	>>>set boot_osflags A
 
としておくと、以降、自動的にマルチ・ユーザモードに入るようになる。
また、
	>>>set bootdef_dev dka?00
 
(?はSCSI-ID)としておくと、bootコマンドで、デバイスを指定する必要がなく なる。


HDDのディスクラベル再設定
目次へ前の章へ次の章へ

今どき400MBytesのHDDなぞ無いので、たぶん、インストール直後はHDDが無駄 になっていだろう。
そこで、早いうちにディスクラベルを書き換えて、400MB以上の部分も使える ようにしよう。

今入っているNetBSDを消すと、再度入れ直す手間が生じるので、今回は新たに パーティションを追加することにする。

NetBSD/Alpahは

としているので、新しいパーティションは'e'とする。

Sector/track, track/cylinder, cylinder数などは、あらかじめわかっている ものとする。

筆者は、ここではQuantumのLightning 730Sという720MBytesHDDを使用してい る。
またHDDは/dev/sd2であるとする。

disklabelコマンドを-eオプション付で起動する。

	# disklabel -e /dev/sd2c
 
とすると、ディスク・ラベル情報をバッファに持ったエディタが起動する。

まず、下記のエントリを、HDDに合わせて適切に編集する。

sectors/track: 97
tracks/cylinder: 4
sectors/cylinder: 388
cylinders: 3658
total sectors: 1431760
 
次に、パーティション情報を
5 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  a:   111600        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 287*)
  b:   111600   111600      swap                        # (Cyl.  287*- 575*)
  c:  1431760        0    unused        0     0         # (Cyl.    0 - 3690*)
  d:   600408   223200    4.2BSD     1024  8192    16
  e:   608152   823608    4.2BSD     1024  8192    16
 
のように編集する。
これで、エディタを終了すると、ディスク・ラベルが更新される。

ディスク・ラベルを書き終えたら、'e'パーティションをnewfsする。

	# newfs /dev/sd2e
 
とし、ファイルシステムとして使用可能となる。
これで、約300MBytesの'e'パーティションができ、HDDが無駄なく使用できる。


Zipドライブをブート可能HDDにする
目次へ前の章へ次の章へ

NetBSDでは、ZipドライブはHDDと同様に見える。
ZipドライブからNetBSDがブートできると便利である。
とくにOSを頻繁に切り替えて試している時には、Zipドライブが役立つ。
また、自分のミスで HDDを消してしまったときなど、NetBSD/Alpha は復旧が面 倒である。しかし、Zipで最低限のシステムをもっておくと、再インストールが 容易である。
(筆者は実際にそういう目に会っている ;-))

ここに記述するのは、HDDをブータブルにするのと同じ方法である。
ターゲットのZip(またはHDD)は、ディスク・ラベルも書き、aパーティション はnewfs も終ったものを使用する。
ここの例では、/dev/sd3aとする。

	# mount /dev/sd3a /mnt
	# cd /usr/mdec
	# cp boot /mnt
	# sync
	# sync
	# ./installboot -v /mnt/boot ./bootxx /dev/sd3c
 
これで、ブータブルなZipが得られる。

このあと、/netbsd, /bin, /sbin, /etc, /usr中の必要なファイルをコピーし、 /tmp,/varなどのディレクトリを作り、/dev/で必要なデバイスをMAKEDEVすれば、 完全に単独で起動するディスクになる。
なお、このZipメディアの/etc/fstabを適切に設定しておくと、非常時に慌て なくて済む。


X Window
目次へ前の章へ次の章へ

バイナリで供給されているXクライアントは、他のXサーバに接続して調子良く 動作する。

Xサーバは、前述どおりTGAボード でしか使用できない。
またNetBSD/AlphaのX Windowサーバは3ボタン・マウスしか使用できない。

なお、NetBSD/Alphaのチームは、現在、TGAボードしかサポートする気がない ようだ。彼らは「Linux/AlphaのXFreeサーバはI/Oアクセスをダイレクトに行う ので、NetBSDでは使えない」と言い切っている。
(Linux/AlphaのXサーバはXFree86を元に、数種類のビデオ・カードをサポート している)


おわりに
目次へ前の章へ次の章へ

筆者のAXPpciは昔に購入したものである。旧版のCPUが載っており、実は、 166MHzでしか動作していない。

そのマシンで少し ベンチマーク を行ってみた。

なお、数値計算の高速化に関しては、Linux/Alphaの日本のメイリング・リス ト(linux-alpha-jp)に、ライブラリやgcc, f2cに手を入れて、努力されている人 が多数おられる。数値計算性能をチューニングしたい場合は、 linux-alpha-jp (majordomo@kuamp.kyoto-u.ac.jp)に入るべきかも知れない。

AlphaマシンはIntelよりも、浮動小数点演算が速いので、3Dポリゴンゲームを 実行すると楽しい。

なお、現在、NetBSD/Alpha-currentはECOFFバイナリ対応のために大幅な変更 が加えられているようである。


参考URL
目次へ前の章へ



(たけおか しょうぞう AXE, Inc.)



目次へ前の章へ
インデックス・ページに戻る