koyamaです。 Takeyamaさん、Shimosakoさんありがとうございます。 前記の件、アドバイスを頂き解決しました。 適切な説明の言葉が見付けられず下手な状態になっていたことをお詫びします。 <補足>
つまり、PC(ノート)を起動したままNICを差し替えた(HUB接続など) 時などにNICの相性問題が発生して通信ができなくなっている状態が 発生しているように思えます。それを”NICを認識しない/認識する” という言葉で言っておられるような...
これですが、PCを起動したままNICをインターネット接続しているHUBから 別の実験ネットワーク(非インターネット、スター状接続)に持って来たときは 通信できるのです。 この場合、最初の起動時にNICを認識(DHCPからIPをもらう)しているので、ifconfig -aの結果は ----------------------------------------------------------- eth0 Link encap:Ethernet HWaddr 00:0B:5D:52:05:87 略 Interrupt:11 Base address:0xa000 lo Link encap:Local Loopback 略 RX bytes:400 (400.0 b) TX bytes:400 (400.0 b) sit0 Link encap:IPv6-in-IPv4 略 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) ----------------------------------------------------------- となります。 ここから、実験ネットワーク構成にもってきて、他のPCと何らかのテスト開発アプリで接続したい場合、 IPアドレスを決めうちしているとします(192.168.0.10など)。そうすると192.168.0.2から一時的 に変更したいので、 ============================= ifconfig eth0 192.168.0.10 up ============================= として一時的に192.168.0.2から192.168.0.10に変更しました。(以下、ifconfigの結果です) ----------------------------------------------------------- eth0 Link encap:Ethernet HWaddr 00:0B:5D:52:05:87 inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20b:5dff:fe52:587/64 Scope:Link 略 Interrupt:11 Base address:0xa000 lo Link encap:Local Loopback 略 RX bytes:400 (400.0 b) TX bytes:400 (400.0 b) ----------------------------------------------------------- これだと問題ありません。 ただ、起動時にNICにケーブルを指していない状態では、ifconfig -aで出力されるのは ----------------------------------------------------------- lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:400 (400.0 b) TX bytes:400 (400.0 b) sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) ----------------------------------------------------------- のみです。eth0が見当たりません。 通常であれば、eth0があり、inet addr:************ の行がないだけでは?と思って いたので、「認識されていない」という言葉を使いました。 !!ただ、ここで大きな勘違いをしていたようです!! きっかけはShimosakoさん、Takeyamaさんのメールを読んでいて、自分のログを見て気が ついたのですが、「認識されていない」という状況ではモジュールがロードされていない状態 でした(すみません。モジュールがロードされているのにeth0がない!と勘違いしていました)
<確実な解決法> /etc/init.d/network stop;
lsmod でNICのドライバーを探し出して そのネットワークドライバーをunloadする。 /etc/init.d/network start; #このとき、NICのドライバーが再ロードされるはず。 これで、ソフトウェアーセットをかけた状態と同じになると 思いますので
Distroならば”# /etc/init.d/network restart” でOKというフレーズは、 --> 他のDistroはまだ kernel 2.4系が多いはず。 SUSE Linux 9.xは、kernel 2.6なのでドライバーまわりが変更になって います。 #明示的に、ソフトウェアーセットをかけてやるような処理が必要が #ある場合があるのではないでしょうか。 ^^^^^^^^
今回のハードでは正常時には8139tooというモジュールがロードされていました。 # rmmod 8139too でアンロードし、 # modprobe 8139too 再ロードしたところ、無事正常に戻りました。 次にNICにケーブルをつながず起動したところlsmodでは、案の定8139tooがロードされていません。 (以前、早とちりしてこれがあるものと勘違いしていました) そこで、 # modprobe 8139too とすると、ifconfig -aの結果で、eth0が見付かりました。 やはりkernel2.6系では若干違うようですね。非常に勉強になりました。 これで、実験環境でも何不自由なく使えるようになりました。
ちなみになのですが... MS-Windows 2000以降(Windows XP, Windows 2003)はNICの設定を変更しても ソフトウェアーリセットはかかる。(変更後はすぐに反映されますね。経験上) MS-Windows 98系以前(ME, 98, 95)などはNICの設定を変更後は、システムを リブート(ハードウェアーリセット)しないとダメですね。 #ということで、SUSE Linux 9.x が他のOSと比較して必ずしも使いずらい #とは思っていません。
そうですね。SuSEは本当に使いやすいDistributionだと思います。 パッケージ管理しかり、システムしかり、開発環境としても使いやすく、必要なパッケージ がそろっています。 嬉しい限りです:)。 本当にありがとうございました。 Kanichi KOYAMA