VT-Alpha 533(PC 164LX Mother)のPCのセットアップ


Notes(2002/05/03)

誤植があったのでなおした。ビデオ周りの説明が変だったのでなおした(赤い部分のあたり)。SRM BIOSについてちょっと記述。

Notes(2001/07/20)

後日、IntelPCの方が速度が高速になりAlphaは使用しなくなりました。個人的には速さにだけ興味があってアーキテクチャに興味があった訳ではないので、使わなくなったのも流れというものでしょう。ただそこにAlphaPCがあるならそれを捨ててしまうのはもったいないし、cccを使えばそれなりに速くなります。巧く使えば、いろんな働きはしてくれるでしょう。ただし、次の事を把握して使うことをお薦めします。

  1. MS系OSはサポートを辞めたのでLinuxを利用しついでにCCC(下記参照)も利用する。
  2. ディスプレイまわりが面倒(PCより熟れて無い)なので、Xなどの画面表示などは別のPCUNIXかWin2k+XServerにやらせ、xonかrsh(rexec)経由でWindowsを開くとよいでしょう。ディスプレイカードは余っているMillennium、Mach64などのPCIカードが必要です。当然AGPのビデオカードは動きませんが、PCIだからといってすべて動くとは限らないからです。nVidiaのTNT Ultra2では動きませんでした。おそらくnVidia系はだめなのでしょう。下記に記してありますが、AlphaはBIOSが非常に高機能ゆえに、BIOSがビデオカードを知っている必要があります。工夫をすれば動くかもしれませんが、安易に使うためにはOS(Linuxなど)とBIOS両方が知っているビデオカードが必要と言うことになります。わざわざ用意せずに落ちてる古いカードかオークションで格安で買う方が良さそうです。
  3. 計算速度がそこそこにあるので計算用WSが良いでしょう。メインコンピュータからネット経由でログインしていろいろなことをするWSなどでも良いかもしれません。
  4. 特別最近のPCに比べてバスが速いわけではないので、サーバ利用は注意しましょう。注意すれば出来ないわけではありません。
  5. ATAは遅いので、UWSCSIかU2Wなどの速い足回りを用意しましょう。
  6. 64ビットPCIにギガビットEtherが差せそうです。U2Wはわかりませんが。
  7. リトルエンディアン64ビットなので、PCUNIXを使いなれてる人には使いやすいでしょう。
  8. 新米プログラマに使わせ、いい加減に書いたプログラムをコンパイルさせましょう。64ビットアラインで、いかに自分のプログラムがイカかを理解させるためです(笑) その理由ですとその後ビッグエンディアンマシンをつかわせる必要がありますが。

やると比較的ハマるのにゲインが少ないこと

  1. 装備が少ない状態(UWSCSIなどを用意しないなど)でファイルサーバをやらせる。
    PC164系はバスが速いわけではありません。
  2. WindowsNT系のアプリ。いちいち前提知識がいるので面倒です。速くは無いし。
  3. XFreeを頑張ってセットアップする。ディスプレイ系は動くのが少ないしゲインも大してありません。人によっては無いと困るとおもうので、そう言うケースならばMillennium系などを入れても良いかもしれません。ただ、速い訳じゃないので割り切ってネット越しにxonをお薦めします。

以上のようなことを踏まえて使えば別に今でも使えないアイテムではありません。

もはや最近はAlphaウォッチャではないですが、一応、あるときAlphaを見つけてしまった人のためにアドバイスを :)


大まかな手順

  1. 起動フロッピーをつくる。
    起動フロッピーは、マザーボードごとのmilo、generic kernel、ramdiskの3枚。
  2. Alpha BIOSのブートメニューでFDDブート設定を作る。
  3. 起動フロッピーからブートして、OSのセットアップを実行する。
  4. リブート時にカーネルがコピーしなかったときは、FDDのカーネルを利用してOSを起動し、HDDにカーネルをコピーする。
    同時にlinload.exeとmiloもコピーする。
  5. Alpha BIOSのブートメニューでHDDブート設定を作る。

基礎知識

ArcBIOS、AlphaBIOSについて

ARC BIOSもAlphaBIOSも同様に、WindowsNTをブートするための、BIOS。

ARCBIOSは、PC164、EB164時代にあったBIOSで、メニュー形式のCUI。
AlphaBIOSは、PC164LX(LX164ともいう)時代のBIOSで、GUIが付く。本質的にはあまり変らない。

PCのBIOSと違って非常に多機能で、HDDの物理フォーマットから、FAT16の論理フォーマットも出来る。
また、FAT16のファイルもアクセスでき、そのファイルを実行することができる。

miloにはブートメニュー設定があるが、これは、

どの(BIOSでアクセスできる)ボリュームから、
どの実行ファイルを、
どういうオプションをつけて実行するか?

という設定でしかない。非常にクリーンな設計である。

つまり、BIOSはLinuxをブートするとき、linload.exeという実行ファイルをmiloというオプションつきで実行し、
miloにその処理が移ることになる。また、miloのコマンドプロンプトにも、このBIOSに打ち込むことができるのである。

また、そのマシンにNTが入っているときは、FAT16のosloader.exeを実行している。これもまた同じ要領である。

Milo

MiloはMiniLoaderの略で、ソフトBIOSの一部だと思えばよい。PCでつかうLILOとは違い、ただのローダではない。

ちょっとしたMINI OSのようになっていて、lsなども使える。osのbootも出来る。

lsでHDDをアクセスするためには、SCSIやIDEのドライバが必要になる。bootも同様。つまり、miloはソフトBIOSやミニOSのようなもので、
マザーボードや接続される機器事にコンパイルする必要がある。自分でコンパイルすることも可能だが、gatekeeper.digital.comに、
それぞれのマザーボードで標準的なドライバを含んだmiloがあるので、だいたいのケースではそれでほぼ間違いなく動作する。
だいたい、AlphaのBIOS自体、いくつかの接続機器のドライバは含んでいるので(そうでないとFAT16のフォーマットとかは出来ないし)、
それ以外のものがブート時に必要なることは、あまりないだろう。

コマンドプロンプトでは、linuxライクなコマンドが入力でき、

ls /dev/fd0

でFDを一覧することができる。

miloでLinuxをブートする場合、

boot fd0:vmlinux.gz root=/dev/fd0 <以後カーネルオプション>
   ~~~~カーネル   ~~~~~~~~~~~~~~ルートの場所

と指定すればよい。もちろん、違うカーネルで立ち上げたければ、ファイル名を変えれば良いし、
カーネルだけFDDなどの別のドライブから読むこともできる。

このコマンド入力を、BIOSのOSOPTIONSで指定できるが、省略すると手入力できる。
PCに比べてたら、カーネルがブートできなかったときの復旧手段がいくらでもあるのだ。

余談 SRM BIOSについて

PC164で動くAlphaにはそれ以外にSRM BIOSがあります。基本的にはDigital UNIXのためのBIOSです。UNIXらしく、コンソールをシリアルに設定することも出来るので、ビデオカードを見つけられなくてもそれさえ入れれば、なんとかなるかもしれません(ただ、SRMBIOSを入れるまでの間にビデオなしで入れられるかどうかは覚えてないが)。

SRM BIOSを使ってLinuxをブートすることも出来ますが、なぜSRMBIOSを手に入れたかというと、netBSDが動かしたかったからです。

結論からすると、頑張らないとほとんどまっとうに使えなかったので、結局Linuxに戻してしまいました。上記でLinuxを押したのは、cccがLinuxのためにかかれているから・・・ということです。


CCCのインストール

RISCはもともとコンパイラと一緒に作成するものなので、gccやegcsのような標準的Cコンパイラでは最適化が足りなく、
CPU本来の速度がなかなか出てこない。

Linux/Alphaは結構古くからある非x86ベースのLinuxであるが、いざ動かしてみると、言われているほど速くなく、
一方でx86の猛烈な高速化にあまり、使うメリットは見いだせない状態でいた。

その後、よく使うMathライブラリに関しては、有志の手によって最適化され、それ相応に効果は出していたが、
関数はともかく単純な演算はコンパイラが行うことなので、結果的に使う側に努力が必要だった。

先日、CompaqがNTを断念するに伴って、ccc(旧DEC-CC)を無料で公開するに至った。

インストールは、rpmなので一瞬で終る。手順は次のとおりだ。

  1. rpm -i libots-2.2.6-1.alpha.rpm
  2. rpm -i cpml_ev5-0.2-2.alpha.rpm
  3. rpm -i ccc-6.2.0-2.alpha.rpm
  4. rpm -i ladebug-4.0.55-4.alpha.rpm

下記は、とあるベンチだが(もとはここにあり)

Alpha PC164LX 533 MHz RedHat Linux 5.2 egcs 1.1.1 R (-O2) 333.000 sec.
Alpha PC164LX 533 MHz RedHat Linux 5.2 Compaq C 6.2.0-2 (-O2) 263.100 sec.
Alpha PC164LX 533 MHz RedHat Linux 5.2 Compaq C 6.2.0-8 (-fast -lcpml) 171.100 sec.
Sun Ultra 10 UltraSPARC 333MHz Solaris 7 cc -O 912.643 sec.