
Ubuntu日本語フォーラム
ログインしていません。
ネットワークにオンボードでRealtek 8110S-32 を使用したPCに7.04デスクトップを導入しました。
eth0として認識されています。
カーネルは2.6.20-16-genericです。
ネットワーク速度を改善しようと思い、Realtekサイトより バージョン6.001.00
(ftp://202.65.194.212/cn/nic/r8169-6.001.00.tar.bz2)
をダウンロードしました。
アーカイブを展開し、readme、Makefileを参照して
# rmmod r8169 ←これを行わないとinsmodが出来ませんでした。
# make all
# depmod -a
# insmod ./src/r8169.ko
# ifdown eth0
# ifup eth0
と行い、ネットワークに繋がりました。
$ dmesg | grep r8169
とすると、例えば
[ 151.458502] r8169 Gigabit Ethernet driver 6.001.00 loaded
[ 151.504940] r8169: eth0: link down
[ 153.822058] r8169: eth0: link up
という箇所もあり、ネットワークも高速化したので間違いなく新しいドライバが使われているのですが、
再起動を行うと、起動時に
[ 3.111385] r8169 Gigabit Ethernet driver 2.2LK loaded
とデフォルトのドライバが読み込まれてしまいます。
新しく自分でコンパイルしたドライバを起動時に読み込むにはどうしたら良いでしょうか?
新しいドライバは
-rw-r--r-- 1 root root 285067 2007-06-26 14:21 /lib/modules/2.6.20-16-generic/kernel/drivers/net/r8169.ko
に入っております。
モノの試しに /etc/modules に r8169 と1行書き足してみたりしましたが、やはり間違っていたようで
2.2LKが読み込まれさらにネットに繋がらなくなったりしました・・・
オフライン
> 新しいドライバは
> -rw-r--r-- 1 root root 285067 2007-06-26 14:21 /lib/modules/2.6.20-16-generic/kernel/drivers/net/r8169.ko
> に入っております。
ということなので、古いドライバの.koファイルは上書きしてある、ということでしょうか?
とりあえず、もう一度depmod -a してみてください。古いr8169.koファイルが/lib/modules
以下にある場合は、どこか別の場所に移動してください。
それでも駄目ならinitramfsを作り直す必要がありそうです。
sudo cp /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.bak
としてバックアップを取って、
sudo mkinitramfs -o /boot/initrd.img-`uname -r` /lib/modules/`uname -r`
で作り直してみてください。
# ちなみに、insmodでなくmodprobeでインストールした方が安全です。
オフライン
お返事ありがとうございます、早速試してみました。
まず、
hito による投稿:
ということなので、古いドライバの.koファイルは上書きしてある、ということでしょうか?
とりあえず、もう一度depmod -a してみてください。古いr8169.koファイルが/lib/modules
以下にある場合は、どこか別の場所に移動してください。
/lib/modules/2.6.20-15-generic/kernel/drivers/net/
に古いr8169.koが残っていたので、それをホームディレクトリによけ、depmod -a
(この時新しいr8169.koは手動で組み込んでありました)
して再起動しましたが、古いドライバが読み込まれました。
次に、新しいドライバを手動で組み込んだ状態で(古いドライバはよけてあります)
なんとなく念のため depmod -a の後、教えて頂きました方法でinitrdを作り直し、再起動したところネットに繋がりません。
dmesgを見ると
[ 4.114640] r8169 Gigabit Ethernet driver 6.001.00 loaded
[ 4.115638] eth0: RTL8169S/8110S at 0xf8946000, 00:01:80:52:f4:7f, IRQ 19
[ 31.386888] r8169: eth0: link up
となり新しいドライバの読み込み、はうまくいったようです。
この後、手動で
# ifdown eth0
・・・ifdown: interface eth0 not configured とメッセージが帰ってきました
# ifup eth0
と行った後ifconfigで確認すると、LAN内IP(192.168・・・)が取得されネット接続が回復しました。
いいところまで来たのですが、起動時にIP取得に失敗しているのは何が原因なのでしょうか。
よろしければ引き続きご指導お願い致します。
オフライン
> /lib/modules/2.6.20-15-generic/kernel/drivers/net/
> に古いr8169.koが残っていたので、それをホームディレクトリによけ、depmod -a
> (この時新しいr8169.koは手動で組み込んでありました)
あ。意図が明確でなくて申し訳ありません。
/lib/modules/`uname -r`/以外にあるr8169.koは残しておいていただいて構いません。
とりあえず、/etc/network/interfacesに以下が書いていない、ということはないでしょうか。
auto eth0
iface eth0 inet dhcp
とりあえずdhcpで宣言していますが、ifconfig upだけでアドレスが取れているので、
DHCPクライアントとして動作すればOKなのだと勝手に思っています。
オフライン
お返事ありがとうございます、
hito による投稿:
あ。意図が明確でなくて申し訳ありません。
/lib/modules/`uname -r`/以外にあるr8169.koは残しておいていただいて構いません。
なるほど了解です。ドライバが読み込まれるようになったので元の位置に戻しておこうと思います。
hito による投稿:
とりあえず、/etc/network/interfacesに以下が書いていない、ということはないでしょうか。
auto eth0
iface eth0 inet dhcp
とりあえずdhcpで宣言していますが、ifconfig upだけでアドレスが取れているので、
DHCPクライアントとして動作すればOKなのだと勝手に思っています。
確認してみたところ、auto eth0 の行がありませんでした。
iface eth0 inet static
up ifconfig eth0 mtu 1452
address 192.168.x.xxx
netmask 255.255.255.0
gateway 192.168.x.1
のようにしてMTUを調節したり、IPをstaticにしていたのですが auto eth0 の行をいつ消してしまったのか・・・
iface eth0 inet static の上に auto eth0 を書き加えたところ、再起動後もまったく問題なくなりました。
ご指導ありがとうございました。
hito による投稿:
# ちなみに、insmodでなくmodprobeでインストールした方が安全です。
このあたりも今後勉強してみようかと思います。
オフライン
上手くうごいてなによりです。
ドライバを手で入れてしまうと、Kernel Updateのたびにコンパイル&initramfsが
必要になります。忘れるとOS標準のドライバが動くようになってしまいます。
ので、synaptic/aptitudeなどで、Kernel周りのパッケージが勝手に上がらないように
設定しておくことをお勧めします。
オフライン