Compile and install Ixgbe-driven tutorials in the Debian Linux system _linux

Source: Internet
Author: User
Tags fcoe

Intel's 10G network adapters (for example, 82598, 82599, x540) are supported by the Ixgbe driver. Modern Linux distributions are already powered by Ixgbe, and can be used in the form of loadable modules. However, there are situations where you want to compile and install IXGBE drivers on your machine, for example, when you want to experience the latest features of the IXBGE drive. Similarly, one problem with the kernel default Ixgbe drive is that you are not allowed to customize the driver parameters. If you want a fully customizable Ixgbe driver (such as RSS, multiple queues, interrupt thresholds, and so on), you need to manually compile the Ixgbe driver from the source code.

Here's how to download and install Ixgbe-driven tutorials in Ubuntu, Debian, or their derivative editions.
First step: Installation Prerequisites

Before installing, you need to install a matching kernel header file and development kit.

  $ sudo apt-get install linux-headers-$ (uname-r)
  $ sudo apt-get install gcc make

Step two: Compile Ixgbe driver

Download the source code from the latest Ixgbe drive.

  $ wget http://sourceforge.net/projects/e1000/files/ixgbe%20stable/3.23.2/ixgbe-3.23.2.tar.gz

Compile Ixgbe driver as follows.

  $ tar xvfvz ixgbe-3.23.2.tar.gz
  $ cd ixgbe-3.23.2/src
  $ make

Step three: Check the Ixgbe drive

After compiling, you will see the creation of the Ixgbe.ko in the IXGBE-3.23.2/SRC directory. This is the Ixgbe drive that will be loaded into the kernel.

Check the kernel module information with the Modinfo command. Note that you need to specify the absolute path of the module file (e.g../ixgbe.ko or/home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko). The version of the Ixgbe kernel is displayed in the output.

  $ modinfo./ixgbe.ko

FileName:/home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko version:3.23.2 license:gpl Description:intel (R) Gigab It PCI Express network Driver author:intel Corporation, srcversion:2ada5e537923e983fa9dae2 alias:pci:v00008086d00  001560sv*sd*bc*sc*i* alias:pci:v00008086d00001558sv*sd*bc*sc*i* alias:pci:v00008086d0000154asv*sd*bc*sc*i* alias: pci:v00008086d00001557sv*sd*bc*sc*i* alias:pci:v00008086d0000154fsv*sd*bc*sc*i* alias:pci:v00008086d0000154dsv* sd*bc*sc*i* alias:pci:v00008086d00001528sv*sd*bc*sc*i* alias:pci:v00008086d000010f8sv*sd*bc*sc*i* alias:pci:v0000 8086d0000151csv*sd*bc*sc*i* alias:pci:v00008086d00001529sv*sd*bc*sc*i* Alias:pci:v00008086d0000152asv*sd*bc*sc*i * alias:pci:v00008086d000010f9sv*sd*bc*sc*i* alias:pci:v00008086d00001514sv*sd*bc*sc*i* alias:pci:v00008086d00001 507sv*sd*bc*sc*i* alias:pci:v00008086d000010fbsv*sd*bc*sc*i* alias:pci:v00008086d00001517sv*sd*bc*sc*i* Alias:pci : v00008086d000010fcsv*sd*bc*sc*i*
  alias:pci:v00008086d000010f7sv*sd*bc*sc*i* alias:pci:v00008086d00001508sv*sd*bc*sc*i* alias:pci:v00008086d000010 dbsv*sd*bc*sc*i* alias:pci:v00008086d000010f4sv*sd*bc*sc*i* alias:pci:v00008086d000010e1sv*sd*bc*sc*i* Alias:pci: v00008086d000010f1sv*sd*bc*sc*i* alias:pci:v00008086d000010ecsv*sd*bc*sc*i* ALIAS:PCI:V00008086D000010DDSV*SD*BC *sc*i* alias:pci:v00008086d0000150bsv*sd*bc*sc*i* alias:pci:v00008086d000010c8sv*sd*bc*sc*i* alias:pci:v00008086d 000010c7sv*sd*bc*sc*i* alias:pci:v00008086d000010c6sv*sd*bc*sc*i* alias:pci:v00008086d000010b6sv*sd*bc*sc*i* Depe NDS:PTP,DCA vermagic:3.11.0-19-generic SMP mod_unload modversions parm:InterruptType:Change Interrupt Mode (0=LEGAC Y, 1=msi, 2=msi-x), default Intmode (deprecated) (array of int) Parm:IntMode:Change Interrupt Mode (0=legacy, 1=msi, 2 = MSI-X), default 2 (array of int) parm:MQ:Disable or enable multiple queues, default 1 (array of int) parm:DCA:Disabl E or enable Direct Cache ACCESS, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int) Parm:RSS:Number of receive-side Scaling Tor queues, default 0=number of CPUs (array of int) Parm:VMDQ:Number of Virtual Machine Device queues:0/1 = disable, 2 -16 Enable (default=8) (array of int) Parm:max_vfs:Number of Virtual functions:0 = disable (default), 1-63 = enable th is many VFs (array to int) Parm:VEPA:VEPA Bridge mode:0 = VEB (default), 1 = Vepa (array of int) Parm:interruptthro  Ttlerate:maximum interrupts/second, per vector, (0,1,956-488281), default 1 (array of int) Parm:LLIPort:Low Latency
  Interrupt TCP Port (0-65535) (array of int) Parm:LLIPush:Low latency Interrupt on TCP Push flag (0,1) (array of int) Parm:LLISize:Low Latency Interrupt on Packet Size (0-1500) (array of int) Parm:LLIEType:Low Latency Interrupt Etherne T Protocol Type (array of int) Parm:LLIVLANP:Low latency Interrupt on VLAN priority threshold (array of int) PARM:FD Irpballoc:flow DirectorPacket buffer allocation level:1 = 8k hash filters or 2k perfect Filters 2 = 16k Hash filters or 4k perfect filters  3 = 32k Hash filters or 8k perfect filters (array of int) Parm:AtrSampleRate:Software ATR Tx Packet sample rate (array of int) parm:FCoE:Disable or enable FCoE offload, default 1 (array of int) Parm:LRO:Large Receive Offload (0,1), DE Fault 1 = ON (array of int) Parm:allow_unsupported_sfp:Allow unsupported and untested sfp+ modules on 82599 based adapt
 ERS, default 0 = Disable (array of int)

Fourth step: Test Ixgbe Drive

Before testing a new module, you need to remove it if you already have an older version of the Ixgbe module in your kernel.

  $ sudo rmmod Ixgbe

Then use the Insmod command to insert the newly compiled Ixgbe module. Make sure that you specify an absolute path for a module.

  $ sudo insmod./ixgbe.ko

If the above command runs successfully, no information is displayed.

If you need to, you can try adding extra parameters. For example, the number of queues to set up RSS is 16:

  $ sudo insmod./ixgbe.ko rss=16

Check the/var/log/kern.log to see if the Ixgbe drive has been successfully activated. View "Intel (R) Gigabit PCI Express Network Driver" in the log. Ixgbe version information should be the same as the previous modinfo display.

Sep 14:48:52 spongebob Kernel: [684717.906254] Intel (R) Gigabit PCI Express network driver-version 3.22.3

Fifth step: Install Ixgbe Drive

Once you verify that the new Ixgbe driver can be loaded successfully, the final step is to install the drive in your system.

  $ sudo make install

The Ixgbe.ko will be installed under/lib/modules//kernel/drivers/net/ethernet/intel/ixgbe.

From this step, you can load the Ixgbe driver with the following Modprobe command. Note that you no longer have to specify an absolute path.

  $ sudo modprobe Ixgbe

If you want to load the Ixgbe driver at startup, you can add "Ixgbe" at the end of the/etc/modules.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.