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
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.
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
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
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 (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.