NIC=?ISO-2022-JP?B?GyRCJE4lPSVVJUglJiUnJSIhPCU7JUMlSBsoQg==?= (=?ISO-2022-JP?B?GyRCJU8hPCVJJSYlJyUiITwlaiU7JUMlSBsoQg==?= )=?ISO-2022-JP?B?GyRCSn1LISRPISkbKEI=?=
M. Takeyamaです。 #koyamaさんの質問の視点を変えてみました。 <私の認識> SUSE Linux から見た場合のNICを認識しない/認識する #つまりローカルなマシーンのNICの状態 #(IPがついていればOKじゃない?) <koyamaさんの認識> Hubに接続したとき、他のPCやサーバと通信できるかどうか? #IP的に他の機器を疎通できるかどうか==NICを認識しない/認識する というようなズレがあるのではないでしょうか? つまり、PC(ノート)を起動したままNICを差し替えた(HUB接続など) 時などにNICの相性問題が発生して通信ができなくなっている状態が 発生しているように思えます。それを”NICを認識しない/認識する” という言葉で言っておられるような... #HUB <->PC(ノート)を接続したままコールドスタートしたときは、NICに #ハードウェアーリセット(その後はautoネゴなどをしているはず)がかかり #問題が発生しない。 <確実な解決法> /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なのでドライバーまわりが変更になって います。 #明示的に、ソフトウェアーセットをかけてやるような処理が必要が #ある場合があるのではないでしょうか。 ^^^^^^^^ ちなみになのですが... MS-Windows 2000以降(Windows XP, Windows 2003)はNICの設定を変更しても ソフトウェアーリセットはかかる。(変更後はすぐに反映されますね。経験上) MS-Windows 98系以前(ME, 98, 95)などはNICの設定を変更後は、システムを リブート(ハードウェアーリセット)しないとダメですね。 #ということで、SUSE Linux 9.x が他のOSと比較して必ずしも使いずらい #とは思っていません。 ----- M. Takeyama __________________________________ Do You Yahoo!? Upgrade Your Life http://bb.yahoo.co.jp/
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
M. Takeyamaです。
On Wed, 29 Dec 2004 00:43:09 +0900
Kanichi KOYAMA
koyamaです。
Takeyamaさん、Shimosakoさんありがとうございます。 前記の件、アドバイスを頂き解決しました。 なんか。問題が解決して良かったですね。
適切な説明の言葉が見付けられず下手な状態になっていたことをお詫びします。 いえいえ。 (えーと。慣れてくださいね。) #ある程度問題点が整理されていると(切り分けができている) #適切な答えも得られ易いということで。
[...]
今回のハードでは正常時には8139tooというモジュールがロードされていました。 # rmmod 8139too でアンロードし、 # modprobe 8139too 再ロードしたところ、無事正常に戻りました。
次にNICにケーブルをつながず起動したところlsmodでは、案の定8139tooがロードされていません。 (以前、早とちりしてこれがあるものと勘違いしていました) そこで、 # modprobe 8139too とすると、ifconfig -aの結果で、eth0が見付かりました。 やはりkernel2.6系では若干違うようですね。非常に勉強になりました。 そうですか。 #私の方ではドライバ(今回は 8139too)なり, NIC がとち狂って #いてのではないかと思っていたのですが、起動時に接続されて #いないとロードされないのですね。 #(RealtekのNICって、個人的にはあまりトラブルにあったことないです。)
少なくとも、Linux 2.4.19にバンドルされた 8139too(0.9.25)には バグがあるみたいです。 ifplugdのドキュメントの中に、8139tooのドライバが問題 ありそうな記述がありました。 http://0pointer.de/lennart/projects/ifplugd/#documentation ifplugdでも完全にshutdownしているインターフェイス(kernel 2.4.19以降で) のlinkを検出できないみたいです。 (8139tooのドライバって、なんか挙動が違うのかな?) #8139too.c.0.9.26.patch #(ifplugd-0.25のpatchesの下にファイルがあります。) <まとめ> 今回は、どうもドライバ側にも問題がありそうな気がしますが、 ハード/ソフトの問題切り分けの為にも、NICのチップ情報とか 使用されているドライバーの情報があるともっと早く問題を解決 できたかもしれません。 #”FMV-MT850(ノートPC)”というハードウェアー情報だけでは #少ないすぎたということでしょうか。(あくまで今回は。) ----- M. Takeyama __________________________________ Do You Yahoo!? Upgrade Your Life http://bb.yahoo.co.jp/
participants (2)
-
Kanichi KOYAMA
-
M. Takeyama(takezou)