AlphaStation 600 5/333 に FreeBSD を入れる

$Id: freebsd-on-as600.html,v 1.5 2003/07/16 16:00:09 aamine Exp $

直前に XL366 を購入するも NetBSD が動かないことがわかり発狂、 秋葉原で衝動買いしたマシン。

FreeBSD/Alpha のインストール

Alpha にはパソコンで言うところの BIOS みたいな「モニタプログラム」 というものが入っており、それには二種類ある。 ARC (Advanced RISC Computing) と SRM (System Reference Manual) だ。 ARC はメニュードリブンで基本的に NT 用。 SRM はコマンドラインコンソールで、各種 UNIX 用。 FreeBSD は SRM からしかブートできないので、 まずはなにを置いてもこの SRM に切り替えなければいけない。 ARC になってたらメニューから「コンソールなんたら」というのを選んで SRM にしよう。 ただし XL シリーズのように最初から ARC だけのマシンもあるので注意。

まずはハマった記録をいくつか。 デフォルトのグラフィックカードだとなぜか ARC の画面が映らない。 どうも 64bit PCI であることがなにか関係しているらしい。普通の パソコン用のグラフックカードを挿すとうつる。もちろん AGP バス なんかついてないので PCI でないとだめ。

さらに、AlphaStation 600 は匡体のフタを開けたままだと起動しなかったりする。 きっちりと閉めよう。最初は壊したかと思ったよ……。

またどうしてもモニタが映らない場合、シリアルケーブルを使って通信する こともできる。クロスケーブルで他のマシンとつなぎ、Alpha のキーボードを 抜いて起動すると勝手にシリアルに端末があるものとみなしてくれる。 9600baud 8bit パリティなしにセットすること。別に緊急時でなくとも モニタをつながなくてもいいので便利。

んで、ようやく SRM が出せたので、FreeBSD のインストールに移る。 インストールしたバージョンは RELEASE の 4.4。もう 4.5 が出て いるのだが事情により 4.4 が必要なのだ。 まずはブートイメージをダウンロードしてきてそれをフロッピーに 焼き、FDD からブートする。FDD からブートするための SRM コマンドは 以下のとおり boot dva0 だ。しかし……

>>>boot dva0
(boot dva0.0.0.0.1 -flags A)
failed to open dva0.0.0.0.1

というエラーになった。google で "failed to open" AlphaStation を 検索したら一件だけヒット (つーわけでこのページが二件目になると思う)。 Alpha 関係の ML のログで、どうもその人と全く同じ状況のようだ。その メールへの返信には「とりあえず FDD のメディアとドライブをチェックしたら?」 と書いてあったので (意訳)、ドライブを換えてみた。FDD は普通の パソコン用のでよい。するとメッセージが変わった。

>>>boot dva0
(boot dva0.0.0.0.1 -flags A)
block 0 of dva0.0.0.0.1 is a valid boot block
reading 15 blocks from dva0.0.0.0.1
failed to read dva0.0.0.0.1
bootstrap failure

なんと、google で発見したメールの人もドライブを換えたあとで 全く同じエラーに遭遇している。偶然もあるもんだ。しかしその メールには続きがない。まあ、read エラーなら今度はメディアのほう かな、と思って別のフロッピーでイメージを作りなおしてみた。

>>>boot dva0
(boot dva0.0.0.0.1 -flags A)
block 0 of dva0.0.0.0.1 is a valid boot block
reading 15 blocks from dva0.0.0.0.1
bootstrap code read in
base = 142000, image_start = 0, image_bytes = 1e00
initializing HWRPB at 2000
initializing page table at 134000
initializing machine state
setting affinity to the primary CPU
jumping to bootstrap code
loading /boot/loader
Console: SRM firmware cosole
VMS PAL rev: 0x1000000010114
OSF PAL rev: 0x1000000020116
Switch to OSF PAL code succeeded.

FreeBSD/Alpha SRM disk boot, Revision 1.0
(jkh@jkh234.osd.bsdi.com, Wed Sep 19 18:48:30 GMT 2001)
Memory: 524288 k
/kernel data=0x31afd8+0x261b8 -

Please insert MFS root floppy and press enter:

完璧。ここまでくればあとはパソコンとなんら変わりはない。パッケージ をてきとーに選んでぶちこむだけだ。パッケージソースは CD とか FTP とか NFS とか、いろいろな選択肢がある、ように書いてあるのだが、ちょっ と検索してみた感じ、持っているマシンで全てうまく動くとは限らないよ うだ。特にネットワーク経由でなにかやる場合はイーサカードが DEC 純 正のやつじゃないと SRM が検出してくれず無間地獄に落ちることが多い らしい。まあ、AlphaStation は隅から隅までDEC 純正モノでかためてあ るのでこのへんは心配ないだろう。

インストールのスピードを考えると CD が欲しかったのだが、ぷらっとホー ムで Alpha 用バイナリの入った FreeBSD を発見できなかったのでやむを えず FTP で直接取ることにする。基本システムだけならたいしてデカく はあるまい。ちょうど「B. Minimal」という選択肢があったので、これを 使ってみることにした。20MB くらいかな? ADSL ならなんてことない。

絶対どこかでひっかかるだろうと思ったのだが、インストーラにまかせる だけで何事もなく進む。Alpha はインストーラが起動するまでが ちょっとやっかいだが、そのあとはたいしたことないということなのかな。

パッケージのインストールが終わった。 「あとからインストーラを起動したいときは /stand/sysinstall を実行してね」 か。なるほどなるほど。/stand は standard の stand ですね? このあとはもう UNIX 知ってればどーにでもなりますな。root で ログインしてパスワードを入れ、ユーザアカウントを作って……という お決まりの作業だ。

自動ブートの設定

ブートするたびに SRM から boot コマンドを打つのはバカらしいので、 電源投入後に OS が自動ブートするように設定する。 これにはSRM の環境変数を設定しておけばよい。

>>>set auto_action boot
>>>set bootdef_dev dka0

auto_action が「電源投入後の動作」の意味。 halt をセットすれば SRM プロンプトが出て止まる。 bootdef_dev は「boot (するときの) default device」という意味。 dva0 がフロッピーで dka0 が ID 0 の SCSI デバイス (普通は HDD)。 なお、環境変数の値は「show」とだけ打てば一覧できる。 出力が多すぎるときは Unix のように | more すればいい (一応言っとくと less はない)。

FreeBSD/Alpha のインストール、第二幕

2002 年の夏にハードディスクがクラッシュしたので OS も入れなおすことにした。 簡単かと思ったらえらい苦労してしまった。

まず最初は前に入ってた FreeBSD 4.4/Alpha を入れようとするも、 なぜかインストールの FTP が動かない。 これは単にネームサーバの IP アドレスを間違ったためと判明。

直した。今度はなぜかインストーラがダウンロードの途中で止まる。 これも単に 4.4RELEASE のバイナリが FTP サーバからなくなってたからだった。 まあ、しかたない。

ちょっと眺めたところ、インストーラの「Expert」の Options に リリースバージョンを指定できるところがあったので、 ここに 4.7-RELEASE を指定してみる。 するとチャンクを 6 個読んだところで固まった。原因不明。追求不能。 やっぱり 4.4 のフロッピーで 4.7 をダウンロードしたりしたのがいけないのだろうか。

今度はいきなり 5.0 にチャレンジ。 フロッピーからブートしようとするが、カーネルに制御が移った時点で落ちた。 まあ 5.0 はまだ unstable なのでしかたがない (特に Alpha は)。

4.7 のフロッピーで再度チャレンジ。同じ症状でカーネルがブートせず玉砕。 これはヤバい。本気でヤバい。

しかたがないのでいきなり目先を変えて、今度は NetBSD を使ってみる。 CD-ROM にブートイメージを焼いてチャレンジ。またもカーネルブートせず玉砕。

これはアレですか? わたしには Alpha は無理だというお告げでしょうか。 最後のあがきで 4.4 フロッピー + 4.7 イメージをもう一度だけやってみることにする。

通った。あれれれ? これはどういうこと? ようするにコンピュータで大事なのは根性ってことですか? 謎だ。