How to install drivers for a NIC? (AQtion AQC107/XG-C100C)

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
it shouldn't matter. This works for official package, for KO module i assume pre-init script works as it's not placed in /boot/modules.
Did you see the NIC in network yet? If dmesg is empty, it means module is OK but you don't have the actual hardware NIC.
 

Zyrox

Dabbler
Joined
Aug 7, 2019
Messages
10
i assume pre-init script works as it's not placed in /boot/modules.
Ok then I'll delete it.

Did you see the NIC in network yet?
No, unfortunately I don't see it. My Motherboard has two NICs one for IPMI the other one is an Intel 1Gbps. It could be possible that I have to put it into an other PCI Slot but I don't think so. My Supermicro X11SCA-F board has a PCIe 3.0 x4.

If I type dmesg there is a lot of stuff but at the end is nothing only something with Ethernet address:
 

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
bumped the 5gbit adapter speed to 3.7gbps and 430MBs which now exceeds other distros. Autotune + disable offloads and maxed out buffers on PC NIC.
bumped RAID (4x drives) internal writes to double (400->800) by allowing massive zfs dirty cache and removing all 5sec flush references. This might not work for super huge copies, but defly works for large transfers of several 10GBs. Internal regular "SnapRaid" process NVME->RAID will be super fast.
ultimately i want to tweak Samba, as it's the major bottleneck. SMB RAIDZ1 read speeds are at SingleDriveSequantialSpeed * 1 instead of theoretical * 3. I reckon IOPS could be * 1, but not streaming. DD is double, i don't like 50% loss. That means when i switch to 10gbit NIC, it will not do 1GB/s from NVME.
still i bumped speeds here too, using windows dialog instead of my file manager (which does use system copy routine and was ok until now, great for real benchmarks, measures times and speeds and unlike other filemanager works with /dev/null), reduced writes to half, now outperforming other scenarios (incl. debian w/benefit of no encryption). Reads are same, now effectively slower than writes while cache. Puzzling.
 

djruoss

Cadet
Joined
Nov 30, 2019
Messages
7
Hi,
First of all I want to thank you for having shared these precious info about this Aquantia chip based cheaper NIC.

This is my first post and it's been long time that I'm going to implement a Freenas solution and now, I'm seriously determined to do it, so I'm studying and experimenting a lot to be aware about all the features offered by this fantastic Open NAS solution.

Last Year I bought 2 Asus XG-100C 10Gb NIC and I've been using them on 2 DIY Home server with Ubuntu on board; the iperf command output on both server is attested on an average of 9.90 Gb/s; I also attached screenshots about the transfer rate (10 files 2,1GB each copied in parallel from 1 server to the other one; the destination mount point was a ramdisk and the transfer rate was 967,9 MB/s).

I installed a Freenas 11 (latest version relased on Nov 18 2019) on one of the 2 machines and as stated from @Zyrox the Asus XG-100C wasn't recognized by the OS; following the instructions in latest @Zyrox's post, the NIC is now visible and I was able to configure a static IPv4 address, but as you can see from the ifconfig output command it results to be in no carrier.
At the end it seems that the OSI 1st level is ensured but other than this it doesnt't go over: I'm not able to ping and do anything else.

Do you have any advice on that?

Looking forward to your feedback, have a good day!

PS: the mac addresses are blanked
PPS: in case let me know if need further details
 

Attachments

  • Filezilla-Transfer-Rate.png
    Filezilla-Transfer-Rate.png
    205.6 KB · Views: 755
  • Freenas-AsusXG-100c.txt
    4.7 KB · Views: 679
  • NetworkMonitor.png
    NetworkMonitor.png
    25.9 KB · Views: 737

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
those were my instructions :p i also have an interface in "status: no carrier" if i test set up ip before plugging.
solution:

Code:
- plug in the cable
- activate network on the other side
- check led lights status
- dmesg|grep -E "Ethernet|atlantic|aq0" and other commands (#19 etc) to find out what's happening
 

djruoss

Cadet
Joined
Nov 30, 2019
Messages
7
Thank you very much @appliance for the prompt response.

Since I've installed the FreeBsd 11.2u7, installing the driver by pkg is not the best way and I've experienced the same problems occurred to @Zyrox.
It seems that only copying the driver compiled from @Luckas in /boot/modules and using kldload command let me to recognise the NIC from ifconfig, messages log, dmesg command and Freenas web gui.

About your advice:
Code:
- plug in the cable
- activate network on the other side
- check led lights status
- dmesg|grep -E "Ethernet|atlantic|aq0" and other commands (#19 etc) to find out what's happening

unfortunately, does not solve the problem, the only thing that I faced is, having the ping command running on the client side the output is the host is down and when I restart the Freenas network service and the Nic leds are off during the restart, from the client side I see the ping packet arriving to Freenas; after the Freenas has completed the restart process and the Nic leds are on, the ping from the client side switch to the host is down.

I've tried all the commands in this thread and the outputs are the same, so the question is, with all due respect: what is the magic action to let this Nic run properly? and last but not least, what is the correct procedure to let this NIC work properly after a restart in a clean mode?

If there is not a procedure I'm strongly available to experiment and in case, with the help of you all, create and share it (since I'm aware that this NIC is not in the compatibility list, but it should be?!?!)

I hope the way I wrote will be not interpreted in any way other than the fact that I would like to solve the issue, thank you in advance.

PS: in case you can contact me in private
 

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
thanks @djruoss i wish you good luck in experimenting. i am surprised why noone can have success with the package. i reckon it could be because of mixing both methods. or the driver fits my 11.3 better? hmm i think functionally it's the same driver. i wonder what the dmesg showed for you (during the restart operation) and ifconfig. it worked briefly, so you're close to configure it well imo.
 

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
after upgrade (11.3beta->RC) got lost the network driver and all loader/sysctl settings, so this time i manually entered them into autotunes (if_atlantic_load=YES), installed package and it loads ok. however, i will need to install package each time.
for samba, the technique of spreading transmission into all NICs works, but it's slow overall.

NIC1 5gbit speed 1.5gbs
NIC2 1gbit speed 0.8gbps
=2.3gbps

vs

NIC1 5gbit speed 3.5gbps

well, i'd expect 3.5 + 1 = 4.5gbps, but can keep dreaming. the parameter goes therefore off:
server multi channel support = no
 

Anda

Explorer
Joined
Aug 12, 2015
Messages
63
I tried all commands in this thread again but It just won't work for me. I even upgraded my NAS (old slow HP ProLiant G7 MicroServer N54L) and did a fresh install of FreeNAS. I'm also available for experimenting aswell. I finally wanna use this NIC. :)
 

JustinClift

Patron
Joined
Apr 24, 2016
Messages
287

Anda

Explorer
Joined
Aug 12, 2015
Messages
63
@appliance As a general thought, are you familiar with GitHub?

If you are, maybe submitting a Pull Request to the FreeNAS repository with the new atlantic driver would be useful? That would include it in future FreeNAS releases. :)


That's already done tho. See here https://jira.ixsystems.com/browse/NAS-101990. And for months there is no new commit done by Aquantia https://github.com/Aquantia/aqtion-freebsd/commits/master. Since they got bought by Marvell I don't have any expectations anymore. They don't answer any emails, unlike Aquantia.
 

JustinClift

Patron
Joined
Apr 24, 2016
Messages
287
Ahhh, sorry. Didn't see it in the kernel config file above, and didn't look further. :oops:

It's disappointing about Marvell's ownership, which could put a nail in the Aquantia drivers coffin. :(
 

appliance

Explorer
Joined
Nov 6, 2019
Messages
96
well, Marvell or not, these cards are far cheapier than Intel whose overpriced NICs effectivelly raise the cost of your NAS by a huge margin (even +100% for a microserver). Glad to find this brand, and it is used by Qnap, so it's not exotic and it works. :) we don't need any updates, the drivers are already written for freebsd 11, 12 and 13.
 

JustinClift

Patron
Joined
Apr 24, 2016
Messages
287
Good point. Guessing you've already looked at Mellanox cards?

They're usually the "go to" cards for anyone wanting cheap + fast, as Ebay normally has a lot and they work really well. :)
 

AlexK

Cadet
Joined
Feb 5, 2020
Messages
1
Thank you all very much this procedure worked great!

#1 Copy file to a fat32 USB drive from internet
file name = if_atlantic.ko (someone pre compiled it tyvm luckas!)
----------------------------------------------------------------
#2 Mount a USB Drive in freenas.
view usb drive path:
dmesg | tail (shows da0 for my usb drive)
mount_msdosfs /dev/da0s1 /mnt
(If mount_msdosfs: /dev/da0s1: Invalid argument)
then its probably an NTFS drive not fat32
--------------------------------------------------------------------
#3 copy driver to /boot/modules folder
cp /mnt/if_atlantic.ko /boot/modules
--------------------------------------------------------------------

#4 Test the driver
to load the driver manually:
cd ..
kldload ./if_atlantic.ko
---------------------------------------------------------------------------------------------
#5 tell system to load the driver on startup
echo 'if_atlantic_load="YES"' >> /boot/loader.conf

More Notes and Commands:
What network card do you have?
% pciconf -lv | grep -B3 network
What net config?
% ifconfig
View boot up log messages
more /var/run/dmesg.boot
 

guemi

Dabbler
Joined
Apr 16, 2020
Messages
48
Hello,
I've send a few messages to Aquantia and I've finally found how to compile the driver.
The last github version is here (now v0.0.4): https://github.com/Aquantia/aqtion-freebsd/archive/master.zip
I've compiled the driver and obtained the if_atlantic.ko file.
The instructions to compile are:
  1. Load sources: fetch -o /tmp ftp://ftp.freebsd.org/pub/`uname -s`/releases/`uname -m`/`uname -r | cut -d'-' -f1,2`/src.txz
  2. Become superuser: su
  3. Unzip sources: tar xzf /tmp/src.txz -C /
  4. Download archive with driver and extract it
  5. Build driver: make
  6. Load driver: kldload ./if_atlantic.ko
I've attached here the if_atlantic.ko result file.


Trying to do this, I run into this error:


root@freenas[...-freebsd-master/aqtion-freebsd-master]# make
make: "/usr/share/mk/bsd.kmod.mk" line 12: Unable to locate the kernel source tree. Set SYSDIR to override.


Any ideas what to make of that? I am far from a FreeBSD expert.
 

guemi

Dabbler
Joined
Apr 16, 2020
Messages
48
Trying to do this, I run into this error:


root@freenas[...-freebsd-master/aqtion-freebsd-master]# make
make: "/usr/share/mk/bsd.kmod.mk" line 12: Unable to locate the kernel source tree. Set SYSDIR to override.


Any ideas what to make of that? I am far from a FreeBSD expert.


However, downloading your attached file and loading it worked splendid! :smile:
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
You're probably going to want to add a tunable to make sure that loads at every boot:
Type: loader
Variable: if_atlantic_load
Value: yes
 

guemi

Dabbler
Joined
Apr 16, 2020
Messages
48
You're probably going to want to add a tunable to make sure that loads at every boot:
Type: loader
Variable: if_atlantic_load
Value: yes

Where is this entered? /boot/loader.conf?

Thanks :)
 
Top