Hatena::ブログ(Diary)

モノヅクリブログ Twitter

2010-10-01

R8169からR8168へのNICドライバの入れ替え on ubuntu

RealtekのNICドライバーR8169で色々と問題があるみたいでうちでもR8169からR8168のドライバに入れ替えました。意外と大変だという記事も多いのですが結構簡単に入れ替えられます。Ubuntu(2.6.32-24-generic)で動作させています。

Realtek

からLINUX driver for kernel 2.6を落とし

# bzip2 -dc r8168-8.019.00.tar.bz2 | tar xvf -
# cd r8168-8.019.00
# ./autorun.sh
Check old driver and unload it.
rmmod r8168
Build the module and install
r8168-8.019.00/src/r8168_n.c: In function ‘rtl_get_eeprom’:
r8168-8.019.00/src/r8168_n.c:1790: warning: ‘ret’ may be used uninitialized in this function
[: 48: r8168: unexpected operator
Backup r8169.ko
rename r8169.ko to r8169.bak0
Depending module. Please wait.
load module r8168
Completed.

# cp /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.bak
# mkinitramfs -o /boot/initrd.img-`uname -r` /lib/modules/`uname -r`
# reboot

ドライバdownloadしてautorun.shを走らせてドライバを更新してinitrd.imgをつくり直して再起動という流れです。

blacklist.confとか色々といじったりしている方法もあるみたいですが上記のやり方でR8169からR8168ドライバへの入れ替えができます。

ドライバが正しくインストールされているかはlspciとかlsmodとか方法はありますがethtoolが一番わかり易いです。

#ethtool -i eth0
driver: r8168
version: 8.019.00-NAPI
firmware-version: 
bus-info: 0000:02:00.0

でドライバの確認ができます。ethtool eth0でさらに多くの情報の確認ができます。

ネットワークの速度を測りたい場合は2台のコンピュータでnetperfとnetserverを使います。


サーバ(debian/ubuntu) IPは192.168.0.1

# apt-get install netperf
# netserver
Starting netserver at port 12865

クライアント(debian/ubuntu)

# apt-get install netperf
# netperf -H 192.168.0.1
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.1 (192.168.0.1) port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

262140  16384  16384    10.01     939.56 

eth0が939.56M/sec出ていてギガビット回線であることが分かります。

たうりすがりたうりすがり 2011/11/03 23:48 こちらを参考にして8168ドライバに変更できました。
ありがとうございます。

ただ、私のUbuntu10.10では一部修正が必要だったのでご報告をば。
mkinitramfs -o /boot/initrd.img-`uname -r` /lib/modules/`uname -r`
これをsudoをつけて実行したところ「dpkg: バージョン '/lib/modules/(unameの出力)' は不正な構文です: バージョン番号に無効な文字があります」とエラーになりました。

「/lib/modules/」を削除して
sudo mkinitramfs -o /boot/initrd.img-`uname -r` `uname -r`
として再実行するとOKでした。

KmusiclifeKmusiclife 2011/11/06 03:56 わざわざコメントありがとうございます。 環境が違うとエラーが出ることがありますね。参考になります。ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/Kmusiclife/20101001/1285937660