Linux* 基本ドライバー README (インテル® PRO/1000 シリーズアダプター向け)
このページでは、インテル® PRO/1000 シリーズアダプター向け Linux 基本ドライバーに同梱されている README の日本語訳を掲載いたします。
はじめに
このファイルは、インテル® PRO/1000 シリーズアダプター向け Linux* 基本ドライバー Version 5.2.x についての説明です。このドライバーは 2.4 系列カーネルに対応しています。現在のところ 2.4 系列カーネルでは 2.4.20 まで正しくビルド可能であることを確認しています。 インテルでは主にカーネル 2.4.20 が動作するインテル® プロセッサー ベースシステムにてテストしています。なお、このドライバーには Itanium® ベースシステムへの対応も含まれています。
このドライバーは、現在のところローダブルモジュール形式でのみサポートされています。インテルでは静的リンクできるようにするためのパッチなどは提供しておりません。 ハードウェア条件などに関する質問については、インテル® PRO/1000 アダプターに同梱のドキュメントをご参照ください。リストにあるハードウェア必要条件はすべて Linux と共に使用するためにも当てはまります。
- カーネルネイティブの VLAN をサポートしています。
- /proc ファイルシステムで表示されていたドライバー情報は、このリリースではサポートされていません。代わりに、 ethtool (バージョン 1.6 以降)、lspci、ifconfig などを使用して同様の情報を取得することができます。なお、このドキュメントの追加設定・その他の項にて、 ethtool のアップデート方法を説明しております。
対応アダプター
下記のインテル® ネットワーク・アダプターが、本ドライバーとの互換性を有しています。 アダプター名は英語原文のままです。また、日本国内で販売されていないものも含まれています。
| コントローラー |
アダプター名 (英語) |
ボード ID |
| 82542 |
PRO/1000 Gigabit サーバーアダプター |
700262-xxx, 717037-xxx |
| 82543 |
PRO/1000 F サーバーアダプター |
738640-xxx, A38888-xxx |
| 82543 |
PRO/1000 T サーバーアダプター |
A19845-xxx, A33948-xxx |
| 82544 |
PRO/1000 XT サーバーアダプター |
A51580-xxx |
| 82544 |
PRO/1000 XF サーバーアダプター |
A50484-xxx |
| 82544 |
PRO/1000 T デスクトップ・アダプター |
A62947-xxx |
82540 82541 |
PRO/1000 MT デスクトップ・アダプター |
A78408-xxx C91016-xxx |
| 82545 |
PRO/1000 MF サーバーアダプター |
A91622-xxx |
| 82545 |
PRO/1000 MF サーバーアダプター (LX) |
A91624-xxx |
| 82545 |
PRO/1000 MT サーバーアダプター |
A92165-xxx |
| 82546 |
PRO/1000 MT Dual Port サーバーアダプター |
A92111-xxx |
| 82546 |
PRO/1000 MF Dual Port サーバーアダプター |
A91620-xxx |
| 82546EB |
PRO/1000 MT Quad Port サーバーアダプター |
C11227-xxx |
| 82546GB |
PRO/1000 MB Dual Port サーバーアダプター |
|
| 82546GB |
PRO/1000 MB Dual Port ネットワーク・コネクション |
|
| 82547 |
PRO/1000 CT ネットワーク・コネクション |
|
|
お手持ちのアダプターが対応しているか確認するには、まずアダプター上のボード ID 番号をご確認のうえ、上のリストをご参照ください。 ボード ID は、基板の表面にバーコードと数字が印字されているラベルに、 A12345-001 のような書式で記載されております。
アダプターの識別方法の詳細につきましては、ネットワーク・アダプター & ドライバー識別方法の情報をご確認ください。
最新の Linux 向け PRO/100 ネットワーク・ドライバーは、こちらからダウンロード可能です。
ビルドとインストール
本ドライバーのバイナリー RPM* パッケージを作成するには、 ’rpmbuild -tb <filename.tar.gz>’ と実行してください。なお、 <filename.tar.gz> はダウンロードしたドライバー名に書き換えてください。
| 注意: |
ビルドを正しく行なうには、 "使用しているカーネルと同じ" バージョン設定のカーネルソースがインストールされている必要があります。 |
- 多くのディストリビューションでは、標準インストールでカーネルソースをインストールしませんので、予め組み込んでからビルドしてください。
- カーネルコンパイルをしたばかりの場合は、一度システムを再起動してください。 RPM 機能は RedHat ディストリビューションでのみ確認しております。
ベースドライバーの tar ファイルを、任意のディレクトリーに移動してください。 (使用するディレクトリーの例) /home/username/e1000 または /usr/local/src/e1000
ファイルを展開してください。ここでの <x.x.x> はドライバーのバージョン番号です。
tar xfz e1000-<x.x.x>.tar.gz
ドライバーのソースがある src ディレクトリーに移動してください。 x.x.x は先程と同じドライバーのバージョン番号です。
cd e1000-<x.x.x> /src/
ドライバーモジュールをコンパイルしてください。
make install
これによりバイナリーが下記の場所にインストールされます。
/lib/modules/ <KERNEL_VERSION> /kernel/drivers/net/e1000.o
| 注意: |
上記の場所はデフォルトですが、 Linux のディストリビューションによっては異なることがあります。 |
モジュールを組み込みます。
insmod e1000 <parameter>=<value>
IP アドレスをインターフェイスに割り当ててください。<x> はインターフェイス番号です。
ifconfig eth <x> <IP_address>
同じサブネット内のマシンに対して PING を打ち、インターフェイスが動作しているかを確認してください。
ping <IP_address>
コマンドライン・パラメーター
ドライバーがモジュールとしてともに下記の追加パラメーターを使用できます。
modprobe e1000 [<オプション>=<設定1>,<設定2>,...] insmod e1000 [<オプション>=<設定1>,<設定2>,...]
例として、2 枚の PRO/1000 PCI アダプターを使用し、下記のように入力した場合について説明します。
insmod e1000 TxDescriptors=80,128
e1000 ドライバーをロードする際、 32 の送信リソースを最初のアダプターに対して割り当て、 128 の送信リソースを次のアダプターに対して割り当てます。この設定では 2 番目のアダプターに多くのリソースを与えています。別途指示されない限り、デフォルト値が最適値になっております。
| 注意: |
AutoNeg、 Duplex、 および Speed パラメーターについては、このドキュメントの速度および半/全二重設定 の項目をご覧ください。 また、 InterruptThrottleDelay、 RxIntDelay、 TxIntDelay、 RxAbsIntDelay、および TxAbsIntDelay parameters については、ネットワーク・コンポーネントのアプリケーション・ノート (英語) をご覧ください。 |
速度および半 / 全二重設定
速度および半 / 全二重設定の設定には、 Speed、 Duplex、 AutoNeg の 3 つのキーワードが使用されます。
光ファイバー対応のアダプターを使用している場合は、これらのキーワードは無視されます。光ファイバー対応アダプターは 1000Mbps 全二重でのみリンクします。
銅線接続のアダプターを使用している場合、これらのキーワードは次のように影響しあいます。
- デフォルトでオートネゴシエーションで動作します。アダプターは、対応するすべての速度および全 / 半二重の組み合わせを通信相手に通知し、通信相手がオートネゴシエーションを使用している場合には、最速の速度および全 / 半二重設定でリンクします。
- Speed を 1000 に設定した場合は、オートネゴシエーションは有効のままですが、 1000Mbps のみを通信相手に通知します。これは、 1000BASE-T 規格がオートネゴシエーションを求めているためです。
- Speed を 10 または 100 に設定した場合は、速度とともに全 / 半二重の設定を行なう必要があります。この場合 AutoNeg パラメーターは無視されます。また、通信相手も速度等固定である必要があります。
AutoNeg パラメーターはオートネゴシエーション・プロセスにおいて細かい設定が必要な場合に使用します。このパラメーターを使用した場合、 Speed や Duplex の設定は必要ありません。このパラメーターは、どの速度・全 / 半二重設定を通信相手に通知するかをビットで表します。
| Bit: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
| Speed: |
N/A |
N/A |
1000 |
N/A |
100 |
100 |
10 |
10 |
| Duplex: |
|
|
Full |
|
Full |
Half |
Full |
Half |
|
AutoNeg の設定によって、最速の接続モードで接続することを保証するものではありません。しかしながら、通信相手もオート・ネゴシエーションに設定されている場合、最速の接続モードで接続することが期待できます。 なお、通信相手が速度等固定の場合は、こちら側のアダプターも同じ設定にする必要があります。
追加設定・その他
異なるディストリビューションに対するドライバー設定
ネットワーク・ドライバーをシステムの起動時に正しくロードさせるための方法は、各ディストリビューションにより異なります。多くの場合、他のシステムの起動スクリプトなどと同様に、 /etc/modules.conf (名前が異なることがあります) に alias 行を追加し、コンフィギュレーションを変更ことで可能になります。
多くの Linux ディストリビューションでは、ネットワーク設定を変更するためのツールを用意しています。お手持ちのシステムでの正しいネットワークの設定方法を学習するには、使用しているディストリビューションのドキュメントを参照してください。設定中にドライバー / モジュール名を聞かれた場合には、インテル® PRO/1000 シリーズアダプター向け Linux 基本ドライバーの名称、 "e1000" を入力してください。
例として、2つの PRO/1000 アダプター (eth0 および eth1) を使用し、これらのアダプターの速度を片方は 10- 全二重、もう片方は 100- 半二重の固定で設定する場合は、下記のような行を modules.conf に追加します。
alias eth0 e1000 alias eth1 e1000 options e1000 Speed=10,100 Duplex=2,1
リンクメッセージの表示
ディストリビューションがシステムメッセージを抑制している場合、リンクメッセージはコンソールに表示されません。ネットワーク・ドライバーのリンクメッセージをコンソールに表示させたいときには、下記のコマンドで、 dmesg のレベルを 8 に設定します。
dmesg -n 8 * この設定は再起動するまで有効です。
Jumbo Frames (ジャンボフレーム)
このドライバーでは、 82542 ベースのアダプターを除くすべてのアダプターで、 Jumbo Frames をサポートしています。 Jumbo Frames サポートとは、 MTU をデフォルトの 1500 より大きい値に変更することができることです。 MTU サイズを変更するには、 ifconfig コマンドを下記のように使用します。 (<x> は変更するインターフェイスの番号です)
ifconfig eth<x> mtu 9000 up
| * |
ifconfig での設定は、再起動するまで有効です。永続的に変更したい場合は、 /etc/sysconfig/network-scripts/ifcfg-eth<x> に下記の行を追加してください。 |
MTU = 9000 MTU 設定は最大で 16110 まで対応しています。これは、 Jumbo Frame の最大の大きさ 16128 と一致します。
| 注意: |
Jumbo Frames は 1000Mbps でのみサポートされています。 Jumbo Frames を 10/100 Mbps 環境で使用しようとした場合、パフォーマンスの劣化やリンク切れなどが発生します。 |
Ethtool
本ドライバーは、ドライバーの設定や統計情報の表示といった診断に、 ethtool インターフェイスを利用できます。この機能を使用するためには、 Ethtool バージョン 1.6 以降が必要です。
最新の ethtool についての情報は、 http://sf.net/projects/gkernel † から入手できます。 ethtool をインストール後、必ず ethtool-copy.h をカーネルソース・ツリーの <linux_kernel_src>/include/linux にコピーし、 ethtool.h にリネームする必要があります。 (必要ならば、事前に ethtool.h のバックアップを取ってください。) また、最新 ethtool の機能をしようするためには、ドライバーを再コンパイルする必要があります。
Wake on LAN* (WoL) 機能の有効化
WoL 機能は Ethtool ユーティリティーから設定することができます。 Ethtool は Red Hat 7.2 以降のすべての Red Hat ディストリビューションに含まれています。 その他のディストリビューションをご使用で、 Ethtool が含まれていない場合は、 http://sourceforge.net/projects/gkernel † からダウンロードのうえ、インストールしてください。
Ethtool を使用して WoL を有効にする方法については、 ethtool のマニュアル (man page) ををご確認ください。
WoL 機能は、次回のシャットダウンまたはリブートの際に有効になります。なお、現バージョンにおいては、システムをシャットダウン / サスペンドする前に、 e1000 ドライバーがロードされている必要があります。
NAPI
NAPI (受信ポーリングモード) は e1000 ドライバーでサポートされていますが、デフォルトでは無効になっています。 NAPI を有効にするには、コンパイルの際に下記のようなオプションを付けてください。
make CFLAGS_EXTRA=-DCONFIG_E1000_NAPI install
NAPI に関する情報については、 http://www.cyberus.ca/~hadi/usenix-paper.tgz † をご覧ください。
既知の問題
ドライバーのコンパイル
make install を実行し、ドライバーのコンパイルを行なおうとした場合に、下記のようなエラーが発生することがあります。
Linux kernel source not configured - missing version.h このような場合は、 Linux のソースツリーに移動し、下記のコマンドを実行して version.h ファイルを作成することにより、問題が解決します。
make include/linux/version.h
Jumbo Frames を使用する場合のシステム要求条件
64MB 以下のメモリーしかない Linux システム上で、 Jumbo Frames を使用しようとすると、メモリー・アロケーション・エラーがおきることがあります。 Jumbo Frames を使用する場合は、メモリーに余裕を持った構成にしてください。
Jumbo Frames 使用時の性能低下
一部の Jumbo Frames 環境において、スループットの低下がおきることがあります。 このようなとき、アプリケーションのソケット・バッファー・サイズ、および /proc/sys/net/ipv4/tcp_*mem エントリーの値を増やすことで改善する場合があります。 詳しくは、アプリケーションのマニュアルや、 /usr/src/linux*/Documentation/networking/ip-sysctl.txt をご覧ください。
同一セグメントに複数のインターフェイスを接続した場合の問題
デフォルトの状態では、 Linux におけるの ARP の振る舞いにより、同一セグメント (イーサネット・ブロードキャスト・ドメイン) に複数のインターフェイスを接続し、意図したように動作させることはできません。 これは、システムに割り当てられた IP アドレスに対して、すべてのイーサネット・インターフェイスが、応答してしまうため、片方のインターフェイスに受信トラフィックが偏ってしまうためです。
複数インターフェイスを使用したい場合は、次のコマンドを使用して、 ARP フィルタリングを有効にします。
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter (この機能は、カーネル 2.4.5 以降でのみ動作します)
| 注意: |
この設定は再起動するまで有効です。永続的に変更するためには、下記の行を /etc/sysctl.conf に追加してください。
net.ipv4.conf.all.arp_filter = 1 もしくは、各インターフェイスが別々のセグメントになるよう、ポート VLAN や L3 スイッチなどで分離するなどの対策をとってください。 |
82541/82547 使用アダプターと一部機器との接続不良
82541/82547 と、ローエンドのスイッチとの間において、リンクがなかなか確立しない、またはまったく接続できないなどの現象がおきることが確認されています。
特に、下記のスイッチについては 82541/82547 と互換性に問題があります。
- Planex FXG-08TE
- I-O Data ETG-SH8
この問題を回避するには、 PHY のマスター / スレイブ設定を固定にするよう、オプションをつけてドライバーを再コンパイルすることにより、リンク確立の問題が解決します。
# make CFLAGS_EXTRA=-DE1000_MASTER_SLAVE= ここでは、 PHY の設定になります。
0 = Hardware default 1 = Master mode 2 = Slave mode 3 = Auto master/slave
|