A $300 small external Thunderbolt 25G Ethernet Adapter for Macs:
Enclosure: Wikingoo M1 (~$200 from Aliexpress, search for "Mini egpu")
Adapter: Nvidia Mellanox ConnectX-4 Lx (MCX4121A-ACAT with low-profile bracket) (~$100 from Ebay)
Driver: Apple's Mellanox driver (integrated in macOS Ventura)
Some notes:
- The ethernet adapter came with a Huawei firmware; I flashed the regular Mellanox firmware to it (using a Linux box).
- The ConnectX-4 Lx consumes around 10 watts, so it needs some airflow (see manufacturer specifications). The Wikingoo M1 doesn't have any active cooling, so I had to find way to install a fan. Luckily, the board contains an EPS12V connector (alternative power input?). It can be utilized as a 12V power source for fans. I've installed two 60x60x10mm fans that ensure both the ethernet chip and the pluggables will stay cool (at the expense of some noise, despite using Noctua NA-SRC10 low noise adapters). Maybe the QNAP QXG-25G2SF-CX6 PCIe card would be a better fit – same Mellanox chipset but with an integrated fan.
- I'd assume that performance is not quite as good as the (pretty expensive) solutions from ATTO and Sonnet. However, I like the ability to use the device without any additional driver.
- The Thunderbolt bridge is bus-powered, but the PCIe card is powered by an external 12V power supply. The Thunderbolt spec only guarantees 15 watts of power anyway, so powering a ConnectX-4 over a Thunderbolt connection is probably impossible.
Hey thanks for posting this, it was really helpful to know that an mlx5 driver is in macOS now and it allowed me to pull the trigger on a ConnectX-4 card. I was able to order a MCX455A-ECAT for around $70, this is actually a 100Gbit card with the 16 PCIe lanes as well, I felt good about one of the cheapest available options being a 100Gbit capable card, so I don't have to even flash it to run that speed. Also, it is known that almost all of these CX4 cards can be flashed to unlock 100Gbit on them!
Still, the dual port cards are all at around the $140 mark or higher so I am grateful to get something functional for my Apple Silicon macbook without breaking the bank, since this time all I needed to buy was the CX4 card, which is perfect. It works with this old Sonnet eGPU enclosure I have. it's comically big for this tiny card, and the card I have does not have a full height bracket, but it works! It did not show any signs of life until I set it to Ethernet mode with `mlxconfig` with my linux machine. But I am sure this workflow only affects VPI cards that are capable of Infiniband, they tend to come configured for IB by default.
I haven't configured packet size and I am getting 12Gbit between this CX4 and a CX3 on my linux box. I'm not sure if that's to be expected or not.
What configuration did you do to push nearly 20Gbit with yours? I'm worried that jumbo packet size configuration is the only knob we have to tweak. It does not seem like RDMA will come to macOS any time soon. Not sure.
At any rate even with roughly 10Mbit it's already worth drilling some holes and running fiber into my living room, so I can finally have a handy USB-C cable that charges the macbook while also giving it full gigabit internet speed as well as let me actually transfer data faster than I can with external storage.