Ubuntu 24.04 で Realtek r8169/r8168 ネットワークドライバを利用する

Ubuntu 環境で Realtek 製ギガビットイーサネットコントローラ (r8169/r8168) を利用する際の、ドライバの確認方法と、問題が発生した場合の対処法を解説する。r8169 は Linux カーネルに含まれるドライバ、r8168 は Realtek が配布するドライバである。

1. 現状のドライバを確認する

搭載されている NIC と使用中のドライバを確認する。端末を開き、次のコマンドを実行する。

lspci -k | grep -i ethernet -A 3

実行結果に Kernel driver in use: r8169 と表示され、ネットワークが正常に動作していれば、追加の作業は不要である。

2. 問題がある場合に r8168 ドライバを導入する

標準の r8169 ドライバで接続が切れる、リンク速度が上がらないなどの問題が発生した場合は、r8168 ドライバの導入を試みる。Ubuntu では、カーネル更新時にモジュールを自動で再ビルドする DKMS パッケージを用いる。r8168-dkms は universe リポジトリで提供されている。

  1. パッケージリストを更新する
    sudo apt update
    
  2. r8168-dkms パッケージをインストールする
    sudo apt install r8168-dkms
    

    このパッケージをインストールすると、カーネル同梱の r8169 モジュールは読み込まれなくなる。

  3. セキュアブートが有効な場合の対応

    セキュアブートが有効な環境では、インストール中に MOK (Machine Owner Key) 用のパスワード設定を求められる。パスワードを設定し、再起動後に表示される MOK 管理画面で「Enroll MOK」→「Continue」を選び、設定したパスワードを入力して鍵を登録する。鍵を登録しないとモジュールは読み込まれない。

  4. システムを再起動する
    sudo reboot
    

3. ドライバの変更を確認する

再起動後、次のコマンドを実行し、ドライバが r8168 に切り替わったか確認する。

lspci -k | grep -i ethernet -A 3

実行結果に Kernel driver in use: r8168 と表示されれば、変更は成功である。

DKMS モジュールのビルド状況は、次のコマンドで確認する。installed と表示されれば、現在のカーネル向けのビルドは完了している。

dkms status

4. ネットワーク接続を確認する

次のコマンドで、IP アドレスが割り当てられ、ネットワーク接続が確立しているか確認する。

ip a

5. r8169 ドライバに戻す

r8168 でも問題が解決しない場合や、モジュールのビルドが失敗する場合は、パッケージを完全に削除してカーネル同梱の r8169 に戻す。

sudo apt purge r8168-dkms
sudo reboot

再起動後、次のコマンドで Kernel driver in use: r8169 に戻ったことを確認する。

lspci -k | grep -i ethernet -A 3