マルチポートシリアルカードは PC の ISA バスまたは PCI バスのスロッ トに設置します。「…カード」と呼ぶ代わりに、「…アダプタ」や「…ボード」 と呼ばれることもあります。このようなカードを使うと、シリアルポートをた くさん使うことができます。これらにはたくさんの外部コネクタ(DB-25 や RJ-45(電話のジャックのような形状))が付いており、モデム等をたくさん接続す ることができます。そして、こういったモデムのそれぞれは単独のシリア ルポートに接続されるでしょう。カードの外に出ている部分の空間には限りがあ るので、全てのシリアルポートコネクタを接続するだけの場所がないこともし ばしばあります。この問題を解決するために、カードから(外に)ケーブルが出 ており(octopus ケーブル)、その端にコネクタが付いていることがあります。 マルチポートカードとケーブルで繋がっている小さい箱にコネクタが付いてい ることもあります。
ダムシリアルポートも通常のシリアルポートとあまり変わりません。ダムシリ アルポートも割り込み駆動であり、このポートにサービスする動作のほとんど 全てはコンピュータの CPU が行います。これには普通、1 つの割り込みを全 てのポートで共有するためのシステムが付いています。したがって、こういっ たシリアルポートは通常は特殊なドライバを必要とします。ドライバはカーネ ルに入れるか、ソースコードの修正によって有効にしなければなりません。
賢いボードは通常の UART を使えますが、UART からの割り込みのほとん どをボード内で内部的に処理します。これにより、CPU はこういった割り込み の全てを扱うという負荷を逃れることができます。このボードはバイトデータ を大きな内部 FIFO に蓄え、一度に 1K バイトくらいのデータをメインメモリ 上のシリアルバッファに転送します。メインメモリへのデータ転送を行う際に は、(8 ビットのバイトだけを転送するのではなく)32 ビットのバス幅を全て 使うことができます。必ずしも全ての「賢い」ボードが同じように効率的なわ けではありません。現在の多くのボードはプラグ&プレイ対応です。
マルチポートボードが使うシリアルポートは、お使いのボードの種類によって
異なります。一部のポートは rc.serial
や 0setserial
に詳しく列挙されているかもしれません。これらのファイルは
setserial パッケージまたは serial パッケージに入っているかもしれません。
筆者としては、読者の皆さ
んがマルチポートボードを使おうとしているのなら、最新バージョンの
setserial
を入手することを強くお勧めします。また多分、これらのデ
バイスを作成する必要があるでしょう。作成には mknod
コマンドか
MAKEDEV
スクリプトを入手してください。シリアルポート用のデバイス
(/dev ディレクトリにある)は、「64 + ポート番号」の足し算で作れます。
したがって、ttyS17
用のデバイスを作成したければ、以下のコマン
ドを実行します:
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
「64 + 17 = 81」に注意してください。MAKEDEV
スクリプトを使う場合
には以下のコマンドを実行します:
linux# cd /dev
linux# ./MAKEDEV ttyS17
本 HOWTO に書かれているマルチポート製品の一覧以外にも、 Gary's Encyclopedia - Serial Cards という WWW ページがあります。これは完全 ではありませんが、他へのリンクもいくつかあります。
PC 標準のシリアルボード(COM1 - COM4)は外付けのシリアルデバイス(モデ ム、シリアルマウス等)に接続することができます。現在は PC にシリアルボー ドが付いていることはないので(この目的のチップがマザーボード上に載って いるのです)、小売店でボードとして見つけることは難しいでしょう。ISA バ ス用の内部モデムには、組み込みのシリアルポートが付いています。
注意: アドレスが衝突するため、COM4 と IBM8514 ビデオボード(およびその 互換ボード)を同時に使うことはできないかもしれません。 特定のビデオボードでの I/O アドレスの衝突を避ける方法 をご覧ください。
以下のボードも「シリアルアダプタ」と呼ばれます。
* => Debian では setserial を実行するファイルが、詳細な設定を表示します。
# => このボードについては後述の注を見ること
一般的には、Linux は 8250, 16450, 16550, 16550A, 16650 などの UART を 使っている全てのボードに対応しています。もっと詳しいリストについては、 "setserial" の最新のオンラインマニュアルを参照してください。
注:
AST Fourport: rc.serial
で skip_test
を指定する必要があるか
もしれません。
BB-1004 と BB-1008 は DCD, RI ラインをサポートしておらず、そのためダイ アルイン用のモデムには使えません。他の目的では問題なく動作します。
Digi PC/8 の割り込み状態レジスタの位置は 0x140 です。
SIIG IO1812 のマニュアルに書かれている COM5 から COM8 のリストは誤って います。正しくは COM5=0x250, COM6=0x258, COM7=0x260, COM8=0x268 のはず です。
Linux 互換のドライバが使えることを確かめ、ドライバ付属の情報を読んで ください。これらのカードは、標準のデバイスでなく特殊なデバイス(/dev ディ レクトリにある)を使います。この情報はハードウェアごとに異なります。こ の文書に載せるべき新しい情報があれば、ぜひ筆者にメールを送ってください。
info@comtrol.com
または
http://www.comtrol.com
ftp://tsx-11.mit.edu/pub/linux/packages/comtrol
sales@cyclades.com
または
http://www.cyclades.com
ftp://ftp.cyclades.com/pub/cyclades
。また、バージョン
1.1.75 以降の Linux カーネルに含まれています。
pccom8@signum.se
ftp://ftp.signum.se/pub/pccom8
sales@dgii.com
または
http://www.dgii.com
ftp://ftp.dgii.com/drivers/linux
でも入手できますし、バー
ジョン 2.0 以降のカーネルは含まれています。
si@wimpol.demon.co.uk
sales@equinox.com
または
http://www.equinox.com
ftp://ftp.equinox.com/library/sst
spot@gtek.com
または
http://www.gtek.com
ftp://ftp.gtek.com/pub
arobinso@nyx.net
または
http://www.nyx.net/~arobinso
http://www.nyx.net/~arobinso
から入手できますし、
バージョン 2.1.15 以降の Linux カーネルにも含まれています。setserial
はバージョン 2.15 以降で対応しています。
info@maxpeed.com
または
http://www.maxpeed.com
ftp://maxpeed.com/pub/ss
info@moxa.com.tw
または
http://www.moxa.com.tw
ftp://ftp.moxa.com.tw/drivers/c218-320/linux
sales@sdlcomm.com
または
http://www.sdlcomm.com
ftp://ftp.sdlcomm.com/pub/drivers
sales@stallion.com
または
http://www.stallion.com
ftp://ftp.stallion.com/drivers/ata5/Linux
から入手できま
す。また、バージョン 1.3.27 以降の Linux カーネルに含まれています。
Comtrol 社, Cyclades 社, Digi 社, Stallion 社の製品のレビューが
Linux Journal 誌の 1995 年 6 月号に掲載されています。この記事は
http://www.ssc.com/lj/issue14
で読むことができます。