[Jan 14] KDE Neon (20190113-1500) - Pinebook1080P / Pinebook |[Jan 14] Q4OS (2.7-r1) - Pinebook1080P / Pinebook | [Dec 07] DietPi(v6.18) - Pinebook / Manjaro KDE (preview3) / Manjaro LXQT (preview3) - Pinebook |[Dec 06] Armbian Debian Stretch (5.67) / Armbian Ubuntu 18.04 Bionic Desktop (5.67) - RockPro64 |[Dec 05] DietPi(v6.18) - 1080P Pinebook

Project Inspiration | Get Started | IRC Logs | Forum Rules/Policy

ROCKPRO64 with 10GbE NICs
I bought a RockPro64 and am trying to build a budget 10GbE storage.
I plugged an AQC107 based ASUS 10GbE card (XG-C100C) into its PCIEx4 adapter and Samsung 860EVO 1TB via USBC-SATA conversion cable (lsusb shows "ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge"), and no problem mounting it.

The image I chose this time is stretch-minimal-rockpro64-0.7.11-1075-arm64 and the driver for the card is Atlantic driver (Atlantic-
I downloaded the driver from Aquantia's website and had no problem building and installing.
After 'modprobe atlantic' the board immediately recognized the card as enp1s0. Then its idle power consumption (with all devices active) is around 10W, whose almost half the 10GbE card accounts for.

After changing its MTU from 1500 (default) to 9000, I performed iperf and I got a result around 2.70Gbps, though it seems that the result is not stable, sometimes the value going down to 2.30Gbps or lower.
I don't know why but manually assining iperf processes to a specific core (taskset -c 5 iperf -s, for example) seems to offer better and stable results that is 3.00Gbps.

At this point the effective speed as a NAS (sharing the SSD through SMB and mount it from a Windows client, transferring large data manually and observe how much it takes to complete) is approx. 330MB/s for read and write, and 4k random read/write is 7MB/s and 4KB Q8T8 and 4K Q32T1 for read are both 117MB/s, while it's both 100MB/s for write, says CrystalDiskMark 6.0.2. The peak power consumption is just 15.0W, so it's very power-efficient compared to x86-based 10GbE systems.

This is a great gain to have, considering the limit ROCK64 has.
Currently I have an impression that RockPro64 is an ideal solution for HDD-based NAS, and it would be fun if I would buy more boards and build a distributed system. But it's a little slow for SSD-based NAS, especially when looking at random read/write values.

I wonder if there is anyone who have had more comfortable results with 10GbE NICs and SSDs, to know whether I can get more out of this board or I've reached the limit.
Launching iperf multithreaded (-P6) greatly increased total bandwidth from 3Gbps at most to over 9Gbps, but after all SMB is not multithreaded and what matters most is achieving higher single-thread performance for personal use.
I admit there is room for optimization, so I will post if I have a significant improvement in performance.
Hi and thanks for the report, I have tested my RockPro64 with a Mellanox 10GbE card and came to similar conclusions, while you can use the network bandwidth, you need a multi-threaded/high performance server process as well, otherwise you will get limited by the single core A72 throughput.... 330MB/s linear doesnt sound too bad, with the theoretical limit for the USB3/UAS SATA stuff being 390MB/s...
Come have a chat in the Pine A64 IRC channel >>
Additional SMB info that I always post:

Don't forget "min protocol = SMB2" in your Samba config (and restart smbd), because otherwise it allows for SMB1, and Windows could accidentally select SMB1 instead of SMB2 unless you ALSO configured your Windows client specifically NOT to use SMB1.
On the Windows side: https://support.microsoft.com/en-us/help...indows-and
It's best to specify on both ends that you want SMB2 so there's no way it can mess up.

[ If you've already mitigated Windows for 'wannacry', then you should have SMB1 off and SMB2 on already. ]

( In the future, we'll want SMB3, but Samba's SMB3 support is limited. You could try 3 if you are able, but I personally haven't tested Samba's SMB3 since I can't exceed SMB2 performance. )
I have already done some quick performance tuning, including specifying SMB protocols. After observing CPU usage gets 100% when performing sequential read/write, it seems I've reached limit as xalius mentioned. And yes, considering SSDs are converted via SATA-USB cable, sequential read/write speed is actually quite good, though 4k speeds are unproportionally slow (7MB/s is extremely slow) compared to sequential ones, and CPU usage does not get 100%.

Actually, performing random 4K benchmark with fio command on the SSD directly (of course connected to RockPro64 via SATA-USB cable) showed that it's capable of at lest 5500IOPS, namely 22MB/s for both read and write. I'll continue to find out whether I can have some improvement on this.

That said, the fact that you can get a NAS kit that is able to serve at over 300MB/s sequential speed well below 200USD (including 10GbE card price) is very impressive. It could serve near 10Gbps if the workload is highly optimized for multithreading, though what kind of workloads can get the most bandwidth out of the board remains to be seen.
In terms of network storage, if one need more sequential performance, it might be a time to consider buying Armada 8040 (Quad A72 and native SATA, 10GbE support) based boards or just grabbing a cheap x86 ITX boards and Pentium or something. But then the total system cost (excluding storage) suddenly got well over 300USD, and it just starts to feel no hobby anymore.
(12-17-2018, 06:44 AM)H.HSEL Wrote: I bought a RockPro64 and am trying to build a budget 10GbE storage.
After changing its MTU from 1500 (default) to 9000, I performed iperf and I got a result around 2.70Gbps, though it seems that the result is not stable, sometimes the value going down to 2.30Gbps or lower.
I don't know why but manually assining iperf processes to a specific core (taskset -c 5 iperf -s, for example) seems to offer better and stable results that is 3.00Gbps.


I also tested aquantia cards and came to the result, that the driver has poor performance, i.e. missing offloading capabilities. I also have an tehuti tn4xxx network card. This one gave me about 9GBit/s single threaded iperf3 performance, a lot better. Even vlan offloading works.

If you want to give it a try, you have define RX_REUSE_PAGES in tn40.h
Thanks for the info, definitely it's worth considering, though I don't have one currently.
Now I've found out that (user configurable) offloading features are all on by default (by looking at the config header file specified in README) for Aquantia drivers.

I changed the card to Intel X550-T2 based card, installed ixgbe driver and performed the same test to confirm that it can serve at more decent speed that is 4.76Gbps, and CPU usage was about 77%, not 100% that was observed on the Aquantia one.
Nominal performance (namely CryltalDiskMark scores) also improved by about 10% (except 4KB Q1T1 random R/W), though perceived performance was almost the same (Windows file transfer says actual speed is 330MB/s).
(12-19-2018, 06:45 AM)H.HSEL Wrote: Intel X550-T2 

This is perfect for pfsense since its Intel. 
Any chance you could try it, as a 2 port switch perhaps connected to 2 computers with ramdisk each. 

Interested to see it achieving 10gbps as its only routing the bandwidth, not writing anything on rockpro64. If this works, it could easily be paired with MikroTik CRS305-1G-4S+IN = $100+. 


  1. 10gbps ISP WAN > Rockpro64 (10gbe WAN Router) > MikroTik (4 port 10gbe switch)
  2. $200-250 10gbe router config 
  3. Low power, low noise potentially fanless 10gbe router
How did you guys make Intel X550-T2 or Mellanox 10GbE card work on Rockpro64?

I tried both with ayufan's release and Linux always boot fail (kept crash and reset board) once Intel/Mellanox NIC plugged in.
Armbian's release can boot to Desktop but "lspci" command always crash.

Which Linux image were you using, and is there any specific setting/configuration required?
I found the following CentOS 7 image for Rockpro64 can work with 10GbE NIC adapters.

But it appears all PCIe adapters (inlcuding NVMe SSD) can only link-up at PCIe Gen2 x2, as showing below.
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 (prog-if 02 [NVM Express])
LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM not supported, Exit Latency L0s unlimited, L1 <64us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
And I tested again with Ayufan's 0.7.11-1075 image, NVMe SSD is linked at Gen2 x4 width, but 10GbE NIC does not work with this image.

Possibly Related Threads...
Thread Author Replies Views Last Post
  Rockpro64 CPU fan mikeD 18 3,679 02-09-2019, 06:15 AM
Last Post: tuxd3v
  7″ LCD Pine64 touch screen + RockPro64 + Linux Impact 0 60 02-07-2019, 04:03 AM
Last Post: Impact
  12V Molex for powering rockpro64 smx 4 176 02-05-2019, 08:59 AM
Last Post: nuumio
  Camera support for linux image in rockpro64 rahulsharma 1 162 01-26-2019, 09:48 AM
Last Post: anykey
  Cannot get RockPro64 to boot randyc 7 465 01-24-2019, 09:11 PM
Last Post: 40four
  Anybody built a RockPro64 Cluster ? axelf 7 740 01-24-2019, 08:14 PM
Last Post: 40four
  Only ttyS2 working with rockpro64. rahulsharma 1 128 01-15-2019, 12:33 AM
Last Post: rahulsharma
  RockPro64-AI ASword 7 3,577 12-03-2018, 07:59 AM
Last Post: aibarboza
Photo RockPro64 Case 2x3.5" HDDs and 2x2.5 HDDs Luke 38 10,312 11-05-2018, 11:12 PM
Last Post: ootoovak
  Plexdrive on RockPro64 carracedo 0 307 10-27-2018, 04:43 PM
Last Post: carracedo

Forum Jump:

Users browsing this thread: 1 Guest(s)