Intel E810XXV 25G network card not working (no ice driver)

Hello!

I just installed a fresh copy of EndeavourOS Cassini Nova on a baremetal workstation PC.
My Intel E810XXV 25G nic is not being detected:

$ inxi -Fxz

System:
  Kernel: 6.2.10-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    Desktop: KDE Plasma v: 5.27.4 Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Desktop System: Micro-Star product: MS-7D70 v: 1.0 serial: N/A
  Mobo: Micro-Star model: MPG X670E CARBON WIFI (MS-7D70) v: 1.0
    serial: <filter> UEFI: American Megatrends LLC. v: 1.60 date: 03/24/2023
Network:
  Device-1: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
    driver: mt7921e v: kernel bus-ID: 0d:00.0
  IF: wlan0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: Micro-Star MSI driver: r8169
    v: kernel port: e000 bus-ID: 0e:00.0
  IF: enp14s0 state: down mac: <filter>
  Device-3: Intel Ethernet E810-XXV for SFP driver: N/A port: N/A
    bus-ID: 11:00.0
  Device-4: Intel Ethernet E810-XXV for SFP driver: N/A port: N/A
    bus-ID: 11:00.1
  Device-5: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152
    bus-ID: 2-1.2:3
  IF: enp1s0f2u1u2 state: down mac: <filter>

Looks like the Intel ice driver for this nic is not installed?

But lspci shows that ice is available:

$ lspci -vv

11:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-XXV for SFP (rev 02)
        Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 24
        IOMMU group: 21
        Expansion ROM at c0300000 [disabled] [size=1M]
        Capabilities: <access denied>
        Kernel modules: ice

As well as modinfo:

$ modinfo ice

filename:       /lib/modules/6.2.10-arch1-1/kernel/drivers/net/ethernet/intel/ice/ice.ko.zst
firmware:       intel/ice/ddp/ice.pkg
license:        GPL v2
description:    Intel(R) Ethernet Connection E800 Series Linux Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     0CBF14DA5BAAC5EFC0EC9EB
alias:          pci:v00008086d00001888sv*sd*bc*sc*i*
...
depends:        
retpoline:      Y
intree:         Y
name:           ice
vermagic:       6.2.10-arch1-1 SMP preempt mod_unload 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        0A:22:1F:E6:B0:12:DD:EC:05:08:BA:27:E4:E9:98:7F:6D:CA:0C:1F
sig_hashalgo:   sha512
signature:      30:64:02:30:04:79:39:CB:BF:74:A2:84:A3:17:07:DA:85:10:F5:D0:
                00:DB:46:0A:1D:4A:79:5C:22:B3:84:24:B5:0C:26:6F:87:DC:78:6F:
                DC:89:15:FD:2F:B9:E1:67:0C:75:97:0A:02:30:28:7C:33:5D:A0:BF:
                94:B2:E2:5A:9B:55:65:D1:C1:F0:F5:61:62:C5:06:54:E5:A9:8A:06:
                D8:76:5C:3B:07:66:C6:75:D5:07:6C:85:2B:DF:3C:88:48:1A:2F:A5:
                13:7D
parm:           debug:netif level (0=none,...,16=all) (int)

I tried a sudo modprobe ice but it didn’t seem to do anything (no errors either).

So what do I need to do to get the nic enabled in the kernel via the ice driver? FWIW, the nic also did not work in the EndeavourOS live CD environment.

I have used Debian-based and RHEL-based distros in the past, and those had the nic working out of the box. But they used kernel 5.x, and this is my first time using Arch and kernel 6.x.

Any ideas?

Not sure if this would work, but you might consider it as a suggestion worth a try perhaps.

Create a file called ice-module.conf in /etc/dracut.conf.d with the following content:

force_drivers+=" ice "

Now rebuild your initrds:

sudo dracut-rebuild

Reboot and check.

https://wiki.archlinux.org/title/Dracut#Early_kernel_module_loading
https://discovery.endeavouros.com/installation/dracut/2022/12/

$ cat /etc/dracut.conf.d/ice-module.conf 
force_drivers+=" ice "

rebuilt and reboot. Unfortunately no luck, still no driver:

  Device-3: Intel Ethernet E810-XXV for SFP driver: N/A port: N/A
    bus-ID: 11:00.0
  Device-4: Intel Ethernet E810-XXV for SFP driver: N/A port: N/A
    bus-ID: 11:00.1
1 Like

For the sake of testing:

sudo modprobe --force ice

This comes with a warning though:

-f, --force
Try to strip any versioning information from the module which might otherwise stop it from loading: this is the same as using both --force-vermagic and --force-modversion. Naturally, these checks are there for your
protection, so using this option is dangerous unless you know what you are doing.

source: man modprobe

It seems to have no effect. No output from the command at all.

Sorry to hear that!

You might want to have a look at kernel messages to see if it shows something relevant:

sudo dmesg | grep ice

If you like, you could post it here for forum members to have a look. Run the following in a terminal and post the URL you will get:

sudo dmesg | grep ice | eos-sendlog

Good luck with the troubleshooting and welcome to EnOS’ community @Kish!

:enos_flag: :handshake:t5:

Thanks for the warm welcome!

I see some interesting things in dmesg:

[    1.879407] ice: Intel(R) Ethernet Connection E800 Series Linux Driver
[    1.879408] ice: Copyright (c) 2018, Intel Corporation.
[    1.879505] ice 0000:11:00.0: BAR0 I/O map error -22
[    1.879518] ice: probe of 0000:11:00.0 failed with error -22
[    1.879548] ice 0000:11:00.1: BAR0 I/O map error -22
[    1.879558] ice: probe of 0000:11:00.1 failed with error -22

Searching leads me to find something about unable to acccess pci i/o memory resources in the kernel space?
Definitely well above my pay grade here!

1 Like

Ok, I figured it out! :raised_hands:

This comment was the key. The author was talking about IOMMU groups and how PCI device drivers should not modify the PCI BARs. That’s when I remembered I had turned on SR-IOV in my UEFI. In my particular motherboard, it’s a beta feature at this time.

Disabling SR-IOV and rebooting the system enabled the ice driver:

  IF: enp14s0 state: down mac: <filter>
  Device-3: Intel Ethernet E810-XXV for SFP driver: ice v: kernel port: N/A
    bus-ID: 11:00.0
  IF: enp17s0f0np0 state: up speed: 10000 Mbps duplex: full mac: <filter>
  Device-4: Intel Ethernet E810-XXV for SFP driver: ice v: kernel port: N/A
    bus-ID: 11:00.1
$ sudo ethtool enp17s0f0np0

Settings for enp17s0f0np0:
        Supported ports: [ FIBRE ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
                                25000baseCR/Full
                                25000baseSR/Full
                                1000baseX/Full
                                10000baseSR/Full
                                10000baseLR/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: No
        Supported FEC modes: None
        Advertised link modes:  25000baseSR/Full
                                10000baseSR/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: None
        Speed: 10000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

I guess something about the newer Linux kernels 6.x might not like SR-IOV being enabled in my particular motherboard. Both older 5.x kernels in the other distros and Windows 11 did not have an issue with it.

1 Like

Nice troubleshooting!
Glad you got it working! Congrats!

:champagne:

Now I have a different problem with the nic about resume from suspend.

I have created a new thread about it here.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.