Intel® Ethernet Adapters and Devices User Guide

ID Date Version Classification
705831 11/27/2024 Public
Document Table of Contents

Install FreeBSD Drivers

Note:

The FreeBSD driver package is to be used only as a standalone archive and the user should not attempt to incorporate it into the kernel source tree.

The instructions below apply to the following device series and drivers:

Device Series

Driver Name

Intel Adapter Virtual Functions

iavf

Intel Ethernet 800 Series

ice

Intel Ethernet 700 Series

ixl

Intel Ethernet 500 Series

ix

Intel Ethernet 300 Series

igb

In the instructions below:

  • <driver> is the driver name, such as ice or iavf

  • x.x.x is the driver version as indicated in the name of the driver tar file

  1. Move the base driver tar file to the directory of your choice. For example, use /home/username/<driver> or /usr/local/src/<driver>.

  2. Untar/unzip the archive:

    tar xzf <driver>-x.x.x.tar.gz
    

    This will create the <driver>-x.x.x directory.

  3. To install the man page:

    cd <driver>-x.x.x
    gzip -c <driver>.4 > /usr/share/man/man4/<driver>.4.gz
    
  4. To load the driver onto a running system:

    cd <driver>-x.x.x
    make
    kldload ./if_<driver>.ko
    

    For the iavf driver, to install the driver without using iflib:

    cd iavf-x.x.x/src
    make legacy
    kldload ./if_iavf.ko
    
    Note:

    Ensure the driver isn’t compiled into the currently running kernel. You can do that by adding nodevice <driver> to your kernel configuration file and rebuilding your kernel. See sections 10.4 and 10.5 in Configuring the FreeBSD Kernel in the FreeBSD kernel documentation for more information.

    Note:

    For ice devices, running the make command will not install the Dynamic Device Personalization (DDP) package and could cause the driver to fail to load. See step #7 below for more information.

  5. To assign an IP address to the interface, enter the following, where X is the interface number for the device:

    ifconfig <driver>X <IP_address>
    

    For example:

    ifconfig ice0 <IP_address>
    
  6. Verify that the interface works. Enter the following, where <IP_​address> is the IP address for another machine on the same subnet as the interface that is being tested:

    ping <IP_address>
    
  7. If you want the driver to load automatically when the system is booted, do the following.

    1. For all devices except ice:

      cd <driver>-x.x.x/src
      make
      make install
      

      For ice devices:

      cd <driver>-x.x.x
      make
      make install
      
    Note:

    For ice devices, it’s important to do make install so that the driver loads the DDP package automatically.

    1. Edit /boot/loader.conf and add the following line:

      if_<driver>_load="YES"
      
  8. If you want the device to connect to a network without manual intervention after a boot, edit /etc/rc.conf and create the appropriate ifconfig_​<driver>X entry:

    ifconfig_<driver>X="<ifconfig_settings>"
    

For example:

ifconfig_ice0="inet 192.168.10.1 netmask 255.255.255.0"
Note:

For assistance, see the ifconfig man page.