  The Winmodems-and-Linux HOWTO
  Alexandre J., alexandre12@mageos.com
  v1.0, April 2000
  日本語訳 千旦裕司
  v1.0j, August 2000

  この文書は、Linux 上で Winmodem を動かそうとするユーザのためのもので
  す。
  ______________________________________________________________________

  目次

  1. Winmodem とは？
     1.1 モデムではある
     1.2 しかし本物のモデムではない！
     1.3 Winmodem かどうか確認する方法

  2. ISA か PCI か？
     2.1 PCI か？
     2.2 ISA か？

  3. モデムドライバのインストール
     3.1 The LT Winmodem （ Lucent 社提供 )
     3.2 LTMODEM プログラム（オープンソース・ドライバ）

  4. 最後に
     4.1 ライセンスとコピーライト
     4.2 著者への連絡先
     4.3 参考ホームページ
     4.4 日本語訳について

  ______________________________________________________________________

  1.  Winmodem とは？

  1.1.  モデムではある

  Winmodem とは、他のモデムと同様に、BBS 、インターネット、インターネッ
  ト電話、ファックスなどのサービスを電話回線を通じて利用するためのもので
  す。電話回線にあわせて作られているので、回線速度に特徴があります。モデ
  ムのことをもっと知りたいなら、 Modem-HOWTO
  <http://www.linuxdoc.org/HOWTO/Modem-HOWTO.html> (日本語訳) を読んでく
  ださい。(訳注: ドライバ情報は、Linmodem-Mini-HOWTO をご覧ください。)

  1.2.  しかし本物のモデムではない！

  しかし、それは WINmodem です。つまり、Windows がないと動かないのです。
  どうしてそうなのか分かり易くいうと、お馬鹿だからです。特別なソフトウェ
  アであるドライバがないと、ろくに仕事もできないのです。この場合のソフト
  ウェアとは OS のことで、モデムに添付されたドライバは、99% の確率で、
  MS-Windows 上だけで動くように出来ています。しかし、Linux がもたらした
  民主化のおかげで、LT(Lucent Technologies)や Motorola などいくつかの製
  造元が、自社製モデムの Linux driver の提供を決めました。ただ彼らは、
  Linux の哲学を理解しなかった。もちろんドライバは動くのですが、ソースが
  公開されないのです。価格の点からはフリーなのですが、GPL (GNU General
  Public License) にそったものではありません。つまり、ソースは入手不能と
  いうことです。

  そこで、「ハッカー」達は、オープンソースのドライバーを作ろうと決意しま
  した。しかし、製造元は自分達のモデムの仕様について情報提供をしたがらな
  いので、彼らは多くを知り得ません。それゆえ、ソープンソースのドライバ
  は、しばしばアルファ版やベータ版の段階にあります。
  1.3.  Winmodem かどうか確認する方法

  1. ご自分のモデムがつながっているシリアルポートの名前を調べましょう。
     （ Windows や MS-DOS なら、例えば COM1,COM2,...）

     Linux でモデムを使う場合、その名称は、/dev/ttySx となります。x の部
     分は、 Dos のシリアルポートの番号から 1 を引いた数です。（例え
     ば、Dos で COM1 のとき、Linux の ttySx では、1-1 で、ttyS0 となりま
     す。）

  2. /dev/ttySx から /dev/modem にシンボリックリンクを張ります。以下のよ
     うにタイプしてください。

     ___________________________________________________________________
     rm -f /dev/modem
     ln -s /dev/ttySx /dev/modem
     ___________________________________________________________________

  3. 次に、Minicom のパッケージをダウンロードして、インストールします。
     （訳注：お手持ちのディストリビューションに含まれていることがありま
     す。）そして、'minicom -s' で起動してください。

     "Serial Port Setup" を選んで、"Serial Device" を設定するために 'A'
     とタイプし、その行を全部削除してから、'/dev/modem' と打ち込んでくだ
     さい。次に、[Enter] キーを押して、設定を有効にします。そして、[Esc]
     キーを押して（画面を戻した上で）、 "save setup dfl" を選び、"Exit"
     を選択して終了します。

     そしてちょっと間を置いてから、'AT' とタイプしてください。もし、"OK"
     とかえってきたら、それは Winmodem ではなく、標準的なモデムです。

     初期化に時間がかかりすぎるようなら、Winmodem です。この文書を使っ
     て、モデムを有効に活用しましょう。ルートでログインしておいてくださ
     い。

  4. Minicom からは、'CTRL + A' の後に 'X' と打つと抜けられます。

  2.  ISA か PCI か？

  2.1.  PCI か？

  ここからは、Winmodem だったときの話です。しかし、Winmodem には二種類あ
  ります。ISA と PCI とです。もっと面倒なことに、この二種類のインター
  フェイスは、まるで性質が違います。そこで、PCI か ISA かを調べるテスト
  をしましょう。まずは、カーネルの設定が必要です。'make *config' をする
  際には、以下の質問には yes で答えてください。

     Loadable module support では、
        "Enable loadable module support(CONFIG_MODULES)" に yes
        "Set version information on all modules form symbols
        (CONFIG_MODVERSIONS)" に yes
        (modutils パッケージがインストールされている必要があります。詳細
        は Linux kerneld mini-HOWTO
        <http://www.linuxdoc.org/HOWTO/mini/Kerneld/index.html> (若干古
        いですが、日本語訳
        <http://www.linux.or.jp/JF/JFdocs/Kerneld.html>)をご覧くださ
        い。)

     General Setup では、
        "PCI support(CONFIG_PCI)" に yes
        "PCI Access Mode(CONFIG_PCI_GOBIOS)" では "Any" を選択
        "PCI quirks(CONFIG_PCI_OLD_PROC)" に yes
        "Backward compatible /proc/pci(CONFIG_PCI_OLD_PROC)" に yes

     Filesystems では、
        "/proc filesystem support(CONFIG_PROC_FS)" に yes

  もし一度もカーネルを再コンパイルしたことがないなら、おそらくお使いの
  ディストリビューションのカーネルには上記の設定が含まれているでしょう。
  コンパイルしたことがない、けれどやってみたいというならば、Kernel-HOWTO
  <http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html> (日本語訳
  <http://www.linux.or.jp/JF/JFdocs/Kernel-HOWTO.html>)をお読みくださ
  い。

  以上で、新しいカーネルがインストールされたこととします。

  ではここで、'cat /proc/pci' と打ってください。コマンドが返した何行かの
  情報のなかにあなたのモデムの名前があったら、あなたの Winmodem は PCI
  モデムです。``「モデムドライバのインストール」'' の章に進んでくださ
  い。

  2.2.  ISA か？

  名前が見つからなかったときは、おそらく ISA のモデムです。確認してみま
  しょう。

  まず、カーネルは ISA(PnP) を当然にはサポートしていません。（ 2.4.* の
  カーネルではサポートされる予定ですが、まだ安定バージョンが出ていないの
  です。）isapnp というサードパーティーのソフトウェアがありますから、そ
  れで設定しましょう。まずそのパッケージがインストールされているか確認し
  てください。もしインストールされていないなら、isapnptools というパッケ
  ージをダウンロードしてください。(訳注: カーネル 2.4 での ISAPnP につい
  ては、ISAPnP-HOWTO <http://www.linux.or.jp/JF/JFdocs/ISAPnP-
  HOWTO.html> をご覧ください。)

  isapnptools がインストールされたら、pnpdump というプログラムを走らせま
  す。コンピュータを走査して、ISA デバイスをさがす専用プログラムです。そ
  のプログラムが、デバイスの使用しているリソースを推定して、
  /etc/isapnp.conf というファイルに情報を書き出します（訳注：標準では
  stdout に出力）。そうしたら、そのファイルを編集して、今度は isapnp と
  いう別のプログラムを走らせます。これが isapnp.conf ファイルを読み込ん
  で、自動的にデバイスを設定します。

  難しいですか？それなら以下の順番でやってみてください。

  1. 'pnpdump > /etc/isapnp.conf' と打ちます。

  2. そのファイル(/etc/isapnp.conf)を好きなエディターで開きます。

  3. モデムについて書かれたセクションを見つけます。

  4. ファイルの中の何行かのコメントを外します。（行頭の # を削除するとい
  うことです。削除が必要な箇所は、以下です。）

  (IO 0 ...)で始まる一行
  (INT 0 ...)で始まる一行
  (DMA 0 ...)で始まる一行
  (DMA 1 ...)で始まる一行
  (IO 1 ...)で始まる一行

  5. コメントを外した IO に関する全行(ふたつ)の (CHECK) という部分を削除
  します。

  6. 'isapnp /etc/isapnp.conf' と打ってください。エラーが出た場合は、エ
  ラーメッセージをヒントに、isapnp.conf ファイルを編集し直してパラメータ
  を変えてみてください。エラーが出なければ、isapnp.conf を開いてモデム・
  セクションにある (ACT Y) という行をコメントアウトしてください。そし
  て、もう一度 'isapnp /etc/isapnp.conf' と打てば、 "[[Name of your
  modem]] Enabled OK" という答えが返ってくるはずです。

  7. /etc/rc.d/rc.local というファイルに 'isapnp /etc/isapnp.conf' とい
  う行を付け加えましょう。

  ______________________________________________________________________
  echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local
  ______________________________________________________________________

  とタイプしてください。

  読者の便宜のために、わたしの /etc/isapnp.conf ファイルの一部を以下に載
  せておきます。（このファイルにはわたしのコメントがついています。もとも
  とあったコメントは、## がついているところです。）

  # 細かなところは、省略しています
  ## (DEBUG)
  (READPORT 0x0203)
  (ISOLATE PRESERVE)
  (IDENTIFY *)
  (VERBOSITY 2)
  (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

  # どういうモデムカードなのかが書かれています。

  ## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e)
  ## Vendor Id GVC5005, Serial Number 256, checksum 0xE2.
  ## Version 1.0, Vendor version 0.1
  ## ANSI string ->LT Win Modem<-
  ##
  ## Logical device id HSM0140
  ##     Device support I/O range check register
  #

  #  GVC5005/256 というカードの設定をしています。

  (CONFIGURE GVC5005/256 (LD 0

  # I/O Base address 0x03f8, with a range of 8
  (IO 0 (SIZE 8) (BASE 0x03f8) )
  # IRQ 4
  (INT 0 (IRQ 4 (MODE +E)))
  # DMA 5
  (DMA 0 (CHANNEL 5))
  # DMA 7
  (DMA 1 (CHANNEL 7))
  # I/O Base Address 2  0x0100, range 8
  (IO 1 (SIZE 8) (BASE 0x0100) )
  # Name of the card
   (NAME "GVC5005/256[0]{LT Win Modem        }")
  # Activitate it
  (ACT Y)
  # End configuration
  ))

  ######## それ以外のわたしの ISA デバイスのパラメータ。 ##############

  ## Returns all cards to the "Wait for Key" state
  (WAITFORKEY)

  3.  モデムドライバのインストール

  この章をすべて読む必要はありません。自分のモデムにあったところだけ読ん
  でください。さしあたっては、LT Modem のインストールについてだけで
  す。Lucent 社のドライバと OpenSource のドライバを使う場合について説明
  します。その他の Winmodem のドライバを書いた、あるいは使ったという方が
  いらっしゃいましたら、そのドライバのソースがオープンかクローズドかにか
  かわらず、わたしにメールをください ( alexandre12@mageos.com )。この章
  に追加いたします。

  3.1.  The LT Winmodem （ Lucent 社提供 )

  URL: http://www.linmodems.org/linux568.zip
  <http://www.linmodems.org/linux568.zip>

  作者: Lucent Technologies

  ライセンス: Non-GPL

  サポート機器: Lucent チップ (Mars family) を使った ISA/PCI モデム

  仕様: カーネルモジュール; シリアルポートのエミュレーション; PPP,Fax,
  Voice が可能

  最新バージョン（わたしが知るがぎり）: 5.68

  付属文書: README

  動作環境: Redhat の 2.2.12 以上のカーネルで loadable module support を
  有効にしてあること

  使用方法: package を解凍して('unzip linux568.zip'), './ltinst' と打つ
  こと。 それだけです！

  発生しうる問題と対処方法:

  o  "insmod: ltmodem: Unresolved symbol(s) *****" と表示されるのは、カ
     ーネルがltmodem に適していないからです。ftp.kernel.org から 2.2.12
     （以上）のカーネルを取ってきて、コンパイル・インストールしてくださ
     い。

  o  "Warning: kernel version mismatch..." と表示されるのは、2.2.12-20
     のカーネルでないからです。警告にすぎず、モデムが動かないわけではあ
     りません。

  o  "ltmodem: init_module: device or resource busy" と表示されたら、原
     因は以下。

     o  LT モデムかその互換製品以外がインストールされているとき。

     o  ISA モデムで、isapnp で設定されていないとき。

     o  PCI モデムで、カーネルの PCI サポートが有効になっていないとき。

  3.2.  LTMODEM プログラム（オープンソース・ドライバ）

  URL: http://www.close.u-net.com <http://www.close.u-net.com>

  作者: Richard Close and Pavel Machek

  ライセンス: GPL

  サポート機器: ISA/PCI modems, with Lucent chipsets (Mars family)

  仕様: ユーザ空間で動作するドライバ ; 音声通話が可能 ; V90 で PPP 不可

  最新バージョン（わたしの知るかぎり）: 0.9.2 (翻訳時: 0.9.8.1)

  付属文書: README

  動作環境: GNU C Compiler, automake

  使用方法:

  o  ( 訳注：解凍・展開 'tar zxvf ltmodem*.tar.gz' とディレクトリ移動 '
     cd ltmodem*' )
  o  PCI の場合 : 'make ; make install' と打つこと。そして  ltmodem とい
     うプログラムを走らせて、モデムの設定をすること。

  o  ISA の場合( README.ISA というファイルを読んでください。) : 'mv
     Makefile Makefile.PCI' および  'mv Makefile.ISA Makefile' と打つこ
     と。 config.h というファイルをエディタで開いて、自分のモデムに適し
     た（ I/O アドレス、DMA,IRQ について）正しい値に変更すること。そし
     て、'make; make install' と打つこと。モデムの設定には、ltmodem とい
     うプログラムを使うこと。

     発生しうる問題と対処方法:

  o  "Sorry, I can" found any modem..."と表示されたら、以下が原因。

     o  モデムが LT modem ではない。

     o  ISA モデムなのだが、isapnp で設定がされていない。

     o  ISA モデムで設定もすんでいるが、ltmodem プログラムが ISA 用にコ
        ンパイルされていない。

     o  PCI モデムで、カーネルの PCI support が有効になっていない。

     o  PCI モデムで、カーネルの PCI support が有効だが、ltmodem プログ
        ラムが PCI 用にコンパイルされていない。

  4.  最後に

  4.1.  ライセンスとコピーライト

  Copyright (C) 2000 Alexandre J.

  このプログラムはフリーソフトウェアです。Free Software Foundation が発
  行する GNU General Public License の第二版またはより新しい版のいずれか
  にもとづいて、再配布および内容の変更が可能です。

  このプログラムは利用者の便宜のために配布されたものであり、法律上の保証
  はいっさいありません。これによりなんらかの損害が生じても、いかなる責任
  も負いません。詳細は、 GNU General Public License
  <http://www.gnu.org/copyleft/gpl.html> をご覧ください。

  このフログラムと同時に、GNU General Public License のコピーを入手して
  ください。お手元にないときは、Free Software Foundation,Inc. までご一報
  ください。住所は以下です。 59 Temple Placd,Suite 330,Boston,MA
  02111-1307 USA

  4.2.  著者への連絡先

  この文書についてなにかご意見があれば、メールをください。
  alexandre12@mageos.com

  4.3.  参考ホームページ

  o  Linmodems プロジェクトホームページ:  <http://www.linmodems.org/>

  o  LTModem プロジェクトホームページ:  <http://www.close.u-net.com/>

  o  Lucent Technologies ホームページ:  <http://www.lucent.com/> (日本サ
     イト <http://www.lucent.co.jp/>)

  o  Linux カーネル:  <http://www.kernel.org/>

  o  isapnptools ホームページ:
     <http://www.roestock.demon.co.uk/isapnptools/>

  o  LDP ホームページ (HOWTO 文書の入手先):  <http://www.linuxdoc.org/>

  o  (訳注)JF ホームページ: <http://www.linux.or.jp/JF/>

  o  (訳注)Linmodem-Mini-HOWTO:
     <http://www.linux.or.jp/JF/JFdocs/Linmodem-Mini-HOWTO.html>

  o  (訳注)Winmodemはモデムでない:
     <http://www.propel.ne.jp/~mako/winmodemj/winmodemj.html>

  4.4.  日本語訳について

  この文書の日本語訳にあたって、JF メンバー、特に武井伸光さん、後藤雅晴
  さん、佐野武俊さん、衛藤誠司さんにお世話になりました。謹んで感謝いたし
  ます。

  尚、Winmodem は 3Com 社の登録商標です。正確には、ソフトウェアモデムと
  表記すべきかと思われます。ただ、翻訳にあたっては、原著者がソフトウェア
  モデムに関する通称として使用したものと解釈してそのままにしました。この
  ことを指摘してくださった、さいとうかんさんありがとうございます。

  千旦裕司 / ysenda@pop01.odn.ne.jp

