ネットワークインターフェイスの状況を調べるには
ネットワークに接続できなかったり、接続はできるが妙に通信に時間がかかることがある。そのようなときは、ethtoolコマンドでネットワークインターフェイスの状況を調べてみる。正常に動作していれば、以下のように表示される。
# ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) Link detected: yes
イーサネットケーブルが抜けている場合は、「Link detected : no」と表示される。
# ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: Unknown! (65535) Duplex: Unknown! (255) Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) Link detected : no
また、1000BASEのNICを使用しているのにスピードが「100Mb/s」だったり、デュプレックスが「half」になっている場合はハブとの相性やケーブルの不具合などが考えられる。ethtoolコマンドを実行して、[Speed]や[Duplex]の値がおかしいときは、以下のように強制的に修正して、状況が改善されるかどうかを確認する。
# ethtool -s eth0 speed 100 ←速度を100Mb/sに設定 # ethtool -s eth0 duplex full ←デュプレックスをfullに設定
Fedora Core 2をフルインストールすれば、ethtoolもインストールされる。Turbolinux 10 DesktopやVine Linux 2.6は、ethtoolを別途ダウンロードして、インストール(またはコンパイル)する必要がある。
ethtoolは(http://sourceforge.net/projects/gkernel/)からダウンロードできる。また、rpmfind.net(http://www.rpmfind.net/)で、RPMファイルをダウンロード可能だ。Turbolinux 10 DesktopおよびVine Linux 2.6には、ethtool-1.8-1.i686.rpmをインストールすることができた
# rpm -ihv ethtool-1.8-1.i686.rpm
ちなみに、同様のツールとしてmii-toolもよく使われる。しかし、mii-toolは(少なくとも原稿執筆時点では)1000BASEのNICに対応していないので注意が必要だ。