Asus XG-C100C 10GBase-T PCIe Network Adapter with Debian 9 Stretch
The Asus XG-C100C 10GBase-T PCIe Network Adapter is one of the still few available 10 gigabit Ethernet adapters, affordable for non-professional use. I thought I’d quickly note down my experience so others can maybe benefit from it.
Debian 9 Stretch
At the time I’m writing the current kernel version in stable is 4.9.88–1 which is enough to make the XG-C100C working (according to the driver readme file >= 3.10).
The latest driver code from Aquantia is available here: https://github.com/Aquantia/AQtion - the chip on the Asus NIC is an AQtion AQC107 made by https://www.aquantia.com.
The drivers I could find on their website were not the latest.
Installing the driver is straight forward just follow the simple instructions in the readme at https://github.com/Aquantia/AQtion/blob/master/README.txt.
And now enjoy your super fast 10gb Ethernet card ;)
Note: This procedure causes dmesg to display a message like “atlantic: loading out-of-tree module taints kernel.” This is because we created an out-of-tree module that was not included with the original kernel source. (source: https://www.kernel.org/doc/html/v4.16/admin-guide/tainted-kernels.html)
Advanced configuration
To use advanced configuration options which are needed for routing/bridging but maybe anyway good advice since the kernel frequently complains about GRO:
TCP: enp1s0: Driver has suspect GRO implementation, TCP performance may be compromised.
ethtool is needed:
sudo apt install ethtool
You can then switch off GRO and LRO with the following commands:
sudo ethtool -K <ethX> gro off
sudo ethtool -K <ethX> lro off
Note for Kernel 4.16 users (i.e. stretch-backports, ubuntu)
There is a bug in <4.16.6 that prevents the card from working properly I had exceptions and kernel faults. https://bugzilla.kernel.org/show_bug.cgi?id=199177