背景 †
1000Baseのネットワークにするべく,LANボードを購入したがLinuxのためなのか?マザーボードとの相性なのか?なかなかうまくいきませんでした.
やっとうまくいきましたので,一応まとめてみました.
使用LANボード †
LGY-PCI-GT †
ドライバのインストール †
LGY-PCI-GTはRealTek?のRTL8169チップを使用しているので,Realtek社から最新のドライバ(2.20)をダウンロードしてこちらを使用する.
解凍 †
# unzip linux-8169(220).zip
改行コードをCRLFからLFに変換 †
# cd src # mv r8169_n.c r8169_n_org.c # nkf -Lu r8169_n_org.c > r8169_n.c
コードの編集(src/r8169_n.c) †
- irqreturn_tをirqreturn_t_R8169
- IRQ_NONEをIRQ_NONE_R8169
- IRQ_HANDLEDをIRQ_HANDLED_R8169
にそれぞれ変更
コンパイル †
# make clean modules # make install
ドライバを追加 †
/etc/modules.confに追加
alias eth0 r8169
使用状況 †
とりあえずは使えるのだが,NFSサーバとsambaサーバとの相性がイマイチのようです.
NFSサーバの起動・終了には時間がかかるし,通信速度が異常に遅くなる.
sambaサーバは,通信速度はそれなりにでるが,あまり使っていると突然Linuxがハングしてしまいます.
Intel PRO/1000 MT †
ドライバのインストール †
標準で組み込まれているがe1000からダウンロードしたドライバを使用する.
解凍 †
$ tar zxvf e1000-6.3.9.tar.gz
コンパイル&インストール †
$ cd e1000-6.3.9/src # make install
ドライバを追加 †
/etc/modules.confに追加
alias eth0 e1000
使用状況 †
とりあえずは使えるが,通信をすると時々ネットワークが使えなくなる.
ログ(/var/log/message)に次のようなメッセージが通知されている.
kernel: NETDEV WATCHDOG: eth0: transmit timed out kernel: e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang kernel: Tx Queue <0> kernel: TDH <a> kernel: TDT <a> kernel: next_to_use <a> kernel: next_to_clean <2> kernel: buffer_info[next_to_clean] kernel: time_stamp <9fd5> kernel: next_to_watch <2> kernel: jiffies <a3bd> kernel: next_to_watch.status <0> kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
オプションをいろいろと変更してみてもダメでした.
e1000のSourceForgeにも同様のバグが報告されている.マザーボードがVIAの古いチップセットの為との報告ともあるので,ドライバでなんとかなるのかは微妙です.
GbE-PCI2 †
ドライバのインストール †
VIA社のVT6122というチップを使っているので,VIA Networking Technologies, Incからドライバをダウンロードする.
解凍 †
$ unzip VT6120_VT6122v24FVNT.zip $ cd LINUX $ tar zxvf velocityget.tar.gz
コンパイル&インストール †
$ cd 1.22 # make install
ドライバを追加 †
/etc/modules.confに追加
alias eth0 velocityget
使用感 †
とりあえず問題なく動いており,ログにも変なメッセージもありませんでした.
現在はこのLANボードを使っております.