You are not logged in.

#1 2020-03-08 09:25:59

mashrum
Member
Registered: 2020-02-25
Posts: 8

Intel LAN driver incompatible with kernel

Errors on compiling network driver for
Intel I211AT LAN

driver version: igb 5.3.5.42
latest driver source: https://downloadcenter.intel.com/downlo … duct=64403

Error_1 [SOLVED]

/home/maxim/igb-5.3.5.42/src/kcompat.h:2816:10: fatal error: linux/pci-aspm.h: No such file or folder
 2816 | #include <linux/pci-aspm.h>

As I understand current kernel release
have no linux/pci-aspm.h
all functions moved to linux/pci.h

Move ASPM definitions and function prototypes from include/linux/pci-aspm.h
to include/linux/pci.h so users only need to include <linux/pci.h>:

  PCIE_LINK_STATE_L0S
  PCIE_LINK_STATE_L1
  PCIE_LINK_STATE_CLKPM
  pci_disable_link_state()
  pci_disable_link_state_locked()
  pcie_no_aspm()

User can edit intel driver src file kcompat.h
replace pci-aspm.h with linux/pci.h


Error_2

/home/maxim/igb-5.3.5.42/src/igb_main.c: at function «igb_tx_map»:
/home/maxim/igb-5.3.5.42/src/igb_main.c:5728:12: error: assignment to «struct skb_frag_struct *» from incompatible pointer type «skb_frag_t *» {aka «struct bio_vec *»} [-Werror=incompatible-pointer-types]
 5728 |  for (frag = &skb_shinfo(skb)->frags[0];; frag++) {
      |            ^
/home/maxim/igb-5.3.5.42/src/igb_main.c:5728:47: error: инкремент pointer на неполный тип «struct skb_frag_struct»
 5728 |  for (frag = &skb_shinfo(skb)->frags[0];; frag++) {
      |                                               ^~
/home/maxim/igb-5.3.5.42/src/igb_main.c:5769:24: error: in argument 1 transmission «skb_frag_size»: incompatible pointer type [-Werror=incompatible-pointer-types]
 5769 |   size = skb_frag_size(frag);
      |                        ^~~~
      |                        |
      |                        struct skb_frag_struct *
In file included from ./include/linux/if_ether.h:19,
                 from ./include/uapi/linux/ethtool.h:19,
                 from ./include/linux/ethtool.h:18,
                 from ./include/linux/netdevice.h:37,
                 from /home/maxim/igb-5.3.5.42/src/igb_main.c:9:
./include/linux/skbuff.h:325:60: замечание: waited type «const skb_frag_t *» {aka «const struct bio_vec *»}, but argument has type «struct skb_frag_struct *»
  325 | static inline unsigned int skb_frag_size(const skb_frag_t *frag)
      |                                          ~~~~~~~~~~~~~~~~~~^~~~
/home/maxim/igb-5.3.5.42/src/igb_main.c:5772:40: error: in argument 2 transmission «skb_frag_dma_map»: incompatible pointer type  [-Werror=incompatible-pointer-types]
 5772 |   dma = skb_frag_dma_map(tx_ring->dev, frag, 0,
      |                                        ^~~~
      |                                        |
      |                                        struct skb_frag_struct *
In file included from ./include/linux/if_ether.h:19,
                 from ./include/uapi/linux/ethtool.h:19,
                 from ./include/linux/ethtool.h:18,
                 from ./include/linux/netdevice.h:37,
                 from /home/maxim/igb-5.3.5.42/src/igb_main.c:9:
./include/linux/skbuff.h:3068:26: замечание: waited type «const skb_frag_t *» {aka «const struct bio_vec *»}, but argument has type «struct skb_frag_struct *»
 3068 |        const skb_frag_t *frag,
      |        ~~~~~~~~~~~~~~~~~~^~~~

is in related with the case?
https://lore.kernel.org/netdev/20190501 … adead.org/

problem on Kernel and Kernel-Headers: 5.5.6, 5.5.8

How to solve it? Any patch?

Last edited by mashrum (2020-03-08 11:34:03)

Offline

#2 2020-03-08 11:46:34

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: Intel LAN driver incompatible with kernel

The igb kernel module is included in the archlinux kernels , why are you trying to build an older version ?

Post lspci -knn please.


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


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2020-03-08 13:58:21

mashrum
Member
Registered: 2020-02-25
Posts: 8

Re: Intel LAN driver incompatible with kernel

I was not be sure that build-in version is actual sad

[root@fobot-01 maxim]# lspci -knn
00:00.0 Host bridge [0600]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register [8086:0f00] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register [8086:7270]
    Kernel driver in use: iosf_mbi_pci
00:02.0 VGA compatible controller [0300]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display [8086:0f31] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display [8086:7270]
    Kernel driver in use: i915
    Kernel modules: i915
00:13.0 IDE interface [0101]: Intel Corporation Atom Processor E3800 Series SATA IDE Controller [8086:0f21] (rev 11)
    Subsystem: Intel Corporation Atom Processor E3800 Series SATA IDE Controller [8086:7270]
    Kernel driver in use: ata_piix
    Kernel modules: ata_piix, pata_acpi, ata_generic
00:1a.0 Encryption controller [1080]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine [8086:0f18] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine [8086:7270]
    Kernel driver in use: mei_txe
    Kernel modules: mei_txe
00:1b.0 Audio device [0403]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller [8086:0f04] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller [8086:7270]
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 [8086:0f48] (rev 11)
    Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 2 [8086:0f4a] (rev 11)
    Kernel driver in use: pcieport
00:1c.2 PCI bridge [0604]: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 3 [8086:0f4c] (rev 11)
    Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 4 [8086:0f4e] (rev 11)
    Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB EHCI [8086:0f34] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB EHCI [8086:7270]
    Kernel driver in use: ehci-pci
    Kernel modules: ehci_pci
00:1f.0 ISA bridge [0601]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit [8086:0f1c] (rev 11)
    Subsystem: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit [8086:7270]
    Kernel driver in use: lpc_ich
    Kernel modules: lpc_ich
00:1f.3 SMBus [0c05]: Intel Corporation Atom Processor E3800 Series SMBus Controller [8086:0f12] (rev 11)
    Subsystem: Intel Corporation Atom Processor E3800 Series SMBus Controller [8086:7270]
    Kernel driver in use: i801_smbus
    Kernel modules: i2c_i801
01:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
    Subsystem: Intel Corporation I211 Gigabit Network Connection [8086:0000]
    Kernel driver in use: igb
    Kernel modules: igb
02:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
    Subsystem: Intel Corporation I211 Gigabit Network Connection [8086:0000]
    Kernel modules: igb

Offline

#4 2020-03-09 11:27:59

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: Intel LAN driver incompatible with kernel

01:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
    Subsystem: Intel Corporation I211 Gigabit Network Connection [8086:0000]
    Kernel driver in use: igb
    Kernel modules: igb
02:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
    Subsystem: Intel Corporation I211 Gigabit Network Connection [8086:0000]
    Kernel modules: igb
$ modinfo igb | grep version
version:        5.6.0-k
srcversion:     DE47A70A6B9B9EA6E537E51
$ 

I suggest you try with the built-in version first.


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


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

Board footer

Powered by FluxBB