98note をシリアルコンソールに仕立てる
ウチのサーバマシンにはモニタを継いでないので、ちょっと様子を見たい時にはデスクトップマシンを起動して ssh で入るか、モニタを継ぎ換えるしかなくて結構面倒。ちょうど HDD が壊れて退役した 98note (PC-9821Nd2) が手元にあるのでシリアルコンソールとして復活させてみた。
サーバ側の設定
Debian の /etc/inittab にはデフォルトで ttyS0 のエントリが準備されているようなので、そのコメントを外し
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
telinit q してシリアル用の getty を上げる。また、ブート時からシリアル経由で操作できるように /boot/grub/menu.lst に
serial terminal --timeout=10 serial console
を追加。カーネルパラメータにも console=tty0 console=ttyS0 を加えておく。
ターミナルエミュレータを用意する
MS-DOS があればそれプラス hterm が定番なのかな? 「ディスク一枚作りゃいいだけやん」と安易に考えていたけど、今回ここが一番難儀した。
とにかく安心してフロッピーディスクを読み書きできる環境を探すのに一苦労。対象が PC98 だってのも拍車を掛けた。どうにかこうにか DOS のシステムディスクを作るとこまでこぎつけたが、hterm のインストーラ (DOS のバッチファイル) を動かす環境がない*1。仕方ないんでバッチファイルが何やってるかを読む。ぐはー、もう全然ワカンネー。結局のところ
- ヘルプファイル bin/jhterm.db (英語版なら ahterm.db) を hterm.db としてコピー
- bin/hterm.98 (AT 互換機なら hterm.pc、J3100 なら以下略) を hterm.exe としてコピー
- PC98 の場合は bin/hkey{,set}.98 を hkey{,set}.exe としてコピー
- bin/a14k14.hft をコピー
してやればよいようです。AT 互換機なら hemacs という emacs like なエディタもコピーされるみたい。疲れた…。
継ぐ
あとは、両機をクロスケーブルで継いどいて 98note を FD 起動。hterm と叩いて (autoexec.bat を用意しとくのが DOS 流ですね) 無事 login: プロンプトが出てくれば成功。PC98 版の場合 STOP キーで hterm の終了、COPY キー で hterm の設定ができます。とりあえず文字コードだけ EUC に変更してやればあとはデフォルトのまま使えるんではなかろうか。
最終的に試したらボーレートは 19,200 までいけたので
/etc/inittab
T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100
/boot/grub/menu.lst
serial --speed=19200 terminal --timeout=10 serial console
同ファイルのカーネルパラメータ
console=tty0 console=ttyS0,19200n8
に修正。まぁそれでも表示は遅いんだけど、メンテ用途なら充分使える。