次のページ 前のページ 目次へ

5. マルチポートシリアルボード/カード/アダプタ

5.1 マルチポートシリアル入門

マルチポートシリアルカードは PC の ISA バスまたは PCI バスのスロッ トに設置します。「…カード」と呼ぶ代わりに、「…アダプタ」や「…ボード」 と呼ばれることもあります。このようなカードを使うと、シリアルポートをた くさん使うことができます。こういったカードはたくさんの端末やモデムを シリアルポートに接続するために使われますが、モデムと組み合わせて使う方 法は今では時代遅れです。現在のモデム通信では、多くのモデムチップは 1 枚のカードの上に載っており、1 つの回路で複数の回線を(デジタル形式で)繋 いでいる電話回線に接続します。こういったモデムは「デジタルモデム」と呼 ばれ、電話回線インタフェースは「…コンセントレータ」と呼ばれます。 このようなシステムはスタンドアロンの独自規格のサーバであったり、特殊な カード(今では「マルチポート」とは言いません)を使って PC 上に構築されま す。Digi 社はこういったカードを 「リモートアクセスサーバ用のコンセントレータアダプタ」と呼んでいます。 マルチポートモデムカードに関する簡単な説明が Modem-HOWTO に書かれてい ますが、コンセントレータは扱われていません。

さて、マルチポートシリアルカードの説明に戻りましょう。これらのカードに はたくさんの外部コネクタ(DB-25 や RJ-45(電話のジャックのような形状))が 付いており、たくさんのデバイス(モデムや端末など)を接続できます。そして、 こういった物理デバイスのそれぞれは単独のシリアルポートに接続されるでしょ う。カードの外に出ている部分の大きさには限りがあるので、全てのシリアル ポートコネクタを接続するだけの場所がないこともしばしばあります。この 問題を解決するために、カードから(外に)ケーブルが出ており(octopus ケーブル)、その端にコネクタが付いていることがあります。 マルチポートカードとケーブルで繋がっている小さい箱にコネクタが付いてい ることもあります。

ダムシリアルポートも通常のシリアルポートとあまり変わりません。ダムシリ アルポートも割り込み駆動であり、このポートにサービスする動作のほとんど 全てはコンピュータの CPU が行います。これには普通、1 つの割り込みを全 てのポートで共有するためのシステムが付いています。したがって、こういっ たシリアルポートは通常は特殊なドライバを必要とします。ドライバはカーネ ルに入れるか、ソースコードの修正によって有効にしなければなりません。

賢いボードは通常の UART を使えますが、UART からの割り込みのほとん どをボード内で内部的に処理します。これにより、CPU はこういった割り込み の全てを扱うという負荷を逃れることができます。このボードはバイトデータ を大きな内部 FIFO に蓄え、一度に 1K バイトくらいのデータをメインメモリ 上のシリアルバッファに転送します。メインメモリへのデータ転送を行う際に は、(ダムシリアルカードのように 8 ビットのバイトだけを転送するのではな く)32 ビットのバス幅を全て使うことができます。必ずしも全ての「賢い」 ボードが同じように効率的なわけではありません。現在の多くのボードはプラ グ&プレイ対応です。

賢いボードを動かすためには、専用のドライバを使わなければなりません。 このドライバはカーネルのソースコードに組み込まれていたり、モジュールと して提供されることもあります。こういった場合でも、ドライバを有効にする には何かしなければなりません。その作業には、カーネルのコンパイル時に 選ぶこと(または、予めコンパイルされているカーネルがそうなっているかど うかを確かめること)が含まれます。"make config" コマンドか "make menuconf" コマンドを使うと、このオプションがどのように設定され ているかを確かめることができます。場合によっては、特殊なドライバを ロードしたり、特定のパラメータを(LILO の append コマンドを使って) カーネルに渡すこともあります。ボードのメーカーは、このような情報を自社 のウェブサイトに載せているはずです。残念ながら、古いボードの情報がない ことも時々ありますが、その情報はインターネット上の他の場所で見つけられ るかもしれません(議論用のニュースグループを含みます)。

5.2 /dev ディレクトリでの「デバイス」の作成

マルチポートボードが使うシリアルポートは、お使いのボードの種類によって 異なります。一部のポートは rc.serial0setserial に詳しく列挙されているかもしれません。これらのファイルは 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 ページがあります。これは完全 ではありませんが、他へのリンクもいくつかあります。

5.3 PC 標準のシリアルボード

PC 標準のシリアルボード(COM1 - COM4)は外付けのシリアルデバイス(モデ ム、シリアルマウス等)に接続することができます。現在は PC にシリアルボー ドが付いていることはないので(この目的のチップがマザーボード上に載って いるのです)、小売店でボードとして見つけることは難しいでしょう。ISA バ ス用の内部モデムには、組み込みのシリアルポートが付いています。

注意: アドレスが衝突するため、COM4 と IBM8514 ビデオボード(およびその 互換ボード)を同時に使うことはできないかもしれません。 特定のビデオボードでの I/O アドレスの衝突を避ける方法 をご覧ください。

5.4 ダムマルチポートシリアルボード (8250/16450/16550A UART を搭載)

以下のボードも「シリアルアダプタ」と呼ばれます。
* => Debian では setserial を実行するファイルが、詳細な設定を表示します。 # => このボードについては後述の注を見ること

一般的には、Linux は 8250, 16450, 16550, 16550A, 16650 などの UART を 使っている全てのボードに対応しています。もっと詳しいリストについては、 "setserial" の最新のオンラインマニュアルを参照してください。

注:

AST Fourport: rc.serialskip_test を指定する必要があるか もしれません。

BB-1004 と BB-1008 は DCD, RI ラインをサポートしておらず、そのためダイ アルイン用のモデムには使えません。他の目的では問題なく動作します。

Digi PC/8 の割り込み状態レジスタの位置は 0x140 です。

SIIG IO1812 のマニュアルに書かれている COM5 から COM8 のリストは誤って います。正しくは COM5=0x250, COM6=0x258, COM7=0x260, COM8=0x268 のはず です。

5.5 インテリジェントマルチポートシリアルボード

Linux 互換のドライバが使えることを確かめ、ドライバ付属の情報を読んで ください。これらのカードは、標準のデバイスでなく特殊なデバイス(/dev ディ レクトリにある)を使います。この情報はハードウェアごとに異なります。こ の文書に載せるべき新しい情報があれば、ぜひ筆者にメールを送ってください。

Comtrol 社, Cyclades 社, Digi 社, Stallion 社の製品のレビューが Linux Journal 誌の 1995 年 6 月号に掲載されています。この記事は http://www.ssc.com/lj/issue14 で読むことができます。


次のページ 前のページ 目次へ