Using the Linux igb* base driver for Intel® Gigabit Ethernet network Connections
The igb driver supports all 82575, 82576, 82580, and I350-based Intel® Gigabit Ethernet Network Connections.
Using the igb base driver
The Linux base drivers support the 2.4.x, 2.6.x and 3.x kernels. These drivers includes support for Itanium® 2-based systems.
These drivers are only supported as a loadable module. Intel is not supplying patches against the kernel source to allow for static linking of the drivers. For questions related to hardware requirements, refer to the documentation supplied with your Intel Gigabit adapter. All hardware requirements listed apply to use with Linux.
The following features are now available in supported kernels:
- Native VLANs
- Channel Bonding (teaming)
Channel Bonding documentation can be found in the Linux kernel source: /documentation/networking/bonding.txt
The igb driver supports IEEE 1588 time stamping for kernels 2.6.30 and above. A basic tutorial for the technology can be found on the NIST web site.
The driver information previously displayed in the /proc file system is not supported in this release. Alternatively, you can use ethtool (version 1.6 or later), lspci, and ifconfig to obtain the same information. Instructions on updating ethtool can be found in the section Additional configurations later in this document.
To build a binary RPM* package of this driver, run "rpmbuild -tb igb.tar.gz".
Move the base driver tar file to the directory of your choice. For example, use "/home/username/igb" or "/usr/local/src/igb".
Untar/unzip the archive, where <x.x.x> is the version number for the driver tar file:
tar zxf igb-<x.x.x>.tar.gz
Change to the driver src directory, where <x.x.x> is the version number for the driver tar:
Compile the driver module:
The binary will be installed as:
The install location listed above is the default location. This may differ for various Linux distributions.
Load the module using either the insmod or modprobe command:
modprobe igb insmod igb
Note that for 2.6 kernels the insmod command can be used if the full path to the driver module is specified. For example:
insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/igb/igb.ko
With 2.6 based kernels also make sure that older igb drivers are removed from the kernel, before loading the new module:
rmmod igb; modprobe igb
Assign an IP address to the interface by entering the following, where <x> is the interface number:
ifconfig eth<x> <IP_address>
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:
Some systems have trouble supporting MSI and/or MSI-X interrupts. If you believe your system needs to disable this style of interrupt, the driver can be built and installed with the command:
# make CFLAGS_EXTRA=-DDISABLE_PCI_MSI install
Normally the driver will generate an interrupt every two seconds, so if you can see that you're no longer getting interrupts in cat /proc/interrupts for the ethX igb device, then this workaround may be necessary.
To build igb driver with DCA:
If your kernel supports DCA, the driver will build by default with DCA enabled.