サーバにシリアルポートを追加

Intel DG33TLにはシリアルポートが付いていないのだが,後で追加できるようにシリアル用の ピンヘッダが用意されている. ただし,このシリアルポートヘッダを使う方法はどこにも説明されていない.


シリアルポートブラケットの用意

ピンヘッダを使うには,ピンアサインに合致したケーブルとそれを繋ぐブラケットが必要になる. ピンアサイン自体は Intel のサイトで調べることができる. マニアックな人たちはこの情報を基にケーブルを自作するらしいのだが,私には出来ない.

いろいろ調べてみると,ここ で紹介されている Asustek の シリアルブラケットのピンアサインと一致しているようだ. これを試してみることにする.

以下は購入した Asustek シリアルケーブルブラケットを取り付けたところ.

ブラケット(内側) ブラケット(背面)

クライアント側の配線

クライアント側の配線を準備する. 私の手元にはシリアルポートの無いノートPCしか無いので,USB-シリアル変換ケーブルを利用した. 変換ケーブルはストレートケーブルなので,さらにクロスケーブルを噛ませなければならない.

 [ノートPC]---(変換ケーブル)---(クロスケーブル)---[サーバ]

サーバ側の設定

サーバ側でブートローダやカーネル,gettyがttyS0を利用するように設定する. BIOSのConsole Redirectionが使えれば素敵なのだが,個人用途のMBには望むべくも無い.

root:# vi /boot/grub/menu.lst
...(snip)...
# Serial Port
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
...(snip)...
title           Debian GNU/Linux Etch
root            (hd0,0)
kernel          /vmlinuz-2.6.23-1-486 root=/dev/mapper/PeteVG01-PeteLV_ROOT ro pci=nommconf VGA=771 console=tty0 console=ttyS0,115200n8


root:# vi /etc/inittab
s0:12345:respawn:/sbin/getty -L ttyS0 115200 vt100

上記のように設定しておけば,grubもカーネルのブートプロセスも,全てコンソールから制御できる.

ちなみにDG33TL がサポートしているシリアル転送速度は Technical Product Specificationによると115.2 kbpsとのことだ.

The board has one serial port header located on the component side of the board. The serial port supports data transfers at speeds up to 115.2 kbits/sec with BIOS support.

クライアントソフトの設定

通常はシリアル接続用ターミナルソフトを実行し,サーバ側で設定した速度と合わせれば良いだけだ. 自分はGUIクライアントであるgtktermを使った.

$ sudo gtkterm --speed 115200 --port /dev/ttyUSB0

しかし,今回はここで嵌まった. 上のように実行してもターミナルには何も表れない. 原因がわからない.

最終的には,'Toggle RTS'をgtkterm上で選択すると表示が成功した. RTS (Request To Send) はシリアルポートのピンの一つで,データ送信リクエストの On/Off を制御するものだ. ピンの電圧が負ならば「データを送るな」,正なら「データを送れ」を意味する. これをソフトウェアから反転させると表示できたということは,理由は不明だがDG33TLのシリアルヘッダのRTSピンの電圧が逆になっているようである.