This guide is loosely based on the this post but I was unable to complete the installation because of the following error:
hendri@techedemic: /var/tmp/ixgbe-4.1.2/src $ dmesg ......snipped...... [12270.405508] ixgbe: Unknown symbol vxlan_get_rx_port (err 0) [12428.182904] ixgbe: Unknown symbol vxlan_get_rx_port (err 0) [13448.131090] ixgbe: Unknown symbol vxlan_get_rx_port (err 0) [18947.596474] ixgbe: Unknown symbol vxlan_get_rx_port (err 0) [18975.603555] ixgbe: Unknown symbol vxlan_get_rx_port (err 0) ......snipped...... |
So, here follows the same guide, but with the missing steps I needed to complete the installation.
As a reference, I was running Kernel 3.13.0-20 before this.
Step 1: Move Ubuntu to the Hardware Enablement LTS stack. This is LTS safe. See this link
# install packages sudo apt-get install linux-generic-lts-utopic xserver-xorg-lts-utopic libegl1-mesa-drivers-lts-utopic xserver-xorg-video-all-lts-utopic xserver-xorg-input-all-lts-utopic # reboot system into latest running kernel as installed by above packages sudo init 6 |
Step 2: Download the latest version of the ixgbe driver. At the time of this writing, it is 4.1.2
The working directory in this example is /var/tmp
user@techedemic:/var/tmp$ cd /var/tmp user@techedemic:/var/tmp$ wget http://sourceforge.net/projects/e1000/files/ixgbe%20stable/4.1.2/ixgbe-4.1.2.tar.gz/download |
Step 3: Extract files
user@techedemic:/var/tmp$ tar -zxvf ixgbe-4.1.2.tar.gz |
Step 4: Build the driver/module
user@techedemic:$ cd /var/tmp/ixgbe-4.1.2/src user@techedemic:/var/tmp/ixgbe-4.1.2/src$ sudo make clean #not required but advisable user@techedemic:/var/tmp/ixgbe-4.1.2/src$ sudo make user@techedemic:/var/tmp/ixgbe-4.1.2/src$ sudo make install |
Step 5: View module details for the newly built module. Pay special attention to the ‘depends’ section
user@techedemic:/var/tmp/ixgbe-4.1.2/src$ modinfo ./ixgbe.ko filename: /var/tmp/ixgbe-4.1.2/src/./ixgbe.ko version: 4.1.2 license: GPL description: Intel(R) 10 Gigabit PCI Express Network Driver author: Intel Corporation, <linux.nics@intel.com> srcversion: 11CE41D9B741B44F4507285 alias: pci:v00008086d000015ADsv*sd*bc*sc*i* alias: pci:v00008086d00001560sv*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:v00008086d0000151Csv*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:v00008086d00001507sv*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:v00008086d000010DBsv*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:v00008086d000010C7sv*sd*bc*sc*i* alias: pci:v00008086d000010C6sv*sd*bc*sc*i* alias: pci:v00008086d000010B6sv*sd*bc*sc*i* depends: ptp,dca,vxlan vermagic: 3.16.0-45-generic SMP mod_unload modversions parm: InterruptType:Change Interrupt Mode (0=Legacy, 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:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int) parm: RSS:Number of Receive-Side Scaling Descriptor 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 this many VFs (array of int) parm: VEPA:VEPA Bridge Mode: 0 = VEB (default), 1 = VEPA (array of int) parm: InterruptThrottleRate:Maximum interrupts per 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 Ethernet Protocol Type (array of int) parm: LLIVLANP:Low Latency Interrupt on VLAN priority threshold (array of int) parm: FdirPballoc:Flow Director packet 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), default 1 = on (array of int) parm: allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0 = Disable (array of int) parm: dmac_watchdog:DMA coalescing watchdog in microseconds (0,41-10000), default 0 = off (array of int) parm: vxlan_rx:VXLAN receive checksum offload (0,1), default 1 = Enable (array of int) |
Step 6: Load the vxlan module
user@techedemic:/var/tmp/ixgbe-4.1.2/src$ sudo modprobe vxlan |
Step 7: Install the module. If successful there should be no output.
user@techedemic:/var/tmp/ixgbe-4.1.2/src$ sudo insmod ./ixgbe.ko |
Step 8: Run dmesg and check to see if new interfaces are detected after loading the new module. Example output included below
user@techedemic:/var/tmp/ixgbe-4.1.2/src$ dmesg [19097.752081] Intel(R) 10 Gigabit PCI Express Network Driver - version 4.1.2 [19097.752090] Copyright (c) 1999-2015 Intel Corporation. [19097.752414] ACPI Warning: \_SB_.PCI0.BR2C._PRT: Return Package has no elements (empty) (20140424/nsprepkg-126) [19099.110658] ixgbe 0000:03:00.0: irq 85 for MSI/MSI-X <-----snipped for easier reading-----> [19099.110835] ixgbe 0000:03:00.0: irq 101 for MSI/MSI-X [19099.335410] ixgbe 0000:03:00.0 eth0: MAC: 5, PHY: 6, PBA No: 020000-000 [19099.335422] ixgbe 0000:03:00.0: 00:25:90:5d:0f:7e [19099.335432] ixgbe 0000:03:00.0 eth0: Enabled Features: RxQ: 16 TxQ: 16 FdirHash RSC vxlan_rx [19099.354019] ixgbe 0000:03:00.0 eth0: Intel(R) 10 Gigabit Network Connection [19101.100611] ixgbe 0000:03:00.1: irq 102 for MSI/MSI-X <-----snipped for easier reading-----> [19101.100790] ixgbe 0000:03:00.1: irq 118 for MSI/MSI-X [19101.321945] ixgbe 0000:03:00.1 eth1: MAC: 5, PHY: 6, PBA No: 020000-000 [19101.321959] ixgbe 0000:03:00.1: 00:25:90:5d:0f:7f [19101.321969] ixgbe 0000:03:00.1 eth1: Enabled Features: RxQ: 16 TxQ: 16 FdirHash RSC vxlan_rx [19101.341933] ixgbe 0000:03:00.1 eth1: Intel(R) 10 Gigabit Network Connection [19161.564788] ixgbe 0000:03:00.0: registered PHC device on eth0 [19163.468677] ixgbe 0000:03:00.1: registered PHC device on eth1 |
As can be seen above, my dual port 10gbps interfaces have been detected as eth0 and eth1.
Step 9: Configure your interfaces in /etc/network/interfaces as you would for any other (not shown here) and bring them up. You can then use ethtool to see supported modes.
user@techedemic: /var/tmp/ixgbe-4.1.2/src$ sudo ifup eth0 && sudo ifup eth1 user@techedemic: /var/tmp/ixgbe-4.1.2/src$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:25:90:5d:0f:7e inet6 addr: fe80::225:90ff:fe5d:f7e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:648 (648.0 B) user@techedemic: /var/tmp/ixgbe-4.1.2/src$ sudo ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 1000baseT/Full 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 1000baseT/Full 10000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Speed: 10000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: external Auto-negotiation: on MDI-X: Unknown Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes |
I hope this helps at least 1 person because it cost me 4 hours of my life.
Enjoy!
Well… take solace in knowing that your guide did help me out.
So… Thanks!
That worked for me, thank you!
Do you know the source of the ACPI warning you have :
ACPI Warning: \_SB_.PCI0.BR2C._PRT: Return Package has no elements (empty) (20140424/nsprepkg-126)
I have the exact same message but I don’t understand it.
Really saved my time dude.