さあ、楽しい機械いじりの時間です。子どものころ、お母さんが 後ろを向いているすきを見計らって大事なミニカーを分解したこ とを思い出しながらねじ回しを握りましょう。
注意:機械に NIC を組み込む前に、ネットワーク無しの状態で ちゃんと動くよう設定してください。Linux 機は DOS でも立ち上 がるよう用意しておいてください。
以下では NIC 設定の手続きを機種ごとに説明します。どの時点で NIC を挿入するかは機種によって異なりますので、それぞれの説明を参照 してください。
ここから先で、Linux の割り込み番号と IO ポート番号の割り振りの 調査を行い、3C509 の割り込み番号設定と IO ポート番号設定の 説明、最後に PnP の無効化をします。これらの作業は他の ISA カード でも同様と思われます。また、PCI 版の製品を買った人は、これらの 作業をせずに挿すだけです(多分。少なくとも私の 3C590 はそうでした)。 ただ、 PCI といえども念のためにカードを挿す前に割り込み番号と IO ポート番号を控えておきましょう。こういう習慣はいつの日か、ひどい目に あったときに何らかの救いになります。
NIC を挿す前にあなたの Linux 機についているオプション類の IO ポー トアドレスを知る必要があります。これは、NIC と他のデバイスがぶ つからないようにする為です。すでに Linux が働いているなら、これ はたやすい作業です。ログインして、
cat /proc/ioports
を実行してください。すべてのデバイスのアドレスが表示されます。これを
ノートに書き写します。以下は私の部署の機械の例です。
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-0060 : kbd
0064-0064 : kbd
0070-007f : rtc
0080-009f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00f1 : npu
00f8-00ff : npu
01f0-01f7 : ide0
0300-030f : 3C509B
0340-035f : aha152x
03bc-03be : lp
03d4-03d5 : ega+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
左の2つの数字は、デバイスが割り当てられている IO ポートアドレスの範囲、
右の名前はデバイス名です。すでに 3C509B が組み込まれているのがわかります。
当然ですが、あなたの機械ではまだ 3C509B は現れません。
次に同様に IRQ の番号を調べます。
cat /proc/interrupts
これもノートに記録します。以下は私の部署の機械の例です。
0: 125984732 timer
1: 2 keyboard
2: 0 + cascade
10: 276614 3C509B
11: 3445 + aha152x
13: 0 math error
14: 1095770 + ide0
左端の数が、IRQ です。2番目の数は無視してください。右の名前はデバイス名です 。
Linux がまだ満足に動いていなければ、がんばってちゃんと動くように仕上げてく ださい。以上の作業が終わったら機械をシャットダウンし、 NIC を挿します (電源を落としてからですよ)。
次に非常に大事な作業があります。3COM の 3C509B は、Plug And Play 対応です。
まだ Linux は PnP に未対応である為に、時折厄介な問題が起きます。そこで3C509B
の PnP を無効にしなければなりません(くどいようですが、PnP を無効にするのは ISA カードの場合だけです。 PCI では考えなくて結構です。 )。
3COM のカードに限らず、Linux で使用するカードは PnP を無効にした 方がいいでしょう。 3C509B には、DOS の英語モードで動く設定 ソフトウェアが付いてきます。これに対応するマニュアルも英語です。この二つを 頼りに、PnPを無効にしなければなりません。しかし、決して難しい英語ではありま
せんし、読まなければいけないのも数ページですのでがんばって乗り切ってください
(日本語マニュアルのついているものもあるようです)。 また、設定ソフトウェアを使用するために DOS で起動する必要があります。これ はフロッピーからでも構いません。ただ、Linux 専用機でも保守の為に20MB程度の
DOS 起動パーティションをハードディスクに設けておく方があとあと便利です。
この設定ソフトは、PnPの他にもいろいろなオプションをいじれますが、間違 っても Ethernet Address をいじってはいけません。
さて、ここで、先に記録した IO ポートアドレスと IRQ の登場です。説明書と 見比べて、工場出荷時の 3C509B の IO ポートアドレスと IRQ が、現在の Linux の
使用済みのものとぶつかっていないか調べてください。ぶつかっていなければ、 PnP を無効にするだけでおしまいです。ぶつかっていれば、PnPを無効にしたう えで、3C509B の IO ポートアドレスと IRQ を変更します。当然、ぶつかっている ほうだけを変更します。
以上のような設定ソフトによる割り込み番号と IO ポートアドレスの変更は 3C509B 以外でも似たり寄ったりです。ひょっとすると 設定ソフトではなく ジャンパーで設定するような NIC もまだあるかもしれません。
さて、NIC の変更が終了したら、設定ソフトをぬけて機械を再起動し、Linux を立ち上げます。
くどいようですが、PCI カードの場合は、黙って挿し込むだけです。とくに カードのための設定ソフトを使用することはありません。
うまく行かないようなら、Ethernet-HOWTO、PCI-HOWTO、ハードウェアの 取扱説明書、この文書をよく読み直してください。
カードの設定が終わりましたので、 Linux 側をカードに対応する作業に進み ましょう。この作業は ISA に限らず PCI カードでも必要になります。
私は Slackware しか使ったことがありませんが、2.0.x カーネルでは、だいた いネットワーク対応に作っているようです。つまり、ネットワークを使用する ために特別にカーネルを入れ替えたり、カーネルコンパイルをする必要はあり ません。
Slackware では、ネットワーク対応は、いったん Linux の基本部分の導入を 終えてから行 います。そこで、最初の Slackware の導入は、ネットワークサポート無し で行っておいて下さい(ネットワークありでも構いませんが、設定はこの文書を読ん でか らのほうが気が楽です)。Slackware 3.1 では、導入時にどのようなカーネルを 使用するか聞いてきます。しかし、特にネットワーク云々を指定しなくても、 NIC ドライバは起動時に動的に読めるので問題無く働きます。
さて、 NIC の設定です。 NIC ドライバを起動時に読み込むために、/etc/rc.d/rc.modules を編集 します。これが NIC に対する Linux 側の設定となります。
Linux は、起動時 にデバイスドライバーを動的に読み込む機能をもっています。古いカーネルで は、デバイスドライバーはカーネルのなかにコンパイル時に埋め込まれていた のですが、モジュール機能が追加されたことによって、このように動的にドラ イバーを読み込めるようになりました。
/etc/rc.d/rc.modules は、各種のモジュールを起動するための仕掛けを記述 しています。これは modprobe と呼ばれ、指定されたデバイスがどこにあるか を見つけ、必要なパラメータを設定して起動します。これのおかげで NIC 対応は大変楽です。作業は簡単です。まず、
# Network Device Support
と書かれた行を探してください。そこから先が NIC ドライバモジュールのた めの記述の先頭です。ここでほとんどの行は # マークでコメントアウト されています。これは、全部のデバイスを探していると、とんでもない時間が かかるためです。これらの行は
#/sbin/modprobe DEVICENAME
の形式になっています。この DEVICENAME が NIC の名前ですので、自分のカード を探しましょう。3C509B ならば、コメントをはずすだけで大丈夫のはずです。 つまり、頭の # をはずして
/sbin/modprobe 3C509
と変更します。
上は 3C509B の例ですが、 NE2000 互換カードの場合、この行の後ろに IO ポートアドレスを指定しなければ なりません(rc.modules に書いてあります)。また、デバイス名が ne であることに
注意してください。以下のようになります。
/sbin/modprobe ne io=0x300
このファイルを保存して、設定を終了してください。Linux を再 起動してNIC が正しく認識されたか調べます。起動時にメッセージを見逃しても、 dmesg コマンドを使用すれば、起動時メッセージをログイン後に見ることができま す。正しく認識されているならば作業はおしまいです。
NIC が正しいようなら、ついでに配線の確認もしましょう。LED つきのハブを使用 しているなら、ハブの電源をいれます。このとき、Linux 機の NIC と、ハブの LED を 調べて、「キャリア検出」が行われているかどうか確認します。キャリア検出とは 、NIC とハブの間で電気信号のやり取りが可能であることを確認するための作業です 。 この LED がついているならば、配線はある程度大丈夫です。
最初は NIC を挿さずにいてください。
まず各デバイスの IO ポートアドレスと IRQ を調べるために Windows を起動し ます。「コントロールパネル」の「システム」を開いて「デバイスマネージャ」 タブを開きます。この時点で、デバイス同士の衝突がある場合、そのデバイスド ライバのアイコンにびっくりマークがつきますので、注意深く見てください。
びっくりマークが出ている場合、システムの設定に問題があります。これを解決 してから先に進んでください。
ここで NIC を挿します(電源を落としてですからね)。
NIC が Windows95 対応のシール付きならば、そして BIOS が PnP が対応ならば、 さらに他の機器がすべて PnP が対応ならば、そうでない場合、ICU による設定が 正しいならば、そうした上で Microsoft の主張が正しいならば、Windowsは起動 時に NIC を見つけ、正しいドライバを導入します。
先ほどと同様な手順で、デバイスマネージャを見ます。衝突がないことを確認して ください。衝突があったら…全力で解決してください。あなたはお金を払ってNIC やコンピュータや Windows を買ったのですから、メーカーに質問するのも手です。
この文書は…残念ながら PnP-HOWTO ではありません。
事が順調にすすめば、NIC の設定は終わりです。
NIC が正しいようなら、Linux 機同様に配線の確認をしましょう。ハブの電源をい れ、Windows 機の NIC と、ハブの LED を調べて、「キャリア検出」が行われている
かどうか確認します。この LED がついているならば、配線はある程度大丈夫です。
MacOS に関しては、NIC を使用したことがありませんので何も言えません。 申し訳ありません。Performa の特定機種に関しては、設定が難しいものも あるようです。マニュアル等を参照してください。
MacOS 機でも、Linux 機や Win95 機同様キャリア検出の確認を行います。Mac は機
種によってはキャリア検出 LED が本体ではなく Ethernet アダプタ側にありますの
で注意します。