💤
Ubuntu 24.04.3 で RTL8127を使用可能にした話
ローカルLLMを動かすのを目的に、Minisforum の MS-S1 MAXというPCを購入しました。
このPCは、CPUに AMD Ryzen AI Max+ 395 を積んでおり、比較的大きなLLMを動かせます。ちょうど AMD から ROCm 7.9.0 preview が発表され、Ryzen AI Max+ 395 がサポート対象になったので、ROCm 7.9.0 previewのシステム要件に合わせて Ubuntu での環境構築をしてみることにしました。
ROCm 7.9.0 preview で サポートされている Ubuntuのバージョンは Ubuntu 24.04.3 (HWE kernel: 6.14) ということなのですが、実は普通にUbuntu 24.04.3 を ISOからインストールすると、MS-S1 MAXに装備されている 10GbE の有線LANが使えません(無線LANは使えます)。有線LANに使われているRTL8127というRealtek のチップは kernel 6.16では対応されるようなのですが、素の Ubuntu 24.04.3 で有線LANが使えないことには何とも不便なので、まずはRTL8127のドライバーを導入することにしました。
参考にさせて頂いたのはPC Watchの記事( https://pc.watch.impress.co.jp/docs/column/ubuntu/2046986.html ) ですが、私が試した限りでは、微妙に上手くいかないところが幾つかありましたので、手順を整理し直すとこんな感じです。
事前準備
$ sudo apt install dkms debhelper linux-headers-$(uname -r) build-essential gcc
- Realtekのドライバーのダウンロード
https://www.realtek.com/Download/List?cate_id=584
展開
$ sudo cp -r ~/Downloads/r8127-11.015.00/* /usr/src/r8127-11.015.00/
$ cd /usr/src/r8127-11.015.00/
DKMS設定の作成
$ sudo editor /usr/src/r8127-11.015.00/dkms.conf
- 編集内容
PACKAGE_NAME="r8127"
PACKAGE_VERSION="11.015.00"
CLEAN="make -C /lib/modules/$(uname -r)/build M=/usr/src/r8127-11.015.00/src clean"
MAKE[0]="make -C /lib/modules/$(uname -r)/build M=/usr/src/r8127-11.015.00/src modules"
BUILT_MODULE_NAME[0]="r8127"
BUILT_MODULE_LOCATION[0]="src/" # フルパスのほうが良いかも
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/ethernet/realtek"
AUTOINSTALL="yes"
BUILD_EXCLUSIVE_KERNEL_MAX="6.15"
インストール
$ sudo dkms remove r8127/11.015.00 --all # やり直しの場合
$ sudo dkms add r8127/11.015.00
$ sudo dkms build r8127/11.015.00
$ sudo dkms install r8127/11.015.00
$ sudo modprobe r8127
追記
- Ubuntu 24.04.3 の素の状態で、ROCm 7.9.0 previewが なんとなくあれこれ動いてしまっていたので、AMDのHWEのインストールをしていませんでした。
- あとあと面倒にならないよう、いまのうちに入れておくことにしました。いま始めてこの記事をお読みになる方は、以下のほうがより適切です(たぶん)。
r8127 DKMSの登録解除
- 一旦 r8127 DKMSを外します。
$ sudo dkms remove r8127/11.015.00 --all
AMD HWEカーネルのインストール
$ sudo apt-get install linux-oem-24.04c
- HWEカーネルの新ストールで既に r8127がらみで問題が起きていたら、こちらで修復。
$ sudo apt --fix-broken install
dkms.confの修正
- 始めからこうしておくべきだったということだと思います。
$ sudo nano /usr/src/r8127-11.015.00/dkms.conf
PACKAGE_NAME="r8127"
PACKAGE_VERSION="11.015.00"
CLEAN="make -C /lib/modules/${kernelver}/build M=/usr/src/r8127-11.015.00/src clean"
MAKE[0]="make -C /lib/modules/${kernelver}/build M=/usr/src/r8127-11.015.00/src modules"
BUILT_MODULE_NAME[0]="r8127"
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/ethernet/realtek"
AUTOINSTALL="yes"
BUILD_EXCLUSIVE_KERNEL_MAX="6.15"
再構築
- あとは先程と同じプロセスをカーネルを指定して実行。
$ sudo dkms add r8127/11.015.00
$ sudo dkms build r8127/11.015.00 -k $(uname -r)
$ sudo dkms install r8127/11.015.00 -k $(uname -r)$ sudo dkms install r8127/11.015.00 -k $(uname -r)
$ sudo dkms build r8127/11.015.00 -k 6.14.0-1014-oem
$ sudo dkms install r8127/11.015.00 -k 6.14.0-1014-oem
$ sudo modprobe r8127
$ lsmod | grep r8127
- GRUBで 6.14.0-1014-oem を指定して動作確認。
Discussion