Monthly Archives: July 2007

Thinkpad T60P And PXE-E05: The LAN adapter’s configuration is corrupted errors

I meant to post this yonks ago but never got around to it! Here’s some info which might help anyone else with a Thinkpad T60P (or possible other models too!) that’s having problems with it’s Intel Ethernet Network Card.

Way back in September of last year I applied the latest set of patches through the Thinkpad Software Installer/System Update. Although all seemed to go well during the install process, upon rebooting I immediately got the following:

Initializing Intel(R) Boot Agent GE v1.2.31

PXE-E05: The LAN adapter’s configuration is corrupted or has not been initialized. The Boot Agent cannot continue.

Then, after a few seconds:

ERROR
Expansion ROM not initialized – PCI on Motherboard
Bus:00, Device:00, Function:00

Press ESC to continueNow, at around the time of applying these updates, I was also configuring my router’s Ethernet port, so I can’t say for sure if the software update or something else caused a problem. Either way, it was a pretty drastic error message!

Needless to say, pressing Escape allowed me to boot normally. It was kind of annoying, so to disable the warning, I went into the BIOS and disabled:

“Read Network ROM on Startup” under Config/Networking.

However, this was only masking the real problem of some kind of corruption in the network card.

When booting into Linux (Fedora 7 or Gentoo) with a standard kernel, the network card was recognized but would not initialize.

Looking in messages, we see:

Mar 11 09:00:14 firestar e1000: 0000:02:00.0: e1000_probe: The EEPROM Checksum Is Not Valid

To temporarily workaround this problem (we know the network card is good, since Windows works just fine), we can recompile the kernel amending the e1000 module to simply ignore any checksum messages:

Unpack the kernel source and edit the following file: ”/usr/src/linux/drivers/net/e1000/e1000_main.c”. Search for the “e1000_validate_eeprom_checksum” code. You can simply uncomment out that part that would stop the module from being loaded as follows:

/* make sure the EEPROM is good */

if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) { DPRINTK(PROBE, ERR, "The EEPROM Checksum Is Not Valid\n"); /* goto err_eeprom; */ } Now compile your kernel as normal. Again, all very well and good and gets you up and running, but this is bad if you want to just try a new Linux distro from time to time, since a stock kernel will think the Adapter Card is broken. A couple of weeks ago I finally found a fix for this problem which is based upon Mat’s Blog Intel NIC: PXE-E05 error. I actually tried to download CDProBOOT-0.2.iso from this website, but I got a Free-DOS error about drive letters.

Here’s the fix I used:

Go to Intel Download Center and download the Intel Boot Agent – PROBOOT.exe version: 12.1. (You don’t the desktop or server adapter, the Boot Agent is what you need).

Extract the file to your C: drive, somewhere like C:\Temp\ProBoot

Download FreeDOS from FreeDOS.

Choose the full distro file:fdfullcd.iso

Burn the image to CDROM and boot from it.

Choose a LIVE Image during the boot menu and get to the FreeDOS command prompt:
cd c:\Temp\ProBoot\Intel12.1 (or wherever the files got unpacked)
IBAUtil.exe -DEFCFG

This will reset the Ethernet Adapter back to it’s default settings – including the checksum! All should be good, and now you can reboot! At this point, you can now safely re-enable the BIOS setting “Read Network ROM on Startup” under Config/Networking. Now the BIOS is happy, stock Linux kernels will boot normally and all is well.

Another source for more information about this problem can be found at the ever helpful Thinkpad Forums.

Hope this helps someone!