SrmConsoleTips

2005-02-27 09:43:26 +0900 (1375d); rev 3

Alpha の SRM コンソールの重要部分をまとめる。 「>>>」が SRM のプロンプトである。 SRM はかなり UNIX シェルちっくなので、 UNIX に慣れているとかなり勘が効いてくれる。

何はともあれ

help と打つとヘルプが見られる。 help COMMAND ならそのコマンドのヘルプが見られる。

>>>help
....
>>>help set
....

出力が多すぎるときは UNIX のように | more すればいい。 このへんがシェルっぽいと言ったところだ。cat や head もある。 さすがに sed はなかったかな。 vi はないが ed はある。

SRM の変数

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 全二重に固定

設定できる値は主に以下の通り。

意味
tw10baseT
Fast100baseTX 半二重
FastFD100baseTX 全二重
auto自動認識

当然だが、それぞれの値にイーサネットアダプタが対応していなければ効果はない。

EthernetAdapterDs2114x も参照。

その他

SRM 変数 ewa0_* に適切な値を設定しとくと bootp プロトコル (tftp) でネットワークブートできるらしい。 やったことないけどな。


system revision 1.162