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

4. 具体的なインストールの方法

4.1 最初にこれを読んでください

前述のバイナリ・ドライバ用のインストールのドキュメントを作成しました。 添付のドキュメントは(仮に存在するとしても)言葉足らずで、非常にまぎら わしいからです。 ここでは、オープンソース・ドライバのインストールについては言及しません。 というのは、普通はそれ自身のドキュメントにうまく記述されていますし、 パッケージからパッケージへ、そして時々劇的に変化するからです。

Conexantドライバのインストール方法は、分かっている範囲で前に書きました。 このドライバは、まだ完全には検証されていません。

あなたは、以下に示す指示に従うのではなく、ドライバに添付されているインスト ールスクリプトを使いたいと思うかもしれません。

開始する前に、どのように進行するのか、そして問題に出くわすかもしれない ところを把握するために、以下の指示を通読しておくべきです。

4.2 ISA

お持ちのモデムが ISA PNP モデムの場合、isapnptools を使って PNP リソース が適切に割り当てられることを確認してください(上の「ISA プラグ・アンド・ プレイ」の項をご覧ください)。

4.3 ドライバパッケージの入手

お持ちのハードウェア用のドライバの適切な URL は、上記の「どの Linmodem ハードウェアがサポートされますか?」の項をご覧ください。

必要に応じて unzip(.zip の場合)、tar -zxvf(.tar.gz の場合)、その他を使って、空のディレクトリでドライバ・パッケージを展開 してください。some-driver.oのような名前のバイナリファイルが 入っているはずです。(次のステップでは例として、モジュールは ltmodem.o という名前にしています)

4.4 モジュール挿入を試す

モジュール挿入の試みは、最初にチェックすべきことです。その結果が必ずしも 最終的な成功を意味するわけではないですが、残りのステップに時間を費やす 価値があるかどうかを示す公平な尺度です。

ファイルが解凍されたディレクトリで、 ltmodem.o をお持ちのモデム 用の適切なモジュール名に変えて、以下のステップを実行してください:

最初に、以下のように単純にモジュールを挿入してみましょう:

    insmod ltmodem.o
以下のように愚痴を言うかもしれません:
  kernel-module version mismatch
  ltmodem.o was compiled for kernel version 2.2.12-20
  while this kernel is version 2.2.14.
  【訳注:このエラーメッセージの意味。
          カーネルモジュールのバージョンが一致しません。
          ltmodem.o はカーネルバージョン 2.2.12-20 用にコンパイルされて
          いますが、このカーネルはバージョン 2.2.14 です。】
こうなった場合は、次のように強制的に挿入します。
   insmod -f ltmodem.o
このようにしてから、カーネルへの挿入が成功したかチェックします:
  lsmod
挿入が成功すると以下のようにltmodem.oを含むリストが表示されます。
Module                  Size  Used by
ltmodem               453200   0  (unused)
nls_iso8859-1           2268   1  (autoclean)
nls_cp437               3744   1  (autoclean)
vfat                    9052   1  (autoclean)
fat                    29248   1  (autoclean) [vfat]:
...

モジュール (ltmodem) が挿入されない場合は、未解決の問題があります。 some-driver.o が、モデム・ハードウェアに適合していないのかも しれません。カーネルと、モジュールがコンパイルされたそれぞれのソースの 間の差がありすぎるのかもしれません。または、そのモジュールは、 前もってロードされる別のモジュールを必要としているのかもしれません。 (PCTel パッケージには、2つのモジュールを持つものがあります。 この二つの挿入する順序を逆にしてみたらどうでしょう?)。 これまでの努力を完全に放棄する前に、バージョンがぴったりと一致するカーネル をインストールし、テストしてみるとよいでしょう。 Linux カーネル のソースファイルはダウンロード可能であり、コンパイル済みのカーネルは多くの Linux ディストリビューションで利用できます。

挿入が成功したら、先に進む価値があります。

4.5 モジュールとカーネルバージョンの調整

4.6 必要かつ希望するなら 2.2.14 ppp.o をフィックスする

Lucent または ESS モデムを持っていて、しかもカーネルが 2.2.15-x より新しい なら、2.2.14 ソースからの ppp.o を使用する必要があります。 このモジュールのコピーは、下記から入手できます http://walbran.org/sean/linux/stodolsk/ppp2214.o.

これは、以下で説明するようにして、適切な /lib/modules/`uname -r`/net ディレクトリにコピーできます。 insmod -f ppp.o で強制することを避けるために、ここで説明する カーネル・バージョン 2.2.17 の不一致の例のように、不一致の ppp.o は バージョンをフィックスすることができます。

  1. su root および、パスワードを入力します。 ワーキングディレクトリを cd /root/modem に変更します。
  2. モジュールバージョンを実行中のカーネルバージョンに合わせます: fixscript ppp2214.o pppfix.o
  3. オリジナルのモジュールが既にロードされているなら、カーネルから それを削除します: rmmod ppp
  4. insmod pppfix.o で不一致の愚痴を言うことなく進行します。
  5. lsmod で、ppp が挿入された一覧表が表示されます。
  6. このようになったら、最後にオリジナルのモジュールをセーブします。 /lib/modules/2.2.17/net/ppp.o があることを確認し、リネ ームします:
    mv /lib/modules/2.2.17/net/ppp.o /lib/modules/2.2.17/net/ppp2217.o
    
    そして、修正した pppfix.o を置きます。
    cp pppfix.o /lib/modules/2.2.17/net/ppp.o
    

4.7 モジュールをモジュールディレクトリにコピーする

他のモジュール (例えば ltmodem.o,esscom.o, pctel*.o) を、下記ディレクトリにまだコピーしていないなら。

/lib/modules/`uname -r`/misc/

4.8 デバイスファイルを作成する

root 以外のユーザがこのデバイスを使ってダイヤルすることを許可するには、 ファイル・パーミッションをセットします。例えば、
  chgrp uucp /dev/ttyS14
  chmod 666 /dev/ttyS14
グループの定義は /etc/group で変更できます。

4.9 /dev/modem をデバイスファイルにリンクする

ln -s /dev/yourdevicefile /dev/modem

【訳注:yourdevicefile は、実際は ttyS14 とか ttyS15 です】

4.10 モジュールをカーネルに挿入する

注: 前記の「モジュールとカーネルバージョンの調整」のステップを省略した 場合、ここで "insmod -f" を使用する必要があります。

4.11 シリアルポートの設定を変更する

多くの場合、Linux システムでは新しい "serial" デバイス /dev/ttyS14 または 15 の追加を通知する必要があります。

古いカーネル (2.0.x)

利用可能なドライバは、カーネルバージョン 2.2.x (x は10台)用にコンパイル されている傾向があります。しかし、何らかの理由でカーネルのアップデートが できない/したくない場合のために、 Werner Heuser (wehe(at)snafu.de) が 以下のような古いカーネル用の助言をしています。

カーネル 2.0.x では、シリアルポートはシリアルドライバのソース自身、つまり /usr/src/linux/drivers/char/serial.c の中で定義されています。 2.1.98 以降では、これらは /usr/src/linux/include/asm-i386/serial.h に移され、かつカーネル・コンフィグレーション中は CONFIG_SERIAL_MANY_PORTS, MULTIPORT, SHARE_IRQ を必要とします。 デバイスファイルの適切な行を変更することができます。 たとえば、

       /* UART CLK   PORT IRQ     FLAGS        */
...
       { 0, BASE_BAUD, 0x000, 0, 0 },        /* ttyS14 (spare; user configurable) */
       { 0, BASE_BAUD, 0x000, 0, 0 },        /* ttyS15 (spare; user configurable) */
のどちらかの行を、
       { 0, BASE_BAUD, 0x0260, 3, STD_COM_FLAGS}},
のように、あなたのハードウェア用に適切なポート/IRQ で、変更します。 これらの変更をした新しいカーネルをブートするとき、以下のようなメッセージ が表示されるでしょう。
Serial driver version 4.13 with no serial options enabled
【訳注:シリアルオプションを有効にしていないシリアルドライバ version 4.13】
tty00 at 0x03f8 (irq = 4) is a 16550A
tty14 at 0x0260 (irq = 3) is a 16550A

新しいカーネル

最近の Linux カーネルでは、通常 /etc/serial.confようなスクリプト ファイル とプログラム setserial が、シリアルポートのパラメータを 管理するために使われます。 その設定は、明らかに選択したカーネル/ディストリビューションに依存します が、たぶん新しいデバイスに適応させるために修正する必要があります。 このような修正のために最も参考になるのが、David S. Lawyer の優れた Serial HOWTO で、特に Setserial のセクションです。特に、彼はここで「ラップトップ(PCMCIA)では決して setserial を使わないように」と注意しています。 ご使用のディストリビューションのドキュメントは、特定のデフォルトと使用 されている初期化スクリプトについて、より多くの情報を提供しているはずです。

例えば Sean の Lucent LT モデム付きラップトップは、Red Hat 6.2/kernel 2.2.14-5 を実行していますが、/etc/serial.conf を修正する必要 がありません(実際は存在しません)。 しかし Debian をインストールした Marvin の PCI Lucent winmodem は、 /etc/serial.conf ファイルに以下のセクションが必要です。


# These are two spare devices you can use to customize for 
# some board which is not supported above....
#
#Lucent Modem driver version 4.27.5.66
#  ltmodem.o was compiled for kernel version 2.2.12-20
#  with MANY_PORTS MULTIPORT SHARE_IRQ enabled
#  ttyS14 at 0x0260 (irq = 3) is a Lucent
/dev/ttyS14 uart 16450 port 0x0260 irq 3
#/dev/ttyS15 uart XXXXX port XXXX irq X
# These are the ports used for either the Usenet Serial II
# board, or the Boca Board 4, 8, or 16 port boards.

あなたの特有の設定で、割り込み(IRQ)の割当てが衝突するものは何であろうと 通常は避けるべきです。 シリアルポートのプロパティ情報は、次のようにして表示できます:

   setserial -agv /dev/ttyS*
これは、以下のような情報を返します:
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test session_lockout

/dev/ttyS14, Line 14, UART: 16950/954, Port: 0x0260, IRQ: 3
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

4.12 最小のターミナルプログラムで試してみましょう

ここで、あなたはたぶん minicom のような小さなターミナルプロ グラムでダイアリングを試してみたいと思うでしょう。

4.13 ppp ダイアラの設定

これらのスクリプトの名前と位置は、特定の Linux ディストリビューション (Redhat, Debian, Suse およびその他色々)と、(kppp や wvdial のような)特定 のダイアルアップを仲介するソフトウェアに依存します。 多くのディストリビューション/ダイアルアップ・ソフトウェアには、入力を要求し 、自動的にダイアルアップ・スクリプトを作成する設定ユーティリティがあります。 最低限必要な情報は以下のとおりです。

何か問題が起きたら PPP ダイアラのドキュメント、および/または、 PPP-HOWTO をご覧ください。 Debian での pppconfig の特定のサンプルのスクリプトが付録にあります。

4.14 ダイアルアップ

ppp ダイアラで ISP への接続を試してみてください。

動いた!

おめでとう!

動かない!

ちくしょう!

それを解決するための若干のアイデアについて、この HOWTO の トラブルシューティングと FAQ のセクションをご覧ください。

4.15 インストール後

ダイアルするたびにモジュールをカーネルに挿入することを避けるには、 付録の「ppp 関連モジュールの挿入と削除の一致」の項をご覧ください。


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