Alphaマシンでシリアルコンソール

1.シリアルコンソールって何?

普通のPCやWSでは、ブート時のメッセージやエラーメッセージはディスプレイに表示されます。これをシリアルポートに出力し、別なマシンのターミナルソフトに表示させるというのがシリアルコンソールです。
うちにはネットワークと電源しかつながってないマシンがありますが、このようなマシンで、ネットワーク経由で設定をしている時に、ネットワークの設定を間違えたとか、カーネル作成に失敗してちゃんと起動しなくなると大変です。慌ててディスプレイをつないでも、キーボードがささってないから結局電源を落すしかない、ということを経験したことがあるんじゃないでしょうか?こんな時、シリアルコンソールがあれば、クロスのシリアルケーブルさえあれば、別なマシンで
cu -l /dev/cuaa0
とかやって、ログインして何とかすることができます。

2.Alphaマシンでシリアルコンソール

いわゆるPC-UNIXでのシリアルコンソールというのは、gettyというプロセスを使って実現しています。ということは、シリアルコンソールが使えるのは、OSが起動し、gettyがポートを監視している時、ということになります(kernelレベルでシリアルコンソールを実現していれば、boot messageまではシリアルに出力できます)。
しかし、AlphaマシンではOSが起動する前のSRMコンソールの段階で、既にシリアルコンソールを使うことができます。これが何を意味するかというと、PCでは絶対にありえない、シリアルコンソール越しのOSインストールができます。また、kernel作成が失敗して、OSが起動しないような時でも、他のマシンからどこでエラーがでているのか、といったことを見ることができます。わざわざディスプレイをつながなくても、シリアルコンソール越しにOSをインストールできるというのは一度使うとその便利さが分かります。

serial_console

3.シリアルコンソールを使うには

ここまで聞いて、
vi /etc/ttys
とタイプしてしまった人はPC-UNIXにはまってます(私もはじめはそうやった)。Alphaマシンでシリアルコンソールを使うのに、特別な設定は何もいりません。やるべきことは一つだけ、一旦電源を落し、キーボードとマウスをつながずに起動するだけです。また、SRMコンソールから
>>> set console serial
>>> init
とやってもよいでしょう。
AlphaのSRMコンソールは、起動するとキーボードが接続されているかチェックし、もし接続されていない場合はシリアルコンソールで起動するようになっています。OSよりも下のレベルでシリアルコンソールの機能を実現しているため、CPUのクロック数のチェック等、全てシリアルケーブルでつながった他のマシンから確認できます。

NetBSD/alpha bootstrap

Alphaマシンとつなぐ時に使うシリアルケーブルなどの仕様は以下の通りです。 これでAlphaマシンと別なマシン(うちはFreeBSD/i386)をつなげば、シリアルコンソールが使えるようになります。わざわざディスプレイをつなぎ換えて使っている方は、試してみる価値があるんじゃないでしょうか?

BSDのページへ戻る
$Id: serial.html,v 1.1.1.1 2002/01/13 08:40:33 mira Exp $