Wednesday, June 5, 2013

Fix Intel I350 igb driver "NVM Checksum Is Not Valid" error on Linux

On Ubuntu 12.04 LTS x86_64 (not 12.04.2), I got an error blocking the system from loading this specific ethernet driver, but there is actually no big issue and the network adapter is able to run properly in other system (SLES 11 SP1). The idea is to download the latest intel igb driver source and modify it, then rebuild and insert the new module.
  1. Download Intel igb driver source from
  2. Decompress the source
    tar zxvf igb-[VERSION].tar.gz
    cd igb-[VERSION]/src
  3. Delete the following entire piece of code in src/igb_main.c at line 2418 (as of igb-4.2.16) using your preferred text editor
    /* make sure the NVM is good */
    if (e1000_validate_nvm_checksum(hw) < 0) {
        dev_err(pci_dev_to_dev(pdev), "The NVM Checksum Is Not"
        " Valid\n");
        err = -EIO;
        goto err_eeprom;
  4. Run the following commands inside src folder,
    sudo modprobe -r igb
    sudo make install
    sudo modprobe igb
    sudo update-initramfs -u
  5. "The last command updates the existing initramfs. initramfs is a gzipped cpio archive. At boot time, the kernel unpacks that archive into RAM disk, mounts and uses it as initial root file system"
    At this point, the error should be fixed and after a reboot the module should be loaded correctly
Note: (OPTIONAL) Once you have done the above mentioned steps, with the igb.ko inside your igb-[VERSION]/src directory. At some point (maybe later in another Ubuntu installation using live CD), you may need to manually install the kernel module without having to rebuild it again, then the following commands may help,
sudo -s
modprobe -r igb
rm /lib/modules/3.2.0-23-generic/kernel/drivers/net/ethernet/intel/igb/igb.ko
install -D -m 644 igb-[VERSION]/src/igb.ko /lib/modules/3.2.0-23-generic/kernel/drivers/net/igb/igb.ko
depmod -a
modprobe igb
update-initramfs -u


  1. Yes, big save! I didn't even think to update the src file.

    For Centos, I ran dracut -f and rebooted instead of update-initramfs.

  2. Download the "Intel Ethernet Connections Boot Utility, Preboot images, and EFI Drivers" from

    Extract the tar file and run the flasher with "-all -up=pxe" to update the NIC firmware. The kernel bundled driver will work after that.

  3. What Alexander Wigen said. I used "./bootutil64e -ALL -UP=PXE -FILE=BootIMG" to fix a problem on a VMware ESXi server with a newly installed Intel I350-T2V2 card. It was possible to perform this procedure using a Linux Live CD. A "Connection to QV driver failed - please reinstall it!" occurred but did not prevent the corrective action. Interestingly, the CentOS 7 1503 Live KDE DVD igb driver issued the "The NVM Checksum Is Not Valid" error when it booted as well. The igb driver disappeared upon reboot without the use of either "dracut -f" or "update-initramfs" for both the Live CD and for VMware ESXi.

    1. In other words, no driver modification is required!