You are not logged in.

#1 2023-11-23 09:09:17

kanazky
Member
From: Vancouver, Canada
Registered: 2011-11-02
Posts: 70

Trouble Compiling Intel Driver

Hey,

I am trying to compile the intel driver i40e-2.23.17 for my new X710 Ethernet card.

According to ethtool -i

driver: i40e
version: 6.6.2-3-cachyos
firmware-version: 6.01 0x80003498 1.1450.0
expansion-rom-version: 
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: ye

I am using a fairly old version.

But when I try and run the make install:

❯ make install
filtering include/net/flow_keys.h out
filtering include/linux/jump_label_type.h out
filtering include/linux/jump_label_type.h out
*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but
*** the signing key cannot be found. Module signing has been
*** disabled for this build.
make[1]: Entering directory '/usr/lib/modules/6.6.2-3-cachyos/build'
  CC [M]  /home/jacob/PRO40GB/Linux/i40e_main.o
In file included from /home/jacob/PRO40GB/Linux/i40e.h:70,
                 from /home/jacob/PRO40GB/Linux/i40e_main.c:8:
/home/jacob/PRO40GB/Linux/i40e_txrx.h:470:29: error: field ‘xdp_rxq’ has incomplete type
  470 |         struct xdp_rxq_info xdp_rxq;
      |                             ^~~~~~~
/home/jacob/PRO40GB/Linux/i40e_txrx.h: In function ‘xdp_get_len’:
/home/jacob/PRO40GB/Linux/i40e_txrx.h:600:19: error: invalid use of undefined type ‘struct xdp_frame’
  600 |         return xdp->len;
      |                   ^~
In file included from /home/jacob/PRO40GB/Linux/i40e_main.c:9:
/home/jacob/PRO40GB/Linux/i40e_helper.h: At top level:
/home/jacob/PRO40GB/Linux/i40e_helper.h:17:12: warning: conflicting types for ‘i40e_allocate_dma_mem_d’ due to enum/integer mismatch; have ‘int(struct i40e_hw *, struct i40e_dma_mem *, enum i40e_memory_type,  u64,  u32)’ {aka ‘int(struct i40e_hw *, struct i40e_dma_mem *, enum i40e_memory_type,  long long unsigned int,  unsigned int)’} [-Wenum-int-mismatch]
   17 | inline int i40e_allocate_dma_mem_d(struct i40e_hw *hw,
      |            ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/jacob/PRO40GB/Linux/i40e_type.h:8,
                 from /home/jacob/PRO40GB/Linux/i40e.h:65:
/home/jacob/PRO40GB/Linux/i40e_osdep.h:64:25: note: previous declaration of ‘i40e_allocate_dma_mem_d’ with type ‘i40e_status(struct i40e_hw *, struct i40e_dma_mem *, enum i40e_memory_type,  u64,  u32)’ {aka ‘enum i40e_status_code(struct i40e_hw *, struct i40e_dma_mem *, enum i40e_memory_type,  long long unsigned int,  unsigned int)’}
   64 |                         i40e_allocate_dma_mem_d(h, m, unused, s, a)
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_alloc.h:23:13: note: in expansion of macro ‘i40e_allocate_dma_mem’
   23 | i40e_status i40e_allocate_dma_mem(struct i40e_hw *hw,
      |             ^~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_helper.h:43:12: warning: conflicting types for ‘i40e_free_dma_mem_d’ due to enum/integer mismatch; have ‘int(struct i40e_hw *, struct i40e_dma_mem *)’ [-Wenum-int-mismatch]
   43 | inline int i40e_free_dma_mem_d(struct i40e_hw *hw, struct i40e_dma_mem *mem)
      |            ^~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_osdep.h:66:33: note: previous declaration of ‘i40e_free_dma_mem_d’ with type ‘i40e_status(struct i40e_hw *, struct i40e_dma_mem *)’ {aka ‘enum i40e_status_code(struct i40e_hw *, struct i40e_dma_mem *)’}
   66 | #define i40e_free_dma_mem(h, m) i40e_free_dma_mem_d(h, m)
      |                                 ^~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_alloc.h:27:13: note: in expansion of macro ‘i40e_free_dma_mem’
   27 | i40e_status i40e_free_dma_mem(struct i40e_hw *hw,
      |             ^~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_helper.h:61:12: warning: conflicting types for ‘i40e_allocate_virt_mem_d’ due to enum/integer mismatch; have ‘int(struct i40e_hw *, struct i40e_virt_mem *, u32)’ {aka ‘int(struct i40e_hw *, struct i40e_virt_mem *, unsigned int)’} [-Wenum-int-mismatch]
   61 | inline int i40e_allocate_virt_mem_d(struct i40e_hw *hw,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_osdep.h:73:41: note: previous declaration of ‘i40e_allocate_virt_mem_d’ with type ‘i40e_status(struct i40e_hw *, struct i40e_virt_mem *, u32)’ {aka ‘enum i40e_status_code(struct i40e_hw *, struct i40e_virt_mem *, unsigned int)’}
   73 | #define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s)
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_alloc.h:29:13: note: in expansion of macro ‘i40e_allocate_virt_mem’
   29 | i40e_status i40e_allocate_virt_mem(struct i40e_hw *hw,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_helper.h:79:12: warning: conflicting types for ‘i40e_free_virt_mem_d’ due to enum/integer mismatch; have ‘int(struct i40e_hw *, struct i40e_virt_mem *)’ [-Wenum-int-mismatch]
   79 | inline int i40e_free_virt_mem_d(struct i40e_hw *hw, struct i40e_virt_mem *mem)
      |            ^~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_osdep.h:74:34: note: previous declaration of ‘i40e_free_virt_mem_d’ with type ‘i40e_status(struct i40e_hw *, struct i40e_virt_mem *)’ {aka ‘enum i40e_status_code(struct i40e_hw *, struct i40e_virt_mem *)’}
   74 | #define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m)
      |                                  ^~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_alloc.h:32:13: note: in expansion of macro ‘i40e_free_virt_mem’
   32 | i40e_status i40e_free_virt_mem(struct i40e_hw *hw,
      |             ^~~~~~~~~~~~~~~~~~
In file included from ./include/linux/device.h:15,
                 from ./include/linux/dma-mapping.h:8,
                 from ./include/linux/skbuff.h:28,
                 from ./include/linux/tcp.h:17,
                 from ./include/net/tcp.h:20,
                 from /home/jacob/PRO40GB/Linux/i40e.h:7:
/home/jacob/PRO40GB/Linux/i40e_main.c: In function ‘i40e_parse_cls_flower’:
/home/jacob/PRO40GB/Linux/i40e_main.c:9299:41: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long long unsigned int’ [-Wformat=]
 9299 |                 dev_err(&pf->pdev->dev, "Unsupported key used: 0x%x\n",
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dev_printk.h:110:30: note: in definition of macro ‘dev_printk_index_wrap’
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                              ^~~
./include/linux/dev_printk.h:144:56: note: in expansion of macro ‘dev_fmt’
  144 |         dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                                                        ^~~~~~~
/home/jacob/PRO40GB/Linux/i40e_main.c:9299:17: note: in expansion of macro ‘dev_err’
 9299 |                 dev_err(&pf->pdev->dev, "Unsupported key used: 0x%x\n",
      |                 ^~~~~~~
/home/jacob/PRO40GB/Linux/i40e_main.c:9299:67: note: format string is defined here
 9299 |                 dev_err(&pf->pdev->dev, "Unsupported key used: 0x%x\n",
      |                                                                  ~^
      |                                                                   |
      |                                                                   unsigned int
      |                                                                  %llx
/home/jacob/PRO40GB/Linux/i40e_main.c: In function ‘i40e_probe’:
/home/jacob/PRO40GB/Linux/i40e_main.c:17397:9: error: implicit declaration of function ‘pci_enable_pcie_error_reporting’ [-Werror=implicit-function-declaration]
17397 |         pci_enable_pcie_error_reporting(pdev);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jacob/PRO40GB/Linux/i40e_main.c:18019:9: error: implicit declaration of function ‘pci_disable_pcie_error_reporting’ [-Werror=implicit-function-declaration]
18019 |         pci_disable_pcie_error_reporting(pdev);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:243: /home/jacob/PRO40GB/Linux/i40e_main.o] Error 1
make[2]: *** [/usr/lib/modules/6.6.2-3-cachyos/build/Makefile:1916: /home/jacob/PRO40GB/Linux] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.6.2-3-cachyos/build'
make: *** [Makefile:76: default] Error 2

I get those errors.

I have tried doing export CC=clang and CC=gcc (CXX=clang++ CXX=g++) but no luck. I also tried CFLAGS=-Wno-error make install but same errors.

Can anyone help me out?


Archlinx + DWM big_smile I love Wingo-WM Bring it back!!

Offline

#2 2023-11-23 09:32:13

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,101

Re: Trouble Compiling Intel Driver

That driver is included in the kernel and you're using 6.6.2 latest stable , what makes you think the downloaded driver is newer ?

Do you have networking issues ?

version: 6.6.2-3-cachyos

Why are you asking help here instead of on the cachyOS support channels ?

Last edited by Lone_Wolf (2023-11-23 09:32:46)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Online

#3 2023-11-23 16:50:39

kanazky
Member
From: Vancouver, Canada
Registered: 2011-11-02
Posts: 70

Re: Trouble Compiling Intel Driver

Hey,

I am unable to verify the version,

Modprobe version just gives version

description:    Intel(R) Ethernet Connection XL710 Network Driver
srcversion:     34FCCA8F69D5371713D542

I need to update the NVM and as part of that task the documentation states a few times to ensure you are using the latest driver.


Archlinx + DWM big_smile I love Wingo-WM Bring it back!!

Offline

#4 2023-11-23 17:08:16

loqs
Member
Registered: 2014-03-06
Posts: 18,928

Re: Trouble Compiling Intel Driver

Lone_Wolf wrote:

Why are you asking help here instead of on the cachyOS support channels ?

Offline

Board footer

Powered by FluxBB