Slide 1

Slide 1 text

10GbEな蟹NIC RTL8127を ラズパイの 新カーネルで 触ってみよう あっきぃ 2026/04/04 Open Source un-Conference 2026 Kawagoe

Slide 2

Slide 2 text

自己紹介 • あっきぃ です – Mastodon: @[email protected] – Misskey.io: @Akkiesoft • しゅみのかつどう – Japanese Raspberry Pi Users Group – Ejectコマンドユーザー会 • しごと – 日本仮想化技術 – OSCのWebの鯖缶

Slide 3

Slide 3 text

RPi OS Kernel 6.18 soon • https://forums.raspberrypi.com/viewt opic.php?t=394580 • 1月くらいからベータ的にやってたらしい • latest kernelが6.18系に変更 – https://github.com/raspberrypi/firmware /commit/63ad7e7980b030cb4649ecedf22 55c9226e5a1e8 – rpi-updateコマンドを実行すると適用可能 • aptの道から外れるので本番系ではやらんように

Slide 4

Slide 4 text

カーネルが6.18になると…… •RTL8127が サポートされる – ※6.16からサポート – https://pc.watch.impress.co.jp/docs/colu mn/ubuntu/2046986.html

Slide 5

Slide 5 text

RTL8127とは…… • 蟹でおなじみRealtek社の10GbE NIC • 2025年登場の新しいヤツ – 5月にComputexで発表 – 7月くらいから各所に出回っているそう • RJ-45、SFP+の両方が存在 – RJ-45は用途等に応じて3種類ある • 出典: https://note.com/ragemax/n/n880e02 26fe3c

Slide 6

Slide 6 text

RTL8127のポイント • 安い – アリエクとかを探せば5000円くらいで買える – Amazonにもあるけど安くなさそう • でもたぶん中国から発送だと思うので アリエクのほうがよさそ • 低消費電力 – RJ-45/SFP+は10Gb:1.79W、1Gb: 0.92W – RJ-45の方は5Gb: 1.37W 、2.5Gb:1.21W – 今までの10Gb NICの5Wとか10Wとは なんだったのか

Slide 7

Slide 7 text

1枚目(RJ-45タイプ) • アリエクの11.11セールでポチ。4,908円 • Windowsにつっこんだら2.5GbEでリンク – ドライバーを入れたら10GbEになった • iperf3は9.5Gbを記録

Slide 8

Slide 8 text

2枚目(SFP+タイプ) • Yahoo!フリマで1000クーポンを使って 4,700円(やっす) • もちろんWindowsでも使用可能 – iperf3は9.4Gbps – ただし、電源を切っててもケーブルを接続 してなくてもLEDが光る安定の中華感

Slide 9

Slide 9 text

ラズピッピ(Pi 5)で使おう • Pi 5のPCIeスロットから普通の PCIeスロットにするやつを適宜用意 • 52Piのやつが確実 • M.2スロットから変換するやつは 基板にチップコンデンサーがついてる やつはいけた – コンデンサーがついてないやつは 認識しなかったので今回を機に捨てた

Slide 10

Slide 10 text

こういうやつ

Slide 11

Slide 11 text

使用例 • M.2のやつはM.2 HAT+とかと 組み合わせて使う

Slide 12

Slide 12 text

OSの用意 • rpi-updateの実行 – 2回くらいYを回答して適用したら再起動 • 今のところ6.18.20 – こまめにbumpされているので、バージョンは 変わるカモ $ sudo rpi-update

Slide 13

Slide 13 text

認識! $ ip a (略) 3: eth1: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 88:c9:b3:**:**:** brd ff:ff:ff:ff:ff:ff inet 192.168.29.***/24 brd 192.168.29.255 scope global dynamic noprefixroute eth1 $ ethtool -i eth1 driver: r8169 $ ethtool eth1 Settings for eth1: Speed: 5000Mb/s • 標準ドライバーで認識できた • がしかし、5000Mb/sにしかならん

Slide 14

Slide 14 text

ドライバーの完成度起因らしい • ドライバーをコンパイルせよとのこと – 6.18にしなくても良かった説が出てきたな? • 2パターンあるらしい – r8168-dkmsパッケージを使う – RealtekのサイトからドライバーをDL • 今回は後者に

Slide 15

Slide 15 text

rpi-sourceでカーネルソース取得 • rpi-updateで適用したカーネルのソース 取得は、rpi-sourceを使う • https://github.com/RPi-Distro/rpi- source • 「~/linux-(ハッシュ値)」にソースがダウ ンロードされる – ~/linuxにリンクが貼られる

Slide 16

Slide 16 text

ドライバーのダウンロード • https://www.realtek.com/Download/ List?cate_id=584 – 「10G Ethernet LINUX driver r8127 for kernel up to 6.15」を選択 • tarballを送り込んで展開

Slide 17

Slide 17 text

コンパイル • autorun.shは使わずに、srcディレクトリ の中でmakeコマンドを実行 • r8127.ko.xzをコピー – 「6.18.18-v8-16k+」の「+」の文字が認識 されないらしい? – rpi-updateな環境特有なので普通の環境なら 問題ないハズ ~/r8127-11.016.00 $ sudo cp ¥ /lib/modules/6.18.18-v8- 16k/kernel/drivers/net/ethernet/realtek/r8127.ko.xz ¥ /lib/modules/6.18.18-v8- 16k+/kernel/drivers/net/ethernet/realtek/r8127.ko.xz

Slide 18

Slide 18 text

認識させる • depmod・rmmod・modprobeをしたら 認識するはず • そして10000Mbになった! $ sudo depmod -a $ sudo rmmod r8169 $ sudo modprobe r8127 $ ethtool -i eth1 driver: r8127 $ethtool eth1 Settings for eth1: Speed: 10000Mb/s

Slide 19

Slide 19 text

r8169をブラックリストに追加 • modprobe.d以下のなんか適当なファイル にr8169のブラックリストを追記 – 再起動してもr8127が使われるようにする $ sudo vi /etc/modprobe.d/blacklist-8192cu.conf blacklist 8192cu blacklist r8169 ←追記

Slide 20

Slide 20 text

ラズピッピでの速度は…… • 3.6Gbps……妙だな $ iperf3 -c 192.168.29.** Connecting to host 192.168.29.**, port 5201 [ 5] local 192.168.29.*** port 42642 connected to 192.168.29.** port 5201 (略) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 4.23 GBytes 3.64 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 4.23 GBytes 3.63 Gbits/sec

Slide 21

Slide 21 text

PCIe3.0x1にしてなかった • Pi 5のPCIeポートは、デフォルトでは PCIe2.0x1で動作(理論値5Gbps) • PCIe3.0x1を有効にする設定を投入すると 理論値8Gbpsになる – Pi 5での実測は6.3Gbpsくらい • RTL8127も6.3Gbps出てほしいナ……

Slide 22

Slide 22 text

PCIe3.0x1にできず • 設定を入れると起動しなくなる • BARの問題かなにかが起こる模様 • 他のオプションを試しても、起動したり しなかったり • 今のところ断念……おしい • 今のところは3.6Gbで妥協(?) – まあ2.5Gbは超えたし

Slide 23

Slide 23 text

SSDと同時に使いたい • PCIeスロットが一つしかない • そこでPCIeスイッチ系HAT – ASMedia ASM1182eとかを使用したボード • 2スロットとかに増やせるぞい! • ただしPCIeの帯域は分け合うことになる

Slide 24

Slide 24 text

こんなかんじ

Slide 25

Slide 25 text

ラズピッピ同士でつなぐと • 2台のRTL8127搭載Pi 5を直結してiperf3 すると…… • 2.5Gbps弱しか出なかった。アレ〜? • 普段は対向に自宅サーバーを使用 • Pi 5はCPUに余裕あり • なんやろね • PCIe3.0が使えればなぁ〜

Slide 26

Slide 26 text

まとめ • もうそろそろRPi OSがカーネル6.18 ベースになるぞ • OS標準のr8169ドライバーでRTL8127は まともに動かないっぽいのでドライバー をコンパイルして使おう – つまり現行の6.12でも良いということになる • みんなも蟹NICの人柱をやろう(???)