NICの設定をしよう!
ドライバの確認手順
今回は、主に利用されるbnx2ドライバ、tg3ドライバ、e1000ドライバの対応状況を確認する手順を示します。まず、HP製ドライバが含まれるProLiant Support Packを任意のLinuxシステム上の/tmpに展開します。
# tar xzvf psp-8.00.sles10.x86_64.en.tar.gz -C /tmp/
次に、PSP(ProLiant Support Pack)に含まれるNICドライバの存在するディレクトリに移動します。
# cd /tmp/compaq/csp/linux
NICドライバbnx2、tg3、e1000ドライバのtar ballをそれぞれ下記コマンドで展開します。
# tar xzvf bnx2-1.7.1d-1.src.rpm.tar.gz
# tar xzvf tg3-3.81e-1.src.rpm.tar.gz
# tar xzvf e1000-7.6.9.1b-1.src.rpm.tar.gz
NICドライバのtar ballに付属しているテキストファイルを読みます。
# less bnx2-1.7.1d-1.src.txt
# less tg3-3.81e-1.src.txt
# less e1000-7.6.9.1b-1.src.txt
テキストファイルには、対応NIC、OSなどが記載されていますので、装着されているNICを確認します。もしインストール対象の物理NICが上記のテキストファイルに記載されている場合は、PSPに含まれるドライバが適用可能であることを意味します。図3はbnx2ドライバでサポートされるNICとOSを確認している様子です。
どのNICドライバが組み込まれているかの確認
OSに付属しているNICドライバ、またはPSPに含まれるNICドライバを利用する際、どちらのドライバがインストールされており、現在どちらのNICドライバを使って動作しているのかを確認しておく必要があります。以下は、Broadcom社製NICを搭載したサーバ上で、NICインタフェースにbnx2ドライバが組み込まれているかどうかを確認する手順を紹介します。
まず、bnx2 RPMパッケージがインストールされているか確認します。
# rpm -qa |grep bnx2 ←bnx2パッケージがインストールされれているか検索
bnx2-1.5.10d-2 ←bnx2-1.5.10d-2というバイナリがインストールされている
bnx2 RPMパッケージがインストールされている場合は、ProLiant Support Packのbnx2ドライバがインストールされていることを意味します。
次に、カーネルモジュールbnx2.koがどのRPMパッケージに所属しているかを確認します。
# cd /lib/modules/2.6.16.46-0.12-smp/kernel/drivers/net
# rpm -qf ./bnx2.ko ←bnx2.koがどのRPMパッケージに所属しているかを確認
kernel-smp-2.6.16.46-0.12 ←bnx2.koがkernel-smp RPMパッケージに所属している
上記のようにbnx2.koがkernelのRPMパッケージに所属している場合は、bnx2ドライバはPSPではなくSLES10カーネル標準のものが利用されます。一方以下のように、bnx2 RPMに所属している場合は、PSPに付属しているbnx2ドライバが利用されます。
# cd /lib/modules/2.6.16.46-0.12-smp/kernel/drivers/net
# rpm -qf ./bnx2.ko ←bnx2.koがどのRPMパッケージに所属しているかを確認
bnx2-1.5.10d-2 ←bnx2.koがbnx2 RPMパッケージに所属している
カーネルにbnx2モジュールがロードされているかを確認します。
# lsmod |grep bnx2 ←現在bnx2ドライバがロードされているか確認
bnx2 142700 0 ←bnx2がロードされていることが分かる
NICにbnx2が割り当てられているかを確認します。SLES 10では、/etc/sysconfig/hardwareディレクトリ以下にあるhwcfg-bus-pci-という文字列で始まるファイルの中身を確認することで、PCIバス上に存在する物理NICとドライバの対応関係を確認することが可能です。
# cd /etc/sysconfig/hardware
# cat hwcfg-bus-pci-0000\:03\:01.1 |grep MODULE= ←ドライバの対応を確認
MODULE='bnx2' ←PCIバス0000:03:01.1に存在する物理NICに対してbnx2ドライバが対応
さらに各インタフェースにbnx2がロードされているかを確認します。
# for j in seq 0 1; do ethtool -i eth$j; done ←ethtoolコマンドでeth0とeth1の情報を確認
上記の例は、eth0とeth1に割り当てられているドライバを確認しているコマンドです。