10GbpsのPCIe Ethernetカードを使ってみました。iMac Pro (2017) で使われているAquantia AQC107というチップを搭載したカードです。ドライバーが元々のmacOSに含まれているのでkext不要で動きます。同じチップ搭載でも、簡単なパッチが必要な製品と、OOBで動く製品があるようです。
Table of Contents
ASUSの10Gbps Ethernetカード
フォーラムで教えていただいたMorgonautさんのビデオで、ASUSの10 Gbps EthernetカードがCatalinaでOOB動作すると紹介されてました。
紹介されているのは、ASUS 10Gネットワークアダプタ PCI-e x 4 カード XG-C100C という製品です。
このカードを、実はかなり前に買ったのですが、macOSで動かなくてお蔵入りになってました。「OOBで動くようになっていたのか」と思い、発掘して(なかなか見つかりませんでした)試してみました。結論から言うと、OOBでは動きませんでしたが、パッチを当てて動くようになりました。
Aquantiaチップ用パッチ(Big Sur版)
Aquantiaの10Gbps EthernetカードのためのBig Sur版のパッチが以下で紹介されていました。これを使いました。動かした環境はZ390 + 9900K + OpenCore 0.6.4 + Big Sur 11.1です。
Kext to patch = com.apple.driver.AppleEthernetAquantiaAqtionFind: D4TAAgAAReplace: Zg8fRAAAFor Opencore config using PListEdit Pro for example, open config.plist and under Kernel-Patch. Create a new entry Comment AQC 107... How to fix Aquantia 10 Gb Ethernet for Big Sur - tonymacx86.com |
AppleEthernetAquantiaAqtion.kextを以下のように書き換えれば良いようです。このkextは、
Kext: com.apple.driver.AppleEthernetAquantiaAqtion Find: D4TAAgAA (16進数: 0f 84 c0 02 00 00 ) Replace: Zg8fRAAA (16進数: 66 0f 1f 44 00 00 )
このkextの実態は以下の場所にあります。
/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleEthernetAquantiaAqtion.kext
テキストエディタで作業するなら、OpenCoreのconfig.plistのKernel, Patchの項目に、次のdictを足せば良いです。
<dict> <key>Comment</key> <string>ASUS XG-C100C (Aquantia AQtion AQC-107)</string> <key>Count</key><integer>1</integer> <key>Enabled</key><true/> <key>Find</key> <data>YnVpbHQtaW4=</data> <key>Identifier</key> <string>com.apple.driver.AppleEthernetAquantiaAqtion</string> <key>Replace</key> <data>YmJiYmJiYmI=</data> </dict>
PlistEDPlusで作業するなら、以下のようにします。
このように追記したconfig.plistを保存して再起動したところ、10G bps Ethernetカードが動きました。今のところ特に不具合はありません。
iperf3で動作試験
Morgonautさんのビデオではiperf3というツールで速度測定してました。これはLinuxなどで一般的な測定ツールのようで、Homebrewからbrew install iperf3コマンドでインストールできました。iperf3コマンドを2台のコンピュータで動かし、それぞれをサーバーとクライアントにして、通信速度を計測するツールです。
今回、ASUSの10Gbpsカードを取り付けたのがZ390マザーボードです。測定の相方は、ASUS ROG STRIX Z490-GのマザーボードにmacOS Big Surをインストールしたコンピュータです。このマザーボードには2.5 GbpsのIntel I225-Vが搭載されています。1Gbps超えのハブを持っていないので、ASUSの10GbpsカードとZ490をEthernetケーブル(CAT 6Aで十分らしいです)で直結しました。
Z390 (Aquantia 10Gbps) <-----> (Intel 2.5Gbps) Z490
それぞれのマシンに手作業で適当なアドレスを割り当てておきます。まずは、Z490マシンでiperf3をサーバーモードで動かしました。
iperf3 -s
一方、10Gbpsカードが載ったZ390マシンでは、サーバアドレスを指定して、クライアントモードでiperf3を動かしました。
iperf3 -c 192.168.x.x
その結果、両方に同じ測定結果が表示されます。クライアント側の表示を以下に示します。
% iperf3 -c 192.168.x.x Connecting to host 192.168.x.x, port 5201 [ 5] local 192.168.x.x port 49648 connected to 192.168.x.x port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 244 MBytes 2.05 Gbits/sec [ 5] 1.00-2.00 sec 246 MBytes 2.06 Gbits/sec [ 5] 2.00-3.00 sec 247 MBytes 2.07 Gbits/sec [ 5] 3.00-4.00 sec 244 MBytes 2.05 Gbits/sec [ 5] 4.00-5.00 sec 247 MBytes 2.07 Gbits/sec [ 5] 5.00-6.00 sec 245 MBytes 2.05 Gbits/sec [ 5] 6.00-7.00 sec 247 MBytes 2.07 Gbits/sec [ 5] 7.00-8.00 sec 245 MBytes 2.05 Gbits/sec [ 5] 8.00-9.00 sec 250 MBytes 2.10 Gbits/sec [ 5] 9.00-10.00 sec 249 MBytes 2.09 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 2.41 GBytes 2.07 Gbits/sec sender [ 5] 0.00-10.00 sec 2.41 GBytes 2.07 Gbits/sec receiver iperf Done.
結果は2.07Gbpsと、2G以上の速度が出ていました。片方が2.5 Gbpsなので、それ以上は出ません。ネットの転送には色々オーバーヘッドがあるので、これくらい出ていれば十分だと思いました。また、今まで相方がいなかったので不明だったのですが、Z490の2.5Gオンボード有線LANが性能通りの速度で動いていることも確認できました。
OOBの10Gbpsカード
同じAquantiaのチップ搭載カードでも、Sonnet Presto Solo 10GBASE-T Ethernet PCIeカードならばOOBで動くようです。以下のAmazonの販売ページにも、macOS対応と書かれてます。ASUSのカードより3,000円ほど高価です。今回はたまたま手元にASUSのカードがあったのでそれを試しましたが、この価格差ならば、パッチが不要なSonnetカードの方が良いと思います。