I have a Dell Latitude 5420 laptop with LMDE, running kernel 6.1.0-12. This laptop has a builtin I219-LM ethernet controller that I can see via lspci. Some research indicates that this needs the e1000e kernel module, so I grabbed it from Intel, compiled it, and installed it. There were some complaints during the compilation, but nothing more than the average compilation process. Plus, it shows up in lsmod. Afterwards, lspci -vv displays it with the e1000e driver:

0000:00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (13) I219-LM (rev 20)
        Subsystem: Dell Ethernet Connection (13) I219-LM
        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 16
        IOMMU group: 15
        Region 0: Memory at a6100000 (32-bit, non-prefetchable) [size=128K]
        Capabilities: [c8] Power Management version 3
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Kernel modules: e1000e

However, when I do lshw, it is listed as unclaimed:

  *-network:1 UNCLAIMED  
       description: Ethernet controller  
       product: Ethernet Connection (13) I219-LM  
       vendor: Intel Corporation  
       physical id: 1f.6  
       bus info: pci@0000:00:1f.6  
       version: 20  
       width: 32 bits  
       clock: 33MHz  
       capabilities: pm msi cap_list  
       configuration: latency=0  
       resources: memory:a6100000-a611ffff  

…and of course, it’s still not showing in ifconfig. So, where do I go from here? Did I miss anything obvious?

And just for the record, I know that the ethernet port is working. It worked fine in Win11 before wiped the PC completely.

  • neidu2@feddit.nlOP
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    4 months ago

    Pretty much when you posted that, I found this in my dmesg:

    [  715.744332] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
    [  715.965683] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
    [  716.008541] e1000e: probe of 0000:00:1f.6 failed with error -5
    

    Just for the record, I compared modinfo up against lspci, and the PCI ID matches, so the driver should work. Is it possible to ignore the NVM checksum and try anyway? Because any tool I can find that communicates with the EEPROM on a hardware level is made for msdos.

    • Lucy :3@feddit.org
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      4 months ago

      I had that issue for months. There is no real solution afaik. Apparently, reading the NVM checksum is just not possible on Linux with this chip. It always defaults to 0xFFFFFF I believe. In theory you could write some value, to reset it, but it gave me some permissions error. I resorted to get the source of the kernel, patch out the checking code, compile just the module and then install it. I created a PKGBUILD for it, and I’m currently trying to make it a DKMS package, so you don’t have to reboot first to manually rebuild it.
      As you use Debian, you’ll need to create a manual compiling script, but here are my PKGBUILDs for reference: https://git.30p87.de/30p87/e1000e-nocksum-kerne Note that you need to swap out the kernel source link to the source of your current kernel version.

      The current problem is, that you need to reboot to update to a new kernel version, which then means the custom driver will not work anymore, and you need an internet connection to rebuild it, as it will need the most recent kernel version. So never kernel update without wifi in reach.

      I will first make it a DKMS package, to ease some of the pain, and then see if I can make it debian compatible.