如何解决 NVM 校验和错误(PXE-E05)以使以太网正常工作?

如何解决 NVM 校验和错误(PXE-E05)以使以太网正常工作?

我有一台东芝 Portege M400 平板电脑,配有英特尔 82573L 千兆以太网控制器。它在 Windows 上运行良好,但在 Ubuntu 上却无法运行!

启动期间 CMOS 显示以下内容:

PXE-E05 error, LAN Adapter configuration not initialized, Boot Agent cannot continue.

我发现这是因为NVM 校验和错误,我尝试使用英特尔启动实用程序刷新 EEPROM,但没有成功。刷新 EEPROM 总是返回以下错误:

PXE not flashed on port 1, Firmware not present.

我恢复到内核来编辑驱动程序文件并再次绕过 NVM 校验和错误以进行引诱,但没有任何结果。

以下是一些终端输出:

$ lspci -v | grep 82573L
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller

$ ifconfig -a
just listed wlan0 only

答案1

最后我找到了解决方案。我通过编辑以太网控制器(82573L 千兆位)的设备驱动程序,在 Ubuntu 启动时跳过了 NVM 校验和。

步骤如下:

  1. 从英特尔网站下载最新的 e1000e 驱动程序
  2. 解压源码如下

    tar zxvf e1000e-[VERSION].tar.gz
    cd e1000e-[VERSION]/src
    
  3. 打开netdev.c搜索以下代码并删除:

    /* 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. 现在运行以下命令:

    sudo modprobe -r e1000e
    sudo make install
    sudo modprobe e1000e
    sudo update-initramfs -u
    

    这将替换旧的驱动程序并在启动时初始化这些驱动程序。

笔记:纠正校验和错误的最佳方法是刷新 EEPROM,但就我的情况而言,EEPROM 已损坏,无法刷新。因此,我不得不在启动时跳过校验和错误检查。

相关内容