Can't assign NIC [Aquantia Corp. AQC107]
-
2.4.5-RELEASE-p1 (amd64)
built on Tue Jun 02 17:51:17 EDT 2020
FreeBSD 11.3-STABLEBeen using pfsense for years now, with the two onboard 1G NICs that are on my motherboard.
I now want to add this new NIC to handle my LAN traffic while I use the newly freed up NIC to handle IPCamera traffic.pciconf -lvb
:none2@pci0:1:0:0: class=0x020000 card=0x872e1043 chip=0xd1071d6a rev=0x02 hdr=0x00 vendor = 'Aquantia Corp.' device = 'AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]' class = network subclass = ethernet bar [10] = type Memory, range 64, base 0xf7840000, size 65536, enabled bar [18] = type Memory, range 64, base 0xf7850000, size 4096, enabled bar [20] = type Memory, range 64, base 0xf7400000, size 4194304, enabled
The NIC is detected, but I'm not sure why I can't assign it.
EDIT:
Maybe I need the driver? https://driverdownloads.aquantia.com/I don't see anything in the documentation regarding driver installation. Apparently I need to build pfsense from scratch?
-
@Roy360 said in Can't assign NIC [Aquantia Corp. AQC107]:
Apparently I need to build pfsense from scratch?
Noop.
The driver is loaded by the kernel, FreeBSD 11.3 so a "FreeBSD 11.3 system' with compile and link tools will do.It's probably a lot easier to check if a NIC is supported before you get your hands on one.
-
Also see:
https://github.com/pfsense/FreeBSD-ports/tree/devel/net/aquantia-atlantic-kmodand:
https://github.com/Aquantia/aqtion-freebsdBut we do not build that port. It's labelled 'developer preview' which should tell you something. As far as I know it's untested in pfSense.
Steve
-
@Gertjan
I normally just buy Intel NICs, but this NIC came bundled with my ASUS motherboard.I upgraded to 2.5 development in hopes it might have the driver included, but it didn't, and I couldn't find any detailed steps on how to add drivers so I'm just going to buy a chinese Intel NIC off eBay.
In 1-2 months I'll have my security cameras up and running
-
Seems like the driver can't get compiled against FreeBSD 11.3
FreeBSD 12.1 is working fine, but I'm not able to upload files to the forum anymore. Should work with pfSense 2.5.x at least.-Rico
-
Here you go: https://fil.email/i9PmzTNH
Should work for 2.5.0 and could work for 2.4.5 (don't think so).Disclaimer:
Use at your own risk, take a backup first. I'd not put that in business production, should be fine for home use or playing around in a lab environment.-Rico
-
How the Installation should work (dry run / not tested, I don't own this NIC):
Unzip the file and place if_atlantic.ko into the /boot/kernel/ folder.
Change permissions via console or SSH:chmod 555 /boot/kernel/if_atlantic.ko
Edit /boot/loader.conf.local and add to the end of the file:if_atlantic_load="YES"
Reboot pfSense and see what happens. ;-)-Rico
-
stephenw10 Netgate Administratorlast edited by stephenw10 Jul 15, 2020, 5:23 PM Jul 15, 2020, 5:22 PM
Just to test it you can also run at the CLI:
kldload if_atlantic.ko
That way if is fails and causes a panic it will still reboot again without loading it.
Steve
-
Thanks for this hint Steve.
-Rico
-
Guess how I'm aware of that trap and what a PITA it is escaping it.
-
@Rico said in Can't assign NIC [Aquantia Corp. AQC107]:
Here you go: https://fil.email/i9PmzTNH
Should work for 2.5.0 and could work for 2.4.5 (don't think so).Disclaimer:
Use at your own risk, take a backup first. I'd not put that in business production, should be fine for home use or playing around in a lab environment.-Rico
@stephenw10 said in Can't assign NIC [Aquantia Corp. AQC107]:
Just to test it you can also run at the CLI:
kldload if_atlantic.ko
That way if is fails and causes a panic it will still reboot again without loading it.
Steve
Works like a charm and only took a few seconds....
Thanks guys!Going to spend a few days testing before I make the change permanent.
-
Glad you have it working.
Did you also try with 2.4.5-p1 ?-Rico
-
@stephenw10
As THE hardware expert, any idea why make goes downhill in 11.3? ;-)root@freebsd11:~/freebsd-drv-v0.0.2 # make machine -> /usr/src/sys/amd64/include x86 -> /usr/src/sys/x86/include awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/net/ifdi_if.m -h :> opt_rss.h Warning: Object directory not changed from original /root/freebsd-drv-v0.0.2 cc -O2 -pipe -DIFLIB -ferror-limit=1 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/include -I. -I/usr/src/sys -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD -MF.depend.aq_main.o -MTaq_main.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999 -c aq_main.c -o aq_main.o aq_main.c:260:3: error: field designator 'isc_tso_maxsize' does not refer to any field in type 'struct if_shared_ctx'; did you mean 'isc_tx_maxsize'? .isc_tso_maxsize = HW_ATL_B0_TSO_SIZE, ^~~~~~~~~~~~~~~ isc_tx_maxsize /usr/include/net/iflib.h:236:13: note: 'isc_tx_maxsize' declared here bus_size_t isc_tx_maxsize; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 2 errors generated. *** Error code 1 Stop. make: stopped in /root/freebsd-drv-v0.0.2 root@freebsd11:~/freebsd-drv-v0.0.2 #
Also tried 11.2 with the same Error. 12.1 is just fine.
I don't have any personal use for this driver, but like to understand what's going wrong there and maybe can give some more help for Roy. :-)-Rico
-
Ha, I think you've promoted me.
I would guess it's because that is a driver built on iflib and some part of that is missing. A number of drivers are using that now but only in FreeBSD 12 AFAIK. But that is a guess, my coding skilz are.... not great!
-
I was able to build driver version 0.0.5 for FreeBSD 11.3 (pfSense 2.4.5-p1):
https://fil.email/Y9QJQFqvAnd here is 0.0.5 for FreeBSD 12.1 (pfSense 2.5.0):
https://fil.email/RdjhicBA-Rico
-
@rico said in Can't assign NIC [Aquantia Corp. AQC107]:
I was able to build driver version 0.0.5 for FreeBSD 11.3 (pfSense 2.4.5-p1):
https://fil.email/Y9QJQFqvAnd here is 0.0.5 for FreeBSD 12.1 (pfSense 2.5.0):
https://fil.email/RdjhicBA-Rico
@Rico Could I trouble you to repost these files? They are expired and it would be a great help. Thanks!
-
Yeah sure.
FreeBSD 11.3 (pfSense 2.4.5-p1): if_atlantic0.0.5_freebsd11.3.zip
FreeBSD 12.1 (pfSense 2.5.0): if_atlantic0.0.5_freebsd12.1.zip
They should stay permanent now because I can upload zip files to the Forum again.-Rico
-
@rico Thanks, worked perfectly.
-
@rico URGENT Any chance you could compile for FreeBSD 12.2-STABLE for 2.5.0-RELEASE? The version for 12.1 above crashes it, unsurprisingly...
Thanks in advance!
-
You should compile it yourself or use the kmod port in FreeBSD 12.2.
It's unlikely there is any issue here but downloading and installing random binaries from the forum is really not a great habit to get into.
Steve