Ethernet Products
Intel® Ethernet products and technologies
4088 Discussions

Unable to compile i40e driver in Ubuntu 18.04.5 for an Intel X710 Dual 10 GB NIC

Pakito
Novice
3,120 Views

Hi There,

 

I am trying to compile the i40e driver for an Intel X710 Dual 10 GbE Card.

See below details: 

OS: Ubuntu 18.04.5 LTS

Kernel Version:4.15.0-159-generic

Intel Driver versions I have tried to install: i40e-2.11.25 ,i40e-2.16.11

I have SRIOV, IOMMU and NUMA topology on the BIOS /grub.

The server Manufacturer is Dell R440

 

See below PCI info:

 

driver: i40e

version: 2.1.14-k

firmware-version: 8.15 0x800096c1 20.0.17

expansion-rom-version: 

bus-info: 0000:3b:00.0

supports-statistics: yes

supports-test: yes

supports-eeprom-access: yes

supports-register-dump: yes

supports-priv-flags: yes

 

iproute2 version:  5.8.0

 

We also upgraded the Intel X710 NVM version from v7.0 to v8.15 with the same result.

 

See below error when compiling the i40 e driver:

root@sub-sandvine01:/root# cd i40e-2.11.25/src

root@sub-sandvine01:/root/i40e-2.11.25/src# make install

make[1]: Entering directory '/usr/src/linux-headers-4.15.0-159-generic'

  CC [M]  /root/i40e-2.11.25/src/i40e_main.o

In file included from /root/i40e-2.11.25/src/i40e.h:33:0,

                 from /root/i40e-2.11.25/src/i40e_main.c:8:

/root/i40e-2.11.25/src/kcompat.h:6796:28: error: redefinition of ‘skb_frag_off

 static inline unsigned int skb_frag_off(const skb_frag_t *frag)

                            ^~~~~~~~~~~~

In file included from ./include/linux/tcp.h:21:0,

                 from ./include/net/tcp.h:24,

                 from /root/i40e-2.11.25/src/i40e.h:7,

                 from /root/i40e-2.11.25/src/i40e_main.c:8:

./include/linux/skbuff.h:2763:28: note: previous definition of ‘skb_frag_off’ was here

 static inline unsigned int skb_frag_off(const skb_frag_t *frag)

                            ^~~~~~~~~~~~

scripts/Makefile.build:333: recipe for target '/root/i40e-2.11.25/src/i40e_main.o' failed

make[2]: *** [/root/i40e-2.11.25/src/i40e_main.o] Error 1

Makefile:1590: recipe for target '_module_/root/i40e-2.11.25/src' failed

make[1]: *** [_module_/root/i40e-2.11.25/src] Error 2

make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-159-generic'

Makefile:69: recipe for target 'default' failed

make: *** [default] Error 2

 

 

Are you able to assist ? Thanks. 

 

Labels (1)
0 Kudos
6 Replies
Mike_Intel
Moderator
3,079 Views

Hello Pakito,


Thank you for posting in Intel Ethernet Communities. 


For us to further check the issue, please provide the following details.


Kindly provide us with a brief detailed description of what you wish you to accomplish. From the initial entry it seems like this would be a driver compilation for the Intel® Ethernet Converged Network Adapter XL710, however more details are required. Please provide the markings for your network adapter or provide a photo of your network card on both sides for us to validate if it belongs to a Retail version, or an OEM (Original Equipment Manufacturer).


If you have questions, please let us know. In case we do not hear from you, we will make a follow up after 3 workings days. Thank you.


Best regards,

Michael L.

Intel® Customer Support Technician


Pakito
Novice
3,036 Views

Hi Michael ,

 

Correct we are trying to compile the driver for the Intel X710 dual port 10 GbE.

I am unable to get a photo of the Intel card, how can I get the markings on the card?

 

Regards,

 

Francisco

Mike_Intel
Moderator
3,028 Views

Hello Pakito,


Thank you for the quick reply. By the way, are you using a program to compile the driver? If yes, please tell us.


If you cannot get the markings, let us try getting the markings via ssu logs. Kindly download the utility below:


https://www.intel.com/content/www/us/en/download/18895/intel-system-support-utility-for-the-linux-op...


If you have questions, please let us know. In case we do not hear from you, we will make a follow up after 3 workings days. Thank you.


Best regards,

Michael L.

Intel® Customer Support Technician


Mike_Intel
Moderator
2,922 Views

Hello Pakito,


I hope you enjoyed your weekend. I am just making a follow up on the ssu for us to check the card.


If you have questions, please let us know. In case we do not hear from you, we will make a follow up after 3 workings days. Thank you.


Best regards,

Michael L.

Intel® Customer Support Technician


RistoVF
Beginner
2,843 Views

Hi all,

I have a similar situation when I upgraded my kernel on Debian from 4.19.0-17 (4.19.194) to 4.19.0-18 (4.19.208). In between those versions (4.19.201) skb_frag_off function was added in the kernel /usr/src/linux-headers-4.19.0-18-common/include/linux/skbuff.h file (https://yhbt.net/lore/all/20210802134334.892201802@linuxfoundation.org/t/)

 

The i40e driver has a check:
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0))
in src/kcompat_std_defs.h that causes the conflicting function to be included.
Checked in: https://www.intel.com/content/www/us/en/download/18026/intel-network-adapter-driver-for-pcie-40-giga...

There is no need for a network card to be present to make this error appear—you only need to run "make" in the driver src folder when the updated kernel is loaded.

Basically you should update the driver package to check the kernel version in a way that it notices the kernels that have the functions built-in and do not need NEED_SKB_FRAG_OFF_ACCESSORS anymore. I was able to compile the driver after I undefined the   NEED_SKB_FRAG_OFF_ACCESSORS.

 

BR,

Risto

Mike_Intel
Moderator
2,826 Views

Hello Pakito,


I am just sending another follow up on the information that I requested. 

Since we have not heard back from you, I need to close this inquiry. 


If you need further assistance, please post a new question. 


Hello RistoVF,


For us to check your inquiry and gather the needed details, please post a new question to create a separate thread.


Thank you and stay safe.


Best regards,

Michael L.

Intel® Customer Support Technician


Reply