Ubuntu日和

【第79回】安定で低発熱だぞ!Realtekの最新10GbE NIC「RTL8127」をUbuntuで動作させる

RTL8127搭載NIC近影

 第75回で紹介したように、拙宅では10GbE(10Gigabit Ethernet)ネットワークを構築している。NASはまだ10GbE化していないので、持て余し気味なのが正直なところだが、近日中にどうにかする予定がある。

 スイッチングハブも、音がうるさい問題は解決していないものの、なんとか折り合いをつけてやっている。

 10GbE対応のNICは「AQC113C」搭載モデルで、何やら不具合がある話も聞くが、特に問題なく使用できている。Ubuntuだからであろうか。

 目下の問題はスイッチングハブの騒音ではあるものの、AQC113Cも大きなヒートシンクが必要な程度には発熱があるということで、もう少しどうにかなってほしいところではあった。

 そんな中、Realtekが2.5GbEの「RTL8125」、5GbEの「RTL8126」に続いて10GbE対応の「RTL8127」を5月にリリースしたということで、NICの販売を心待ちにしていた。そして先日、ノーブランドのバルク製品ではあるものの、Amazonで見つけたので思わず買ってしまった。

 聞くところによると、本誌ではカード自身についてニュースでも取り上げてないらしく、正真正銘の本誌初登場である。

筆者のコレクション。RTL8127搭載NIC(上)、RTL8126搭載NIC(左下)、RTL8125搭載NIC(右下)

スペック

 RTL8127搭載NICはPCIe Gen4x1接続ということで、対応するマザーボードが豊富なところが魅力だ。またAQC113Cよりもヒートシンクが小さく、発熱が少ないことが期待できる。

 なによりもRealtekに対する信頼感が大きい。2.5GbE NICが広く採用されるようになったが、Intelのものはあまり見かけず、Realtekのものばかりなのは、今更述べるまでもない。

 一般的なPCにおいても、RTL8125の代わりにRTL8127が順次採用されるような状況になるのが理想的ではあるが、そもそもRTL8126の採用例が少ないことから、やはり期待するのは難しいであろうか。第67回で紹介したUH125 Proはさっさと終売になり、RTL8125にしたM1 Pro-125Hに代わっているところから、なんとなく察するものがある。

Ubuntuでの認識状況

 今回紹介する製品はノーブランドで「NIC-10G-RTL8127」というなんともかんともな型番だが、ここではシンプルにRTL8127搭載NICと呼ぶことにする。

 RTL8127搭載NICを最新の状態にアップデートしたUbuntu 24.04.3 LTSで認識するかと問われると、しない。ではどうやって使えるようにするのかという問題が立ちはだかる。

 考えられる方法はいくつかある。

Ubuntu 25.10開発版を使用する

 RTL8127に対応するLinuxのバージョンは6.16からということで、このバージョン以降を採用することが決定している、来月リリース予定のUbuntu 25.10を使用するのが、実のところ一番の正解ではある。

Ubuntu 25.10開発版でRTL8127とオンボードのRTL8125の両方が認識しているところ

 同時に、来年(2026年)2月にはリリースされるであろうUbuntu 24.04.4でも認識するようになる、ということでもある。

 ただし筆者のようにLTSを使用している場合は来年2月まで待てない。今すぐ使用したい。

テスト目的ならMainline Kernelがあるが……

 UbuntuにはMainline Kernelというリポジトリがあり、最新版のカーネルパッケージが公開されている。当然6.16シリーズもあるので、6.16.4をインストールしてみたものの、起動できなかったので諦めた。いずれにせよテスト目的で提供されているものであり、常用するのは厳しいので今回は考えないことにする。

アップデートが面倒なRealtek提供ドライバ

 Realtekは純正ドライバをリリースしているので、これを使用する手もある。ダウンロードページを開き、「10G Ethernet LINUX driver r8127 for kernel up to 6.15」の左側にあるダウンロードボタンをクリックする。続けて「ダウンロード」をクリックするとCAPTCHAが表示されるので、入力してSubmitをクリックするとダウンロードできる。

 事前にgccとmakeパッケージをインストールしておく。

 展開して~/Downloads/r8127-11.015.00/に配置後、端末から次のコマンドを実行するとドライバのインストールが完了する。

$ sudo ~/Downloads/r8127-11.015.00/autorun.sh

 ただし、この方法では問題点が2つある。1つは既存のRealtek NIC用カーネルモジュール(r8169)が無効化されてしまうことだ。前述の通り、昨今RealtekのNICが広く使われているので、高い確率でオンボードのほうが無効になってしまう。どうしてこのようなことをするのか理由は不明だし、共存自体も問題なくできる。RTL8127しか使わないのであれば特に問題ないだろうが、複数のNICを使用している場合(筆者が該当する)には非常に都合が悪い。

 もう1つは、カーネルのアップデートがあるたびにautorun.shを実行しなければいけないところだ。カーネルが新しくなると、そのドライバ(カーネルモジュール)を新しいカーネルに合わせてビルドし直さないといけない。もちろん今回のようにカーネルに内包されていない場合だが。

最終手段となるDKMS

 ということは、autorun.shを実行せずにドライバがビルドできればいいということになる。そんな都合のいい方法があるのかと問われれば、ある。その仕組みをDKMSという。

 DKMSに関しては、柴田さんのこの記事(Ubuntu Weekly Recipeへの外部リンク)が非常に分かりやすいので、詳しい説明はそちらにおまかせしたい。

 まずは必要なパッケージをインストールする。

$ sudo apt install dkms debhelper

 ソースコードが~/Downloads/r8127-11.015.00/に展開されていると仮定して、次のコマンドを実行する。

$ sudo mkdir /usr/src/r8127-11.015.00
$ sudo cp ~/Downloads/r8127-11.015.00/src/* /usr/src/r8127-11.015.00

 DKMSを使用するためにはdkms.confが必要なので、作成する。

$ sudo editor /usr/src/r8127-11.015.00/dkms.conf

 内容は次の通りだ。

PACKAGE_NAME="r8127"
PACKAGE_VERSION="11.015.00"
CLEAN="'make' clean"
MAKE[0]="'make' modules KVER=$kernelver"
BUILT_MODULE_NAME[0]="r8127"
DEST_MODULE_LOCATION[0]="/kernel/driver/net/ethernet/realtek"
AUTOINSTALL="yes"
BUILD_EXCLUSIVE_KERNEL_MAX="6.15"

 DKMSを有効にし、実際にドライバを使用できるようにする。

$ sudo dkms add r8127/11.015.00
$ sudo dkms build r8127/11.015.00
$ sudo dkms install r8127/11.015.00
$ sudo modprobe r8127

 これで、カーネルのアップデートがあっても自動的に再ビルドされ、かつr8169も有効のままとなる。さらに、カーネル6.16以降は自動的には再ビルドが実行されないようになっているはずである。なっていなかったら申し訳ないが、テストのしようがないのでご容赦いただきたい。

 これまでの作業をアンインストールするには、次のコマンドを実行する。

$ sudo dkms uninstall r8127/11.015.00

速度チェック

 ベンチマークとまではいわないが、きちんと10GbEらしい速度が出ているかのチェックをしていこう。

サーバー側のスペック

 サーバー側のスペック概要は次の通りだ。

パーツメーカー型番備考
CPUIntelCore i3-1410-
CPUファンAinexIS-40X-V3-
マザーボードASRockB760M Pro RS/D4 WiFiドスパラ限定モデル
メモリーCrucialCT16G4DFRA32A-
SSDKIOXIASSD-CK1.0N4PLG3N-
NICUrhomy(AQC113C搭載NIC)-
PCケースInWinIW-BL057B/300B-

クライアント側のスペック

 クライアント側のスペック概要は次の通りだ。

パーツメーカー型番備考
CPUAMDRyzen 5 8500G-
CPUファンAinexIS-30A-
マザーボードGIGABYTEA620I AX-
メモリーTEAMCTCCD532G6000HC48DC01-
SSDWestern DigitalWDS500G3X0C-
NIC(ノーブランド)NIC-10G-RTL8127-
電源ユニットSilverStoneSX-700PT-
PCケースSilverStoneSG13-

 せっかくなのでNICの記念撮影をしておいた。

RTL8127搭載NIC(上)とAQC113C搭載NIC(下)

iPerf3の結果

 iPerf3コマンドの結果は次の通りとなった。

iPerf3の結果

 9.41Gbpsということで、10Gbpsに近い速度が出ている。

smbclientの結果

 smbclientコマンドで、Sambaサーバーに10GBのファイルを5回送信した結果が次の通りだ。

10GBファイルの転送結果

 平均997750.5KB/sは7.98Gbpsということで、全くチューニングしていないSambaサーバーの速度としては十分であろう。

低発熱で安定動作のRTL8127、今後の普及に期待したい

 消費電力は計測しなかったが、ヒートシンクを触っても熱さは特に感じなかった。少しテストしただけではあるが、RTL8127に期待される安定性、低発熱、速度はすべて満たしているように思われる。

 初物なので価格は少し高かったが、今後はこなれていくだろうし、一部のマザーボードにも搭載されるかもしれない。その起爆剤となってくれれば嬉しいものの、RTL8126がそうならなかったのは気になっている。RTL8125と同じ道を歩むのか、それともRTL8126と同じ道を歩くのか。今後が楽しみだ。