How I installed AQC107 TP-Link TX401 10GbE Ethernet Adapter and driver

Started by Mr. Me, January 22, 2024, 04:33:43 PM

Previous topic - Next topic
Hello, I just installed OPNsense for the first time.  I didn't know anything about FreeBSD, but through research, I'll give step by step of how I installed the Marvell Aquantia AQtion AQC107 driver and made it persistently load after reboot.

My install is OPNsense 23.7 which has a FreeBSD kernel version 13.  AQN107 refers to the Network card and AQC107 refers to the controller chip.
This was installed on a Dell Optiplex 7060 i7.  The driver below works with FreeBSD v13.
The TP-Link TX401 NIC is currently working on my router.  It is setup as a LAN port and is linked at 10Gb to my Zyxel XS1930-12HP switch.



Log in through the local console.

Enter shell
(Select 8)

At the command prompt #
To download the driver
# fetch https://pkg.freebsd.org/FreeBSD:13:amd64/latest/All/aquantia-atlantic-kmod-0.0.5_2.pkg

To install the driver
# pkg install aquantia-atlantic-kmod-0.0.5_2.pkg

To have the driver always load after reboot, edit the file loader.conf.local
# ee /boot/loader.conf.local

Add 1 line by typing
if_atlantic_load="YES"

(PRESS ESC key)

Leave editor
(Press a)

Save changes
(Press a)

Exit shell
# exit

Reboot system
(Select 6)

After reboot, log in through the local console.

Enter shell
(Select 8)

To check if driver is loaded after reboot (see that if_atlantic.ko is included in the list)
# kldstat

Check available interfaces.  (The AQC107 ethernet interface should be available and will be listed as aq0)
# ifconfig


Dell Optiplex 7060 SFF
Intel Core i7-8700 @ 3.2GHz, 6 cores
32GB DDR4-SDRAM 2666MHz
256GB M.2 NVME SSD storage
1x PCIe 3.0 x4 slot
1x PCIe 3.0 x16 slot
TP-LINK TX401 10GBASE-T (AQC107) NIC x4 aq0
Intel I210 1000BASE-T NIC x1 igb0
Intel I219-LM 1000BASE-T integrated em0
Zyxel XS1930-12HP 10GbE Switch

Quote from: Mr. Me on January 22, 2024, 04:33:43 PM
To have the driver always load after reboot, edit the file loader.conf.local
# ee /boot/loader.conf.local

Add 1 line by typing
if_atlantic_load="YES"

Thanks for the writeup. You can do this step in the UI so the setting becomes part of a configuration backup, just in case you ever need to reinstall.

System > Settings > Tunables.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Quote from: Patrick M. Hausen on January 22, 2024, 04:43:23 PM
Quote from: Mr. Me on January 22, 2024, 04:33:43 PM
To have the driver always load after reboot, edit the file loader.conf.local
# ee /boot/loader.conf.local

Add 1 line by typing
if_atlantic_load="YES"

Thanks for the writeup. You can do this step in the UI so the setting becomes part of a configuration backup, just in case you ever need to reinstall.

System > Settings > Tunables.


I listed this step by step with quick explanations to help others like me who are new to this.  I compiled it from bits and pieces from many posts throughout the internet.  I was tired of answers that would say, "why not just use another approved card like Intel or You have to edit a specific file, without stating how to edit the file.

Actually I tried making the driver load at boot using GUI tunables fist.
When I rebooted, I would check to see if it was loaded in the console using # kldstat, but it never was.
I tried the value YES and "YES".  It didn't seem to work.  Therefore I then used the console method of editing the file.
Unless there is something i'm doing wrong with the tunables that I can try, let me know.  Having a configuration backup is a good point.  Thanx
Dell Optiplex 7060 SFF
Intel Core i7-8700 @ 3.2GHz, 6 cores
32GB DDR4-SDRAM 2666MHz
256GB M.2 NVME SSD storage
1x PCIe 3.0 x4 slot
1x PCIe 3.0 x16 slot
TP-LINK TX401 10GBASE-T (AQC107) NIC x4 aq0
Intel I210 1000BASE-T NIC x1 igb0
Intel I219-LM 1000BASE-T integrated em0
Zyxel XS1930-12HP 10GbE Switch

I created the tunable like shown in the screenshot, save & apply - it does show up correctly in /boot/loader.conf afterwards:

root@opnsense:~ # grep atlantic /boot/loader.conf
if_atlantic_load="YES"
root@opnsense:~ #


HTH,
Patrick
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Now with FreeBSD kernel version 14

As of now, the location I used for the new driver is:

fetch https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/aquantia-atlantic-kmod-0.0.5_3.pkg

There is one other thing.  I have updated the firmware on the NIC by installing the NIC into a windows machine, browsing to https://www.marvell.com/support/downloads.html
Then selecting CATEGORY "MARVELL PUBLIC DRIVERS"
Select PLATFORMS/OS "WINDOWS"
Select PART NUMBER "AQC107"
APPLY

As of now there are 2 files listed for download.  A windows Driver and a Windows Firmware updater utility.

Download the firmware updater utility, Date: 10/07/21, Version: 1.8.0_3.1.121a
Run the program, it will update the firmware then you can remove the NIC and place it back into the OPNsense router.
Dell Optiplex 7060 SFF
Intel Core i7-8700 @ 3.2GHz, 6 cores
32GB DDR4-SDRAM 2666MHz
256GB M.2 NVME SSD storage
1x PCIe 3.0 x4 slot
1x PCIe 3.0 x16 slot
TP-LINK TX401 10GBASE-T (AQC107) NIC x4 aq0
Intel I210 1000BASE-T NIC x1 igb0
Intel I219-LM 1000BASE-T integrated em0
Zyxel XS1930-12HP 10GbE Switch