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

2. Linux PC 用のモデム

2.1 内蔵と外付けのどちらが良いのか

PC 用のモデムには内蔵あるいは外付けのものがあります。内蔵のものは PC の内部に取り付けます(取り付けるためにはねじを外すなどが必要です)。 外付けのものは PC のシリアルポートコネクタへ差し込むだけです。内蔵モデ ムは低価格でバッファ溢れによるデータ喪失が発生しにくく、たいてい消費電 力も少なく机の上に余分な空間が要りません。

外付けモデムは取付けが非常に簡単で設定もほとんど必要ありません。そして 何が起こっているのかを知る手がかりになる表示灯があります。シリアルポー トとモデムが物理的に分かれていることは、トラブル解決にも役立ちます。ま た、外付けモデムは他のコンピュータへ簡単に移動できます。

残念なことに、多くの外付けモデムは非使用時に電源を切るスイッチがないの で、(壁のコンセントからプラグを抜かない限り)電源を切っていても若干の電 力を消費します。電気料金は年間 $1 程度でしょう。外付けモデムのもうひと つ不利な点は、115,200 kbps 以上の速度をサポートしないシリアルポートを 使わざるをえない場合があることです(しかし、1998年の終わりには多くの新 型の内蔵モデムでもこの速度は出ず、一部のものだけが出せませんでした)。 新型の内蔵モデムが 16650 UART を持っているなら、CPU の負荷は低くなりま す(しかし 1998 年の終わりごろには、そのようなものはほとんどありません でした)。

内蔵モデムは Linux で使用すると、固有の問題が発生します。しかし、MS Windows でしか動かないモデムを避ければ、正しく設定するために(ときには 非常に多くの)時間がかかるものの、外付けモデムと同様に動作します。残念 なことに、MS Windows でしか動作しないモデムの中には、その旨を明記して いないものもあります。。もし新しいモデムを買うなら、Linux で動作しなかっ た際に返品できるかどうか確かめてください。

新しいモデムの多くはプラグ&プレイであり、それを扱うには多くの方法 があります :

上記の手法にはそれぞれ欠点があります。(現在はまだ不完全な) Plug-and-Play-HOWTO が理解を助けるとはいえ、isapnp の文書は理解しにく いものです。PnP BIOS の設定を行いたいなら、PnP OS を使っていないことを PnP BIOS に伝えなければなりません。それでも正しく設定できないかもしれ ません。何をするのか知りたければ、 シリア ルポートのハードウェアの設定は? をご覧ください。以前はパッチを当てた カーネルが動作していました。しかし、現在有効なパッチは存在しないようで す。関連する Web サイトを御確認ください。

外付けモデムの方が簡単に入手して接続できると言う Linux ユーザが多くい ます。しかし、現在新しい周辺機器はたいていプラグ&プレイになりまし た。いずれ PnP を扱うことになるかもしれないのに、なぜやらないのでしょ うか? でもまだ今のところは、(空いているシリアルポートがあるなら)最も好 都合な(そして高価な)解決策は外付けモデムです。

2.2 外付けモデム

PnP 外付けモデム

多くの外付けモデムは ``Plug and Play'' (PnP) のラベルがついていま すが、PnP ではないモデムとしても同様に正常に動作するはずです。固有の IRQ と IO アドレスを持つシリアルポートにモデムを接続するので、モデムに PnP の機能は必要ありません。しかし、デフォルトの設定で正常に動作しな い限り、シリアルポート自体には (IRQ と IO アドレスの)設定作業が必要で す。

PnP で設定しないのに、なぜ外付けモデムを PnP と呼ぶのでしょうか。PnP OS が(シリアルポートを通じて)読み込める特別な PnP 識別情報を、モデムは 自身の中に持っています。PnP OS にはモデムが特定のポートにつながってい ること、そしてモデムの型番が分かります。そして、モデムが (/dev/ttsS2 あるいは COM3 など)どのポートにつながっているのか、 アプリケーションを設定する必要がなくなるかもしれません。しかし、このよ うな PnP OS を持っていないなら、(/dev/ttyS2 といった)デバイス 識別子をアプリケーションに手動で設定する必要があるでしょう。

ケーブル接続とインストール

様々なタイプの「ヌルモデム」ケーブルを必要とするその他の装置をシリ アルポートへ接続することと比べて、外付けモデムを接続することは簡単です。 モデムは交差するピンのないストレートケーブルを使います。多くのコンピュー タショップはストレートケーブルを売っているはずです。正しいケーブルを手 に入れるよう気を付けてください。コンピュータに DB9 あるいは DB25 のシ リアルポートがあるなら、シリアルポートは常にオスコネクタであり、ケーブ ルはメスコネクタになります。シリアルポートへモデムを接続してください。 接続したポートのデフォルト IRQ と IO アドレスで構わないなら、これで通 信プログラムを起動しモデム自体の設定を行う準備が整いました。

[訳注 : DB9 は D-Sub 9 ピンコネクタ、DB25 は D-Sub 25 ピンコネク タです。]

ライト (LED) の意味

[訳注 : 訳者のモデムでは MR = Modem Ready で、モデムの電源が入っ ているときに ON になります。]

2.3 内蔵モデム

PC のカバーを取り外しマザーボード上の空きスロットへモデムボードを 挿入して、内蔵モデムを取り付けます。内蔵モデムにはISA スロット用のモデ ムがあり、その他には PCI スロット用のものがあります。外付けモデムはシ リアルポートへ(短いケーブルを介して)接続したのに対し、内蔵モデムにはモ デム自身の中にシリアルポートがあります。言い換えると、モデムボードはシ リアルポートとモデムの双方の役割をします。

昔は、シリアルポートへの IO アドレスと IRQ の設定を、ボード上のジャン パで行いました。ボード上のピンへ押し込む、5x4x2mm 程度の黒く小さい長方 形の「サイコロ」があります。PnP モデム(実際はモデムの一部であるシリア ルポート)は設定のためにジャンパは用いず、モデム(コンピュータの中にある ISA バスの IO アドレス空間)へ設定コマンドを送ることにより設定を行いま す。PnP BIOS、(ISA バスは) isapnp プログラム、あるいは PnP OS が、こう いった設定コマンドを送ることができます。モデムを設定する手段は、 Windows 95/98 には組み込まれています。Linux では、IO と IRQ の設定方法 は(常に簡単な方法はありませんが)いくつかの方法から選ぶことができます:

  1. 起動の度に ``isapnp'' を自動的に動かす
  2. (起動ごとに動く) PnP BIOS を単独で使用する
  3. Linux にパッチを当て PnP OS にする

2.4 (内蔵)ソフトウェアモデム

ソフトウェアモデムはモデムとして必要な処理の多く(あるいはほぼすべ て)を(Pentium など)コンピュータの CPU へ委託します。複雑な専用ソフトウェ ア(ドライバ)が CPU でこの処理を行います。1998 年中頃以降に製造された内 蔵モデムの多くは Windows でしか動作しないソフトウェアモデムであり、 Linux では動作しません。数人の有志がこのモデム用の Linux ドライバ を書こうとしているものの、仕様書が入手できないのでドライバを完成できま せん。2000 年以前は、ドライバがないために Linux で動作するソフトウェア モデムはありませんでした。

1999 年の終りには、やっと 2 つのソフトウェアモデムが Linux で動作する ようになりました。残念なことに、Lucent Technologies 社は PCI ソフトウェ アモデムのドライバをバイナリを非公式に公開しているだけです。このドライ バの初期のバージョンにはバグがありました。PC-TEL 社は Linux 用の新しい ソフトウェアモデムを売り出しました。他の企業も先行企業に続いて、 ``linmodem'' を作るのでしょうか? Linux におけるモデムの動作状況一覧が modem list にあります。ソフトウェアモデムを Linux で動作させようとするプロ ジェクトがあります。 http://linmodems.org をご覧ください。 メーリングリストもあります。現在、複数のリバースエンジニアリング作業が 進行中です。ソフトウェアモデムを Linux で動作させた報告が、少なくとも ひとつあります(しかし、まだすべての機能を利用できるわけではありません)。 従って、皆さんがこれを読むころには、linmodem がもっと増えているかもし れません。

ソフトウェアモデム(いわゆる winmodem) を Lunux で扱えるドライバが手に 入るようになったら、それを ``linmodem'' と呼ぶ人もいるでしょう。それで もまだ ``winmodem'' なのでしょうか? そのモデムは MS Windows でも動作 するので、恐らく ``winmodem'' ということになるでしょう。``Winmodem'' という単語は特定のタイプのソフトウェアモデムを指す登録商標です。

[訳注 : 原著ではソフトウェアモデム一般を ``winmodem'' と表記して いて、winmodem と linmodem を対比させる形になっています。]

ここではソフトウェアモデムに関して、より正確な技術用語を解説します。 HSP (Host Signal Processor) とは電話回線に流す電気信号を生成するために 必要となる信号を、ホストのプロセッサ (CPU チップ)で作り出すことを意味 します。モデム自身は CPU が伝えた電気的な波形を生成しているにすぎませ ん。これとは対照的に、「制御装置のない」モデムは(モデム自身を制御でき ないものの)自分自身で波形を生成できます。HSP には送受信データを処理す る機能はありません。データ列を圧縮できず、誤りも検出できず、パケットに データを入れられません。言い換えると、HSP はモデムを制御できず、ソフト ウェアを使用し CPU がすべての作業を行います。Rockwell 社の HCF (Host Controlled Family) はこの作業を行います。このすべてを行うソフトウェア が Linux へ移植できたなら、前述の問題はなくなります。上記の問題が解決 したとしても、Linux からシリアルポートに見えないモデムは Linux では動 作ないでしょう。

特定の内蔵モデムが Linux で動くかどうかを判断するにはどうすれば良いの でしょうか? まず、ソフトウェアモデムを示す名前や記述があるかどうか確か めてください : HSP, HCF, HSF、制御装置なし、ホスト制御型、ホストベース、 そして soft- モデムなどです。ソフトウェアモデムの Linux ドライバが入手 できたごくまれな場合にのみ、正常に動作するでしょう。そのモデムの型名が 分からなくて、そして Linux PC に Windows も入っているなら、「コントロー ルパネル」で「モデム」のアイコンをクリックしてください。まず、4 つ前の 段落で述べた Web の一覧を確認してください。もしモデムが動作しない(ある いはうまく動かない)なら、モデムの箱(あるいはマニュアル) を見て、「最小 システム要件」あるいは「システム要求」といった記述のある部分を探すと良 いでしょう。それは小さな字で印刷されているかもしれません。じっくり読ん でください。要求の中に Windows が載っていたら、おそらく Linux では動作 しないでしょう。

一方、Windows が必要だと明言しないモデムは、Linux で動作するかもしれま せん。「Windows 用に設計した」ということは、Microsoft の PnP を完全に サポートしていることを意味しているだけかもしれません。Linux が同じ PnP 機能を使用しているなら問題なく動作します(しかし、Linux を使用して設定 するのは難しいです)。「Windows 用に設計した」という記述は、Linux で動 作するか否かを判断する手がかりにはなりません。製造元の Web サイトを確 かめるか、メールで尋ねるのが良いでしょう。あるモデルは Linux で動作し、 他のモデルは動作しないと明言する Web ページを、著者はかつて見たことが あります。

ドライバを手に入れるという問題のほかにも、ソフトウェアモデムには利害得 失があります。ソフトウェアモデムは処理の大部分に CPU を使用するのでボー ド上の電子部品が少なくて済み、製造コストが安くなります。ですが、モデム が CPU に高い負荷をかけるので、他の処理が遅くなる可能性があります。実 際、CPU を激しく使用するタスクが同時に動いていると、特に処理が遅くなり ます。もちろん、ソフトウェアモデムを使っていないときには、全く処理能力 の低下は発生しません。このコスト削減には価値があるのでしょうか? モデ ムをあまり使わなかったり、モデムの使用中に高い CPU 負荷をかけるタスク がない場合には、その答えは yes になります。このように、ソフトウェアモ デムの使用が経済的に正解である場合もあります。モデムにかける経費を削っ た分をつぎ込んで高性能の CPU を手にいれたところで、処理速度はほんのちょっ としか上がらないでしょう。しかし、モデムボードの電子部品は汎用 CPU よ りも効率的に処理を行えます。従って、多くの場合、多分ソフトウェアモデム の使用を避ける方が良いでしょう。

2.5 PCI モデム

PCI モデムボードは PC のマザーボード上の PCI バススロットへ挿入す るものです。不幸なことに、多くの PCI モデムが Linux では動作しないよう です。しかし、その一部をサポートする努力が進行中です。 PCI バスはまだサポートされていません をご覧ください。

2.6 Linux で動作しない内蔵モデムは?

MWave および DSP モデム

この種のモデムは DSP (Digital Signal Processor) を使っています。モ デムを使う直前に、ハードディスクから DSP のメモリへプログラムをダウン ロードするよう、DSP は作られています。不運にも、DOS あるいは Windows のプログラムでそのダウンロードを行うなら、Linux では動作しません。通常、 Linux で動作するモデムも DSP を持っていますが(パッケージに書いてあるか もしれません)、動作プログラムはモデム中に格納されています。これは本節 でいう意味の「DSP モデム」ではなく、Linux でも正常に動作するはずです。 DSP モデムの一例に IBM Aptiva の MWAVE があります。

DSP モデムがシリアルポートをシミュレートするなら、Linux でシリアルポー トを経由しモデムと通信できます。同じ PC 上に DOS あるいは Windows が入っ ているなら、モデムを使えるかもしれません : まず (Windows 用ドライバを 使わずに DOS を使って)、DOS でドライバをインストールします。DOS か Windows を起動し(モデムが初期化されることを確かめ)、電源を切らずに Linux を起動します。DOS から Linux へ移行する方法のひとつは、 loadlin.exe を使用することです (Config-HOWTO をご覧ください)。もうひと つの方法は CTRL-ALT-DEL を押すだけです。モデムは DOS で使用したものと 同じ COM ポート(同じ IO アドレス)を記憶しています。

[訳注 : JF プロジェクトによる日本語訳 Config-HOWTO ]

Rockwell (RPI) ドライバ

Rockwell RPI (Rockwell Protocol Interface) ドライバを必要とするモ デムは、そのドライバが Windows でしか動かないにもかかわらず、Linux で使用 できます。なぜなら、MS Windows のソフトウェアはデータ圧縮とエラー訂正 しか行わないからです。データ圧縮とエラー訂正をせずにモデムを使えば、 Linux でも使用できます。そのためには、モデムの電源を入れる度に、モデム へ(初期化文字列で)「RPI 無効化」コマンドを送り、RPI を無効にする必要が あります。このコマンドは著者のモデムでは +H0 です。インターネット からダウンロードする多くのファイルは圧縮済みです。更に圧縮を試みてもダ ウンロードを遅くするので、データ圧縮を利用しなくてもそれほど多くの不利 益はないかもしれません。


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