AT5NM10-I(Atom D510)にCentOS 5.5を導入してネットワークではまった

centos 5.5 64bit の netinstall であっさりとインストール完了。
ネットワーク以外に問題なし。ネットワークの問題は、数秒間のイーサネットリンクダウン/回復が1時間に数回程度の頻度で発生するというもの。

Aug 22 18:14:13 localhost kernel: r8169: eth0: link down
Aug 22 18:14:15 localhost kernel: r8169: eth0: link up

調べると、本マザーボードオンボードLANチップRealtek RTL8168D/8111Dに対応するr8168ドライバが使われるべきなのに、r8169ドライバが使われているという現象で2009年ごろからあちこちで話題になっている問題らしい。(http://d.hatena.ne.jp/metastable/20100117/1263737845#)

まずドライバ入れ替える。

  1. Realtekから最新ドライバを取得(r8168-8.019.00.tar.bz2)
  2. /usr/local/srcにコピー展開、READMEに従い、
    • tar xjcf r8168-8.0xx.xx.tar.bz2
    • cd r8168-8.0xx.xx
    • rootで ./autorun.sh を実行
  3. ここまでで/lib/modules配下のmodules.aliasまで書き変ってリブートしてもOKな状態
[root@at5nm10-i r8168-8.019.00]# ./autorun.sh
Check old driver and unload it.
rmmod r8168
Build the module and install
/usr/local/src/r8168-8.019.00/src/r8168_n.c: In function ‘rtl8168_tx_clear’:
/usr/local/src/r8168-8.019.00/src/r8168_n.c:8474: warning: unused variable ‘dev’
/usr/local/src/r8168-8.019.00/src/r8168_n.c: In function ‘rtl8168_poll’:
/usr/local/src/r8168-8.019.00/src/r8168_n.c:9172: warning: cast from pointer to integer of different size
In file included from /usr/local/src/r8168-8.019.00/src/rtltool.c:5:
/usr/local/src/r8168-8.019.00/src/r8168.h:1203: warning: ‘struct ethtool_cmd’ declared inside parameter list
/usr/local/src/r8168-8.019.00/src/r8168.h:1203: warning: its scope is only this definition or declaration, which is probably not what you want
Depending module. Please wait.
load module r8168
Completed.
[root@at5nm10-i r8168-8.019.00]#

ひとまずこれでlink down/upが頻発することは無くなった。初期状態で1000M, duplex full, autoneg onになることを確認。1ギガ超ファイルをFTP3多重で計15ファイルぐらい転送してみたがリンクダウンは発生せず。しばらく様子を見ることとする。

備忘録:ネットワークIFの制御

  • ethtool -s eth0 speed 10 (10/100/1000)
  • ethtool -s eth0 duplex half (half/full)
  • ethtool -s eth0 autoneg off (on/off)
  • ifconfig eth0 mtu 4000
■lspci
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)

■lsmod
r8168                 136892  0

【2010/09/04追記】realtek ドライバの状況

r8168-8.018 はダメだった、今日r8168-8.019が出てるのを発見。試してみる。
8.019ドライバに差し替わったことはリブート後のmessages(以下)で確認済み。

Sep  4 22:19:39 at5nm10-i kernel: r8168 Gigabit Ethernet driver 8.019.00-NAPI loaded

【2010/09/04追記】realtek ドライバの状況

12:00 8.019ドライバも調子がよくない。link up/down(数秒で復帰)が数分ごとに起こる。
18:00 別件でリブートしたりしていたら、link up/down頻発が止まった、、、なんだろ???しばらく様子を見る。

【2010/09/05追記】MTU設定と関係ある?

どうもMTUを拡大(ジャンボフレーム設定)すると、link up/downが頻発するような気がする。MTUをデフォルト(1500)に戻して様子をみる。

【2010/09/06追記】MTUを1500では

link up/down頻度が落ちるにはおちた。一日に1回〜数回程度か?結局問題は残っている。link 速度1Gが問題か?100に落としてみると変化するか?、、、、
http://illusions.jp/blog/?id=286

【2010/09/15追記】MTU1500ダメ

様子を見たところ2,3日に1回程度のlink down。MTU1500である程度落ち着いたことを再確認するために、9/11にMTUに再設定。ところが、、、以前のように頻発はしない。一日に数回程度、ときどき1日に1度も起こらないこともある。いったい何が影響しているのやら。なかばあきらめモードで、Realtekから新ドライバが出るのを待ちながら、このまましばらく様子を見ることに。

【2010/11/23追記】elrepo

elrepo使えば、kernelアップデートするたびにごちゃごちゃしなくてよいことがわかった。(realtekから最新ソースが出て少し間が必要だが、、、)自分でコンパイルは止めて、これにしよう。

  • ELREPOの使い方
    • elrepo webトップページに、keyのインストールから、repo設定、r8168インストールコマンドライン(すべてコピペ可)が書いてある。以上。

【2010/12/14追記】r8168ドライバ8.020.00にアップデート

11/15に更新されたrealtekのr8168ドライバ、elrepoの更新がようやく追いついた。便利な分タイムラグはしかたないか。
さて、これでD510のrealtek 状況はどうなるか、、、

【2010/12/16追記】2日間様子をみたがダメ

一日数回downすぐ復帰してる、、、100Mに戻して次のドライバを待つ。

【2011/01/15追記】

あきらめて USB LANにする

【2011/11/05追記】

Centos6.0にアップデートするついでに再確認したところ、状況同じく。link down, link upを一日に10回以上でてる。これは(あいかわらず)centosインストール直後デフォルトのr8169でも、その後r8168に切り替えても同じ。linux 32bit だったらOKだったりしないか確認したところ、同じ状況。ダメダこりゃ。また、USBイーサに戻る。