RTL8111D 用ドライバをインストールするには (2)

RTL8111 用ドライバをインストールするには (1) の続き.Realtek RTL8111D GbE 搭載の Intel D510MO に Ubuntu Linux 9.10 server, 64bit 版をインストールする際,手動で r8168 ドライバを認識させても,リブートすると r8169 ドライバに戻ってしまうのでした.

リブート後も r8168 ドライバを使うには

/etc/modprobe.d/blacklist.conf に,

blacklist r8169
alias eth0 r8168

とでも追加しておけばいいだろう,と思ったが全然効果がない.強制的に r8169.ko を削除 & depmod -a し,/lib/modules 以下の modules.alias から r8169 がなくなっても,やはりリブートすると r8169 ドライバに戻ってしまう.

どこにも r8169 ドライバはないはずなのに…と調べていくと,/boot/config-2.6.31-17-server に以下の記述を発見.カーネルに組み込まれているようだ.

CONFIG_R8169=m
CONFIG_R8169_VLAN=y

これを削除するためにカーネル作り直しか,と思ったが,一瞬ですむ方法があった.

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`
で作り直してみてください。

https://forums.ubuntulinux.jp/viewtopic.php?id=525

上記に従い,initramfs を作り直すと,/lib/modules の下に r8169.ko があっても,/etc/modprobe.d/blacklist.conf の効力で r8168 ドライバが正しく使われるようになった.

lsmod の結果から関連する行:

Module                  Size  Used by
r8168                  70100  0 

カーネル・アップデート後も r8168 ドライバを使うには

これで当面は問題がないのだけれど,カーネルのアップデートがあると,新しいドライバ・ディレクトリには r8168 ドライバがないので,また手動でコンパイル&インストールし直してやる必要があるという問題が残る.

(カーネル・アップデート後も r8168 ドライバを使うには-2 へ続く)

キーワード

  • D510, D510MO, BOXD510MO, Mount Olive
  • D945GCLF, D945GCLF2, D945GCLF2D, D945GSEJT
  • Ubuntu, Debian, Linux, リナックス
  • リブート, 再起動, 認識しない, 不安定