NICの設定をしよう!

2008年5月23日(金)
古賀 政純

ドライバの確認手順

 今回は、主に利用される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に割り当てられているドライバを確認しているコマンドです。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています