Mac OS X (Snow Leopard)でSerial Console (シリアルコンソール)


MacでもPCでも、最近はシリアル(Serial)端子を見かけなくなってしまった。
僕も昔は仕事マシンはWindowsを使っていたのだけれども、最近はMac一辺倒だし、ネットワーク機器の設定をするにも、KindleやNASなどの組み込みLinux機器をはっくするにもシリアル端子が命なので、Macでシリアル通信をできるようにしてみた。

まずはUSBシリアルアダプター

下調べをしたところ、秋月電子通商が売っている「FT232RL USBシリアル変換モジュール」っていうモジュールが950円と安かった。モジュールなので、組み込みLinux機器に接続するためなどに使うのが吉。TTLレベルでシリアル通信をしようとすると、家電量販店などで売っているケーブルを改造するか、こういうモジュールを買うかを選択することになる。
Webサイトや説明書には、Windowsのドライバのことしか書いて無かったけれども、チップを作ってるFTDI社がMacやLinuxのドライバを配布してくれているので、安心。

ネットワーク機器設定用には、RS-232C端子が使えれば良いので、市販しているものからFTDI社のチップを積んでいるものを選ぶといいだろう。例えば、これ

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

ドライバのインストール

なんのことはなく、FTDI社のWebからダウンロードしてきて、インストールするだけだった。LeopardまたはSnow Leopard用のがあったので、一発でインストール完了
初回インストールだったせいか、再起動も要求されなかった。

ドライバをインストールし終えたら、USBシリアルアダプタをUSBで接続してみよう。
デバイス名を確認するには、

$ ls /dev/tty.*
/dev/tty.Bluetooth-Modem	/dev/tty.Bluetooth-PDA-Sync	/dev/tty.usbserial-A9009qJ4

とコマンドを打ってみて出てくる、usbserialと付いてるのがデバイスになる。
この場合、”/dev/tty.usbserial-A9009qJ4″がデバイスだ。

screen

一番簡単な方法は、Mac OS Xに最初から入っているscreenを使う方法だ。
Mac OS Xのターミナルから、

$ screen /dev/tty.usbserial-A9009qJ4 9600

といった具合にコマンドを打ってやると、ターミナルでシリアルコンソールに接続できる。
GNU screenを終了するには、Ctrlキーを押しながらAを押して、そのままCtrlキーを離さずに¥を押せばいい。
しかし、なんとなくscreenでは、文字が化けることが多い気がしたので、他のソフトを探すことにした。

Jerminal

Jerminalというソフトがあるらしいので、これを試してみた。が、先に言っておくと、私の環境では、ちゃんと動いてくれなかった。ソフトウェア自体は一見ちゃんと動いている様に見えただけに、タチが悪い。私は最初Jerminalを使ってみていたので、ハードウェアや配線の問題かと思い込んで、小一時間ムダにしてしまった。

minicom 2.2

minicomはXMODEMなどのファイル転送も可能な高機能なターミナルソフトだ。昔はFinkでもインストールできたみたいだけれども、私が試したときにはFinkで見つからなかった。
バイナリパッケージもあるみたいだが、これも”illegal instruction”と表示され、正常に動作しなかった。仕方ないので、私は自分でコンパイルをした。(X Codeが必要)
コンパイルは、ここからソースコードを落としてきて、展開をしてやる。そのままだとコンパイルが通らないので、次の作業が必要だった。(先ほどのバイナリパッケージのページを参考にした。)

% ./configure --enable-lock-dir=/tmp
% cd src
% for file in config.c dial.c file.c help.c main.c minicom.c updown.c windiv.c window.c window.h; do
> mv $file $file.old
> cat $file.old | sed s/wprintf/mc_wprintf/g > $file
> done
% cd ..
% vi config.h

最後にviでconfig.hを開いて、config.hの最後の行に

#include <time.h>

と書いてやらなければいけない。
作業を終えたら、

% make
% sudo make install

と普通にmakeしてインストールすればいい。
最初は、

% minicom -s

として、設定をしてやることがポイントだったりする。

ちょいと長くなったけれども、この手順を踏めば、幸せなMacでのシリアルコンソール生活が待っている。