After installing Fedora 41 the following hardware was not working as expected:
- Ethernet port:
lspci
output00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (13) I219-LM (rev 20)
- Fingerprint reader:
lsusb
outputBus 003 Device 004: ID 0a5c:5843 Broadcom Corp. BCM58200 ControlVault 3 (FingerPrint sensor + Contacted SmartCard)
The problem is that, while loading the appropriate module named e1000e
by intel, the checksum check fail:
[ 14.664965] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
[ 14.723033] e1000e 0000:00:1f.6: probe with driver e1000e failed with error -5
The ethernet controller is properly working: just the NVM check is failing.
The soultion is to install the patched kernel module provided here, using akmod.
This guy seems to have the same laptop and did not manage to solve the problem :(
This discussion seems interessing: https://superuser.com/questions/1104537/how-to-repair-the-checksum-of-the-non-volatile-memory-nvm-of-intel-ethernet-co
The problem can be fixed just ignoring the bad result of the checksum validation (this is the behaviour of the same drivers on Windows). The in-tree kernel module e1000e
can be patched to ignore this problem. Of course this workaround works only if the adapter is working: if the validation failed because of a faulty hardware this won't help.
On my hardware, no matter what, I could not rewrite NVM to fix the problem so I had to make the temporary solution definitive by patching the kernel module in a maintainable way: I created an akmod package for this driver here.
Of course the driver are not available sine they are closed-source and Broadcome did not care enough to provide them for Linux.
I created a COPR repo to install the needed driver, courtesy of ubuntu. Instructions here: https://copr.fedorainfracloud.org/coprs/ferdiu/libfprint-tod/
This tool can be used to control some BIOS settings from within Linux based OSes: for example can change the battery charging threshold.
What needs to be done here is to install the packages from the link above (.rpm
s packages are available until version 4.11.0
at the time of writing) and then run somthing like:
sudo /opt/dell/dcc/cctk --PrimaryBattChargeCfg=Custom:50-80
see this for reference.