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 リポジトリで提供されている。
- パッケージリストを更新する
sudo apt update - r8168-dkms パッケージをインストールする
sudo apt install r8168-dkmsこのパッケージをインストールすると、カーネル同梱の
r8169モジュールは読み込まれなくなる。 - セキュアブートが有効な場合の対応
セキュアブートが有効な環境では、インストール中に MOK (Machine Owner Key) 用のパスワード設定を求められる。パスワードを設定し、再起動後に表示される MOK 管理画面で「Enroll MOK」→「Continue」を選び、設定したパスワードを入力して鍵を登録する。鍵を登録しないとモジュールは読み込まれない。
- システムを再起動する
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