RTL8111/8168/8411 のインストールに苦悩した話

Linux
この記事は約7分で読めます。

Aspire XC-603のマザーボードをベースにした自作PCを使っています。

CPUにCeleron J1900を搭載しているので、処理能力は決して高くはないものの省電力性能に優れているので、自宅サーバーとして使うのに適しています。

現在はUbuntuをインストールして使っていますが、Wake on LANが使えないことに気が付きました。

原因の1つは、前回の記事で書いたBIOSの設定が適切でなかったことでした。

もう一つの原因は、Aspire XC-603のLANドライバのバグです。

このパソコンのLANアダプタはRealtek RTL8111/8168/841という製品が使用されており、この製品に古くから存在しているバグに遭遇してしまったようです。

最終的には解決できたのですが、いろいろ苦戦したので書いていきます。

結論は最後に書いてますので、お急ぎの方はそちらを見てください。

                 

環境

  • パソコン:Aspire XC-603

  • Ethernetアダプタ:RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller

  • OS:Ubuntu 20.04.1LTS
    $ uname -a
    Linux XXXXX 5.8.0-48-generic #54~20.04.1-Ubuntu SMP Sat Mar 20 13:40:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ハードウェア情報の確認

Ethernetアダプタのハードウェアを確認します。

確認方法はいくつかありましたが、いずれの場合でもRTL8111/8168/8411という製品であることが確認できます。

lspci

$ lspci
~省略~
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)

lshw

$ sudo lshw -c network
~省略~
  *-network
       詳細: イーサネット interface
       製品: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       ベンダー: Realtek Semiconductor Co., Ltd.
       物理ID: 0
       バス情報: pci@0000:02:00.0
       論理名: enp2s0
       バージョン: 11
       シリアル: f8:0f:41:XX:XX:XX
       サイズ: 1Gbit/s
       容量: 1Gbit/s
       幅: 64 bits
       クロック: 33MHz
       性能: pm msi pciexpress msix vpd bus_master cap_list __________________ physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       設定: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.8.0-48-generic duplex=full firmware=rtl8168g-2_0.0.1 02/06/13 ip=192.168.1.146 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
       リソース: irq:18 IOポート:e000(サイズ=256) メモリー:d0604000-d0604fff メモリー:d0600000-d0603fff

Ubuntuインストール後の状態

Aspire XC-603のEthernetアダプタはRTL8111/8168/8411であることが分かりました。

しかしながら、Ubuntuに適用されているドライバはr8169というものでした。

$ lsmod | grep r8
r8169 77824 0

誤ったドライバが読み込まれていることが原因なので、適切なドライバをインストールすればよさそうです。

r8168ドライバ インストール事前準備

Realtekの公式ページからドライバをインストールしてもまったく成功しませんでした。

失敗の原因は、この事前準備(設定)をしていなかったせいです。

この設定をしないとドライバインストールは成功しないですし、多くの時間を要してしまいます。

その設定とは、Secure Bootの無効です。

セキュアブートについては以下のリンクを参考にすると雰囲気が分かるかもしれません。

セキュア ブート
OEM がデバイスを安全に起動するために行うべきことについてのガイダンスを提供します

具体的には、BIOSのSecure Bootを無効にします。

Aspire XC-603の場合、BIOSの中の『Authentication』の中にある『Secure Boot』をDisabledします。

r8168ドライバ インストール

事前準備が終わったらドライバのインストールです。

$ sudo apt install r8168-dkms
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージはアップグレードされます:
  r8168-dkms
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
1 個のパッケージが完全にインストールまたは削除されていません。
98.5 kB のアーカイブを取得する必要があります。
この操作後に追加で 147 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu focal-updates/universe amd64 r8168-dkms all 8.048.00-1ubuntu0.20.04.1 [98.5 kB]
98.5 kB を 1秒 で取得しました (114 kB/s)
(データベースを読み込んでいます ... 現在 208713 個のファイルとディレクトリがインストールされています。)
.../r8168-dkms_8.048.00-1ubuntu0.20.04.1_all.deb を展開する準備をしています ...

------------------------------
Deleting module version: 8.046.00
completely from the DKMS tree.
------------------------------
Done.
r8168-dkms (8.048.00-1ubuntu0.20.04.1) で (8.046.00-1 に) 上書き展開しています ...
r8168-dkms (8.048.00-1ubuntu0.20.04.1) を設定しています ...
Loading new r8168-8.048.00 DKMS files...
Building for 5.8.0-48-generic
Building initial module for 5.8.0-48-generic
This system doesn't support Secure Boot
Secure Boot not enabled on this system.
Done.

r8168.ko:
Running module version sanity check.
Error! Module version 8.048.00-NAPI for r8168.ko
is not newer than what is already found in kernel 5.8.0-48-generic (8.048.03-NAPI).
You may override by specifying --force.

depmod.....

Backing up initrd.img-5.8.0-48-generic to /boot/initrd.img-5.8.0-48-generic.old-dkms
Making new initrd.img-5.8.0-48-generic
(If next boot fails, revert to initrd.img-5.8.0-48-generic.old-dkms image)
update-initramfs..................

DKMS: install completed.
update-initramfs: deferring update (trigger activated)
initramfs-tools (0.136ubuntu6.4) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-5.8.0-48-generic

再起動したらインストール作業完了です。

再起動後にlsmodしてみます。

$ lsmod | grep r8
r8168                 548864  0

r8168が読み込みされています。 Wake On LANの設定も想定通りに動くようになりました。

コメント

  1. ぽむぽむぷりん より:

    全く同じ環境でイーサネットが正常に動作しないことに悩まされていました・・・
    ですがこの記事で解決することができました!感謝しております。ありがとうございます!

タイトルとURLをコピーしました