自宅サーバ(Ubuntu 22.04)のカーネルを6.5.0-14-generic
にバージョンアップしたところ、有線LANで接続できなくなりました。
原因を調べた結果、先日インストールしたRealtekのNIC「RTL8111/8168/8411」用のドライバ「r8168-dkms」が、最新カーネルに対応していないため、NICを認識できなくなったようです。
ただ、Realtek社のサイトには、最新カーネルに対応したドライバのソースコードが公開されているため、以下のサイトを参考にビルド・インストールしてみました。
インストール手順
以下のリンクから、ドライバをダウンロードします。選択するのは「GBE Ethernet LINUX driver r8168 for kernel up to 5.19」で、バージョンは8.052.01
となります。
ダウンロード後、ファイルを展開します。
$ tar xvf r8168-8.052.01.tar.bz2
展開されたディレクトリに移動します。
$ cd r8168-8.052.01/src
ドライバ用の新しいディレクトリをroot権限で作成し、すべてのファイルをコピーします。
$ sudo mkdir /usr/src/r8168-8.052.01 $ sudo cp -v * /usr/src/r8168-8.052.01/
ドライバ用の新しいファイルdkms.conf
を作成します。
$ sudo nano /usr/src/r8168-8.052.01/dkms.conf
次の内容をファイルに追加します。
PACKAGE_NAME="r8168" PACKAGE_VERSION="8.052.01" BUILT_MODULE_NAME[0]="$PACKAGE_NAME" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="YES" REMAKE_INITRD="YES"
ファイルを保存後、次のコマンドを実行してドライバをビルド、インストールします。
$ sudo dkms add -m r8168 -v 8.052.01 $ sudo dkms build -m r8168 -v 8.052.01 -k 6.5.0-14-generic $ sudo dkms install -m r8168 -v 8.052.01 -k 6.5.0-14-generic
インストール後、dkms status
コマンドでチェックすると、インストールされているドライバが表示されます。
$ dkms status r8168/8.052.01, 6.5.0-14-generic, x86_64: installed
サーバを再起動すると、正常に接続できるようになっているはずです。お疲れさまでした。
追記(2024/1/20)
aptリポジトリでも最新バージョンが有効になったようです。
余談
本件とは別で、カーネルバージョンアップ後にxrdpも繋がらない(ログイン認証画面は出るけど、正しい認証情報を入れると画面がすぐ消える)のだけど、なんでだろう。