Usage of Intel E610 network cards under OPNsense 25.7 with Free BSD 14.3
With the open source firewall OPNsense, hardware support generally depends on the drivers, which are supplied with the FreeBSD kernel. It may happen that there are new drivers available from the manufacturer that are included later in the FreeBSD kernel. For this reason, new hardware is not directly recognized, for example Intel E610 network cards. However, there is the possibility of starting the driver manually. This article shows how to update the driver under OPNsense 25.7 so that these network cards can still be used now.
Situations of manual driver installation
The Intel E610-based network interfaces are not recognized and can not be used. The FreeBSD 14.3-RELEASE integrated driver, that is integrated in the kernel, is too old. The current driver (version 3.4.31) must be compilated manually and installed. After every OPNsense update, especially when a new kernel is installed, the driver must be compiled and attached. Please note that this can lead to problems during updates. Therefore, we do not recommend the productive operation with OPNsense and E610 network cards. The new driver should probably be included with OPNsense 26.1 or 26.7 in the FreeBSD kernel.[1][2]
Manual compilation and installation of the ix-driver
The following paragraph describes the manual compilation of the ix-driver under OPNsense 25.7.
Preparations
Activate SSH with the OPNsense firewall. This can be made in the webinterface under System → Settings → Administration.
Connection via SSH and installation of required components
The following steps are all made via SSH-connection to the OPNsense firewall:
pkg install git cd /usr/ git clone https://github.com/opnsense/src git checkout stable/25.7 cd /root
Download and unpacking of the driver
This paragraph shows how to download, compile and activate the driver.
- Download the driver from Intel: Intel Network Adapters Driver for PCIe 10 Gigabit Network Connections Under FreeBSD
- Connect for example via WinSCP to the OPNsense system and upload the driver.
- The following steps are performed via SSH session. Unpack the archive:
tar xvfz ix-3.4.31.tar.gz cd ix-3.4.31/src
Installation of driver
The preparatory measures have been performed and the driver can now be compiled and be set instead of the driver supplied by the kernel.
make cp if_ix.ko /boot/kernel/if_ix_e610.ko cd /boot/kernel mv if_ix.ko if_ix_old.ko mv if_ix_e610.ko if_ix.ko
Loading driver at system startup
This paragraph shows how to load the driver at system startup.
- Create a new loader.conf.local file to load the driver at system startup:
root@OPNsense:~ # vi /boot/loader.conf.local
- Enter the following line here:
if_ix_load="YES"
Verification after restart
After restarting, check whether the current module is being used.
- kldstat after restart:
root@OPNsense:~ # kldstat | grep -i if_ix.ko 5 1 0xffffffff82417000 65c20 if_ix.ko
- dmesg after restart:
[1] ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 3.4.31> mem 0x4001000000-0x4001ffffff,0x4002004000-0x4002007fff at device 0.0 on pci5 [1] ix0: fw 0.15.15 nvm 1.30.0 etid 8000e942 [1] ix0: Using MSI-X interrupts with 9 vectors [1] ix0: Ethernet address: 00:80:82:bd:4f:e1 [1] ix0: PCI Express Bus: Speed 16.0GT/s Width x4 [1] ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 3.4.31> mem 0x4000000000-0x4000ffffff,0x4002000000-0x4002003fff at device 0.1 on pci5 [1] ix1: fw 0.15.15 nvm 1.30.0 etid 8000e942 [1] ix1: Using MSI-X interrupts with 9 vectors [1] ix1: Ethernet address: 00:80:82:bd:4f:e2 [1] ix1: PCI Express Bus: Speed 16.0GT/s Width x4
Usage of interfaces
The interfaces can be configured and used afterwards.
-
Interfaces menu → Assignments
-
Console menu Assign Interfaces
References
- ↑ E610-XT2 (forum.opnsens.org)
- ↑ ix/ixv: Add support for new Intel Ethernet E610 family devices (cgit.freebsd.org)
|
Author: Thomas Niedermeier Thomas Niedermeier working in the product management team at Thomas-Krenn, completed his bachelor's degree in business informatics at the Deggendorf University of Applied Sciences. Since 2013 Thomas is employed at Thomas-Krenn and takes care of OPNsense firewalls, the Thomas-Krenn-Wiki and firmware security updates.
|
|
Translator: Alina Ranzinger Alina has been working at Thomas-Krenn.AG since 2024. After her training as multilingual business assistant, she got her job as assistant of the Product Management and is responsible for the translation of texts and for the organisation of the department.
|


