10GbE in the DeskMini X300

As my little home server I have an Asrock DeskMini X300 with an AMD Ryzen 7 5700G (16 cores) and 64GB of memory. A nice low powered home server to play around with. Out of the box, the DeskMini comes with one 1 Gbit network interface (a Realtek chipset). Since most of my devices are connected via WiFi anyway, this was more than enough until now. But then, modernity arrived in my part of the world and we now have 10Gbit fiber internet, great!

10Gbit internet sounds awesome, however devices connected via WiFi will only ever see a real-world maximum of around 700 Mbits/sec via WiFi 6. But maybe my little DeskMini could use all that 10Gbit? Unfortunately, the DeskMini motherboard does not have any of the usual PCIe expansion slots apart from SATA and M.2 slots. So I decided to try the IOCREST M.2 to Single 10G Ethernet Network Adapter (IO-M2F107-GLAN)” adapter (AliExpress link here), to see if that would work.

To be honest, I was skeptical if that thing was even gonna work at all. So once the card arrived I installed the network adapter in the M.2 slot next to the CPU cooler (it fits perfectly next to a Noctua NH-L9a-AM4) and moved my M.2 SSD to the M.2 slot at the back.

So when I booted the DeskMini the card immediately showed up as expected (I am using Fedora 39, kernel version 6.7.9-200.fc39.x86_64) in lspci:

# lspci -vv
[..]
01:00.0 Ethernet controller: Aquantia Corp. AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G] (rev 02)
	Subsystem: Aquantia Corp. Device 0001
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
[..]
	Capabilities: [40] Express (v2) Endpoint, IntMsgNum 0
[..]
		LnkCap:	Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 8GT/s, Width x2 (downgraded)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
[..]
	Kernel driver in use: atlantic
	Kernel modules: atlantic

Note that LnkSta shows as downgraded, we seem to be running with 2x speed instead of 4x. However, ethtool was showing that the card was running the full 10Gbit/s once I connected it to the 10G port on the router:

$ ethtool enp1s0
Settings for enp1s0:
	Supported ports: [ TP ]
	Supported link modes:   100baseT/Full
	                        1000baseT/Full
	                        10000baseT/Full
	                        2500baseT/Full
	                        5000baseT/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  100baseT/Full
	                        1000baseT/Full
	                        10000baseT/Full
	                        2500baseT/Full
	                        5000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 10000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
netlink error: Operation not permitted
        Current message level: 0x00000005 (5)
                               drv link
	Link detected: yes

Very nice. I then put the DeskMini back together and routed the connection cable outside. I still have to come up with a good solution on where to put the RJ45 connector, but for now it lives outside the case:

Performance-wise, it looks … fine? Typically I get around 6.5 – 7.5 Gbits/sec with iperf3. I think the below numbers are more related to my shared XGS-PON internet connection than the performance of the device and will vary throughout the day:

$ iperf3 -P 4 -c speedtest.init7.net
Connecting to host speedtest.init7.net, port 5201
[..]
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   7.00-8.00   sec   226 MBytes  1.90 Gbits/sec    0   3.15 MBytes
[  7]   7.00-8.00   sec   223 MBytes  1.87 Gbits/sec    0   3.15 MBytes
[  9]   7.00-8.00   sec   220 MBytes  1.85 Gbits/sec    0   5.49 MBytes
[ 11]   7.00-8.00   sec   222 MBytes  1.86 Gbits/sec    0   5.03 MBytes
[SUM]   7.00-8.00   sec   891 MBytes  7.48 Gbits/sec    0
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   8.00-9.00   sec   226 MBytes  1.90 Gbits/sec    0   3.15 MBytes
[  7]   8.00-9.00   sec   223 MBytes  1.87 Gbits/sec    0   3.15 MBytes
[  9]   8.00-9.00   sec   222 MBytes  1.86 Gbits/sec    0   5.49 MBytes
[ 11]   8.00-9.00   sec   223 MBytes  1.87 Gbits/sec    0   5.03 MBytes
[SUM]   8.00-9.00   sec   894 MBytes  7.50 Gbits/sec    0
- - - - - - - - - - - - - - - - - - - - - - - - -
[..]
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.16 GBytes  1.86 Gbits/sec    0    sender
[  5]   0.00-10.01  sec  2.16 GBytes  1.85 Gbits/sec         receiver
[  7]   0.00-10.00  sec  2.12 GBytes  1.82 Gbits/sec    0    sender
[  7]   0.00-10.01  sec  2.12 GBytes  1.82 Gbits/sec         receiver
[  9]   0.00-10.00  sec  2.12 GBytes  1.82 Gbits/sec    1    sender
[  9]   0.00-10.01  sec  2.12 GBytes  1.81 Gbits/sec         receiver
[ 11]   0.00-10.00  sec  2.13 GBytes  1.83 Gbits/sec    0    sender
[ 11]   0.00-10.01  sec  2.13 GBytes  1.83 Gbits/sec         receiver
[SUM]   0.00-10.00  sec  8.53 GBytes  7.33 Gbits/sec    1    sender
[SUM]   0.00-10.01  sec  8.53 GBytes  7.32 Gbits/sec         receiver

So I am quite happy with that IOCREST M.2 10Gbit network card so far, a good option if you want to add 10GbE connectivity to your Asrock DeskMini.

Hello world

My name is Simon Krenger, I am a Technical Account Manager (TAM) at Red Hat. I advise our customers in using Kubernetes, Containers, Linux and Open Source.

Elsewhere

  1. GitHub
  2. LinkedIn
  3. GitLab