SerialConsole

2004-02-24 01:12:35 +0900 (1744d); rev 4

モニタが映らないとき、モニタがあまってないとき、 ビデオカードがないときなどは、シリアルコンソールを使うと便利だ。 シリアルコンソールとはその名の通り、シリアル回線 (RS232-C) にファームウェアコンソールを出力してくれる機能である。 これを使うとモニタなしでもファームウェア (パソコンで言う BIOS) の設定ができる。 ワークステーションと呼ばれるマシンならばたいていシリアルコンソールが使えるはずだ。 例えば Alpha、SPARC、RS/6000 などは全てシリアルコンソールが使える。

やりかたは以下の通り。まずマシンの電源を落とし、 クロスのシリアルケーブルを用意して適当なマシンとつなぐ。 このときワークステーション側は最初のコネクタ (COM1, ttyS0 などなど、まあなんとでも呼んでください) を使う。 クロスケーブルは本当にパソコン用の普通のやつでよい。 コネクタは、Alpha なら PC/AT と同じ 8 ピンコネクタ、 SPARC なら D-Sub 15 ピン (NEC 98 や Mac と同じ)。 RS/6000 も D-Sub 15 ピン。 ただしこれは筆者が持ってるマシンで見ただけなので 別のマシンなら別のコネクタもあるかもしれない。

次に、ワークステーションのキーボードを抜く。 たいていはこれだけでうまくいくが、ちょっと設定が必要な場合もある。 例えば AlphaServer 800/1000 では SRM の変数を設定しなければならない。 (>>>set console serial) → SrmConsole

つなぐ側 (ワークステーションじゃないほう) では シリアル通信ソフトを立ち上げて、9600baud 8bit パリティなしにセットする。 UNIX なら例えば kermit とか cu とか minicom とか tip を使うし、 Windows なら telnet.exe でよい。

ここまではファームウェアの話なので、 OS のコンソールの話はまた別である。 「普通は」やはりキーボードを抜いておくとそれを検出して シリアルに getty を用意してくれることが多いのだが、 OS によってはビデオカードも抜かないとシリアルコンソールが出ないときがある (例: Linux)。あるいはカーネルにパラメータを渡すと出たりする。 例えば Linux ではカーネル引数に console=ttyS0 を付ける。 確認した限りでは FreeBSD NetBSD Solaris は デフォルトでシリアルコンソールを用意してくれる。

リンク

http://apex.wind.co.jp/tetsuro/f-bsd/serial.html
「シリアルコンソールを考える」 リモートからシリアルコンソールでアクセスする機械・ コンソールサーバに関する話題。
http://freshmeat.net/projects/sredird/
ソフトウェアの telnet → シリアルラインコンバータ、sredird。 小さくてよい。

system revision 1.162