2022/08/09(火) [n年前の日記]
#2 [ubuntu] Ubuntu 20.04 LTS上でr8169ドライバが使われてしまう問題
手元のサブPC、Core2Duo E8400機 + Ubuntu Linux 20.04 LTS の環境で、LAN? NIC? のドライバが間違ってロードされてることに今頃気づいた。
Core2Duo E8400機で使ってる M/B、GIGABYTE GA-G31M-ES2L は、LAN用のチップとして Realtek RTL8111C が載っている。
_GA-G31M-ES2L (rev. 1.x) スペック | マザーボード - GIGABYTE Japan
しかし、Ubuntu 20.04 上では r8169 というドライバが読み込まれていた。本来、RTL8111 なら、r8169 ではなく r8168 が読み込まれないといけない。
そんなわけで、r8168 が使われるように変更してみた。
まずは現状を確認。lsmod と打ってみる。r8169 が表示されたら、間違ったドライバが読み込まれている。
Ubuntu は、r8168 に変更するためのパッケージが公式リポジトリにちゃんと用意されていた。ありがたや。インストールする。
そのままだと r8169 が相変わらず読み込まれるっぽいので、r8169 をブラックリストに登録する。r8168-dkms パッケージをインストールした際に、r8169 をブラックリストに登録するためのファイルもインストールされているのだけど、該当行がコメントアウトされているので一部修正。
sudo reboot で再起動後、lsmod で r8168 が表示されることを確認。
Core2Duo E8400機で使ってる M/B、GIGABYTE GA-G31M-ES2L は、LAN用のチップとして Realtek RTL8111C が載っている。
_GA-G31M-ES2L (rev. 1.x) スペック | マザーボード - GIGABYTE Japan
> LAN 1. RTL 8111C chip (10/100/1000 Mbit)
しかし、Ubuntu 20.04 上では r8169 というドライバが読み込まれていた。本来、RTL8111 なら、r8169 ではなく r8168 が読み込まれないといけない。
そんなわけで、r8168 が使われるように変更してみた。
まずは現状を確認。lsmod と打ってみる。r8169 が表示されたら、間違ったドライバが読み込まれている。
Ubuntu は、r8168 に変更するためのパッケージが公式リポジトリにちゃんと用意されていた。ありがたや。インストールする。
sudo apt install r8168-dkms
そのままだと r8169 が相変わらず読み込まれるっぽいので、r8169 をブラックリストに登録する。r8168-dkms パッケージをインストールした際に、r8169 をブラックリストに登録するためのファイルもインストールされているのだけど、該当行がコメントアウトされているので一部修正。
sudo vi /etc/modprobe.d/r8168-dkms.conf
#blacklist r8169 ↓ blacklist r8169
sudo reboot で再起動後、lsmod で r8168 が表示されることを確認。
$ lsmod | grep r8 r8168 548864 0
◎ 参考ページ。 :
_networking - Ubuntu 20.04 Ethernet R8168 - Ask Ubuntu
_ubuntu 20.04 Realtek RTL8168 / r8168 ネットワーク ドライバ インストール - rokkonet
_RTL8111/8168/8411 のインストールに苦悩した話 | tarufulog
_Ubuntu 16.04 で ASUS H110T の Ethernet ポートが認識されない問題の対処方法
_ubuntu 20.04 Realtek RTL8168 / r8168 ネットワーク ドライバ インストール - rokkonet
_RTL8111/8168/8411 のインストールに苦悩した話 | tarufulog
_Ubuntu 16.04 で ASUS H110T の Ethernet ポートが認識されない問題の対処方法
◎ 余談。 :
lspci とか、sudo lshw -c network と打つと、もう少し情報が出てくるらしい。
$ lspci | grep Eth
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02)
$ lspci -v | grep r8
Kernel driver in use: r8168
Kernel modules: r8168
$ sudo lshw -c network
*-network
詳細: イーサネット interface
製品: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
ベンダー: Realtek Semiconductor Co., Ltd.
物理ID: 0
バス情報: pci@0000:03:00.0
論理名: enp3s0
バージョン: 02
シリアル: 00:1f:d0:cf:6c:96
サイズ: 1Gbit/s
容量: 1Gbit/s
幅: 64 bits
クロック: 33MHz
性能: pm msi pciexpress msix vpd bus_master cap_list rom __________________ physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
設定: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.048.00-NAPI duplex=full ip=192.168.1.14 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
リソース: irq:17 IOポート:be00(サイズ=256) メモリー:fdeff000-fdefffff メモリー:fdee0000-fdeeffff メモリー:fd900000-fd90ffff
◎ 余談その2。 :
このあたりの作業をしていて、ふと気づいた。ひょっとして、足元に置いてある、別のサブPC、A8-3850機も同じ状態なのではないか…?
A8-3850機のM/B は GIGABYTE GA-A75M-UD2H (rev. 1.0)。
_GA-A75M-UD2H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
これも RTL8111C が載ってると書いてある。後で r8169 がロードされてないかチェックしてみないと…。
※ 2022/08/10追記。A8-3850機、GIGABYTE GA-A75M-UD2H (rev. 1.0) も r8169 がロードされてしまっていた。r8168 に変更しておいた。
A8-3850機のM/B は GIGABYTE GA-A75M-UD2H (rev. 1.0)。
_GA-A75M-UD2H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
これも RTL8111C が載ってると書いてある。後で r8169 がロードされてないかチェックしてみないと…。
※ 2022/08/10追記。A8-3850機、GIGABYTE GA-A75M-UD2H (rev. 1.0) も r8169 がロードされてしまっていた。r8168 に変更しておいた。
[ ツッコむ ]
以上です。