this post was submitted on 02 Sep 2024
14 points (93.8% liked)

Linux

48008 readers
1462 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 2 months ago* (last edited 2 months ago) (2 children)

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.

[–] [email protected] 4 points 2 months ago* (last edited 2 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.

[–] [email protected] 1 points 2 months ago

Unfortunately this is uncharted territory for me. I did a quick web search though, and you aren’t alone. At least a few people have had the same problem before.