2005-02-27 09:43:26 +0900 (1412d); rev 3
Alpha の SRM コンソールの重要部分をまとめる。 「>>>」が SRM のプロンプトである。 SRM はかなり UNIX シェルちっくなので、 UNIX に慣れているとかなり勘が効いてくれる。
help と打つとヘルプが見られる。 help COMMAND ならそのコマンドのヘルプが見られる。
>>>help .... >>>help set ....
出力が多すぎるときは UNIX のように | more すればいい。 このへんがシェルっぽいと言ったところだ。cat や head もある。 さすがに sed はなかったかな。 vi はないが ed はある。
SRM コンソールには UNIX の環境変数みたいなものがある。 とりあえず SRM 変数とでも呼んでおこう。 SRM 変数はこんなふうにすれば表示できる。
>>>echo $auto_action BOOT >>>
変数の値を変えるときは csh ぽく set を使う。
>>>set auto_action halt >>>echo $auto_action HALT >>>
また「show」とだけ打てば全ての変数を一覧できる。
中古の Alpha マシンを買ったときに一番役に立つコマンド類。 show dev でデバイスの一覧が見られる。 show config で CPU やメモリの状態も見られる。
>>>show dev dka400.4.0.5.0 DKA400 TOSHIBA CD-ROM XM-5701TA 0557 dra0.0.0.12.0 DRA0 2 Member RAID 1 dva0.0.0.1000.0 DVA0 mka500.5.0.5.0 MKA500 TLZ10 02ab ewa0.0.0.11.0 EWA0 pka0.7.0.5.0 PKA0 SCSI Bus ID 7 5.57
ブートストラップするには boot コマンドを使う。
>>>boot dka0 ……最初の SCSI HDD からブート >>>boot dva0 ……FDD からブート
またこのときカーネルには SRM 変数 $boot_osflags の値が渡されるが、 -flags オプションを付けるとそれを上書きできる。 たぶんデフォルトだと $boot_osflags は
>>>echo $boot_osflags A
と、なっているだろう。 Tru64Unix の仕様だと「A」はブート後マルチユーザモードに入ることを示している。 それゆえ他の UNIX 系 OS もこの規則に従っていることが多い。 しかし Linux の aboot なんかは $boot_osflags を使ってブートするカーネルを指定させたりしている。
ブートするたびに SRM から boot コマンドを打つのはバカらしいので、 電源投入後に OS が自動ブートするように設定しよう。 これには SRM 変数を設定しておけばよい。
>>>set auto_action boot ……電源投入後、すぐにブートする >>>set bootdef_dev dka0 ……dka0 からブート
auto_action が「電源投入後の動作」の意味。 boot なら $bootdef_dev からブートするし、 halt なら SRM プロンプトが出て止まる。 bootdef_dev は「boot (するときの) default device」の意味。 このとき、boot コマンドでブートしたときと同じく $boot_osflags がカーネルに渡る。
どうも DS21x40 はハブとかドライバによって 最初のオートネゴシエーションが失敗することが多いようだ。 SRM 変数 ewa0_mode にモードを決め打ちしてしまうと うまくいくかもしれない。一番使いたいのはこれだろう。
>>>set ewa0_mode FastFD ……100baseTX 全二重に固定
設定できる値は主に以下の通り。
| 値 | 意味 |
|---|---|
| tw | 10baseT |
| Fast | 100baseTX 半二重 |
| FastFD | 100baseTX 全二重 |
| auto | 自動認識 |
当然だが、それぞれの値にイーサネットアダプタが対応していなければ効果はない。
SRM 変数 ewa0_* に適切な値を設定しとくと bootp プロトコル (tftp) でネットワークブートできるらしい。 やったことないけどな。
Related Pages: AlphaArchitecture SrmConsole FreebsdOnAlphaStation600
system revision 1.162