Sorcerer's tech…

General IT information….

Guide: Intel 82573L gigabit ethernet with Ubuntu 11.04 and fix PXE-E05

hello guys,

big post today. I’ve finally updated my Ubuntu machine to the latest version 11.04 Natty Narval…everything works out pretty well execpt for the wired ethernet controller… I’m using the

“Intel Corporation 82573L Gigabit Ethernet Controller”

this controller isn’t manageable via the usual Ubuntu Network Manager nor it’s listed in the output of the ifconfig and it’s status is unclaimed

$ sudo lshw -C network
*-network UNCLAIMED
description: Ethernet controller
product: 82573L Gigabit Ethernet Controller

There is no problem at all with Windows 7 or my old Ubuntu release 8.x , the card is fully working.

In the meantime I have noticed a long time recurring error (it was there for a long time before the  11.04) at the computer boot time (BIOS time),  looking like a bootstrap error :

“Initializing Intel Boot Agent GE v.1.2.28 PXE-E05: LAN adapter’s configuration is corrupted or has not been initialized. The Boot Agent cannot continue.”

the linux log messages helped me a little

$ dmesg | grep e1000
[ 0.267811] pci 0000:01:00.0: reg 18 32bit mmio: [0xee100000-0xee10ffff]
[ 0.268161] pci 0000:00:01.0: bridge 32bit mmio: [0xee100000-0xee1fffff]
[ 0.346430] pci 0000:00:01.0: MEM window: 0xee100000-0xee1fffff
[ 0.346978] pci_bus 0000:01: resource 1 mem: [0xee100000-0xee1fffff]
[ 0.918428] e1000e: Intel(R) PRO/1000 Network Driver – 1.0.2-k2
[ 0.918432] e1000e: Copyright (c) 1999-2008 Intel Corporation.
[ 0.918486] e1000e 0000:02:00.0: Disabling L1 ASPM
[ 0.918510] e1000e 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 0.918554] e1000e 0000:02:00.0: setting latency timer to 64
[ 0.918766] e1000e 0000:02:00.0: irq 29 for MSI/MSI-X
[ 0.990779] e1000e 0000:02:00.0: PCI INT A disabled
[0.990781] e1000e 0000:05:00.0: (unregistered net_device): The NVM Checksum Is Not  Valid                                                                                                                                                                                                                 [0.990788] e1000e: probe of 0000:02:00.0 failed with error -5

I have also been able to understand that this problem is not limited to the 82573L card but is common for a large number of intel ethernet cards (that is why you can easily understand the driver’s blacklisting in the old linux distributions) : 82563, 82566, 82567, 82571, 82572, 82573, 82574, 82577, 82578, 82579,  or 82583 -based.

So what is going on ? It looks like that the nework adapter’s (82573L) EEPROM is broken, unfixed and a little messed up, (error PXE-E05) this problem creates a checksum error for the NVM (The NVM Checksum Is Not Valid) that breaks the Ubuntu driver loading  therefore the eth0 alias is not created and there isn’t a manageable ethernet adapter for the Ubuntu network manger.

Windows simply doesn’t check the NVM checksum, it uses the card anyway and everything works fine.

IMHO Intel messed up a little with the 82573 controller there are too many similar errors out there, it seems it happens when there is a sudden power outage during LAN card bootime…totally nonsense !

Anyway, we need to fix this !!! As you can easily understand the idea behind this guide will work  for many others Intel controllers from the same family: I’m unable to test them but it’s probably worth giving it a shot !

And here it’s the guide…it’s not as long as it seems :

We need to remove the old 82573L driver, install the updated 82573 network controller driver, create a MS DOS boot pen drive, reboot, flash the card eeprom, and reboot again (there are a lot of subguides to ease the process for newbies USE THEM)

open the terminal ( https://help.ubuntu.com/community/UsingTheTerminal )

$ sudo rmmod e1000e                       # unload the old driver module

$ sudo rmmod e1000                        # unload the old driver module (errors are OK)

$ sudo rm /lib/modules/2.6.38-8-generic/kernel/drivers/net/e1000e/ -rf                  # remove old drivers (errors are OK)

$ sudo rm /lib/modules/2.6.38-8-generic/kernel/drivers/net/e1000/ -rf                  # remove old drivers (errors are OK)

download and extract to your home directory the latest intel drivers from their site ( http://bit.ly/ipbZ5W )

make sure you have installed build-essential ( http://bit.ly/yS5oW )

terminal again and cd to your home directory

$ cd       # to your home directory

$ cd e1000e-1.3.17/src                          #to the extracted drivers directory

$ sudo make install                                 #to install the drivers ( no errors on this side)

now we need to go to the intel site, download and extract the Intel(R) Ethernet Connections Boot Utility, Preboot images, and EFI Drivers ( http://bit.ly/jatTVE )        then prepare a MSDOS bootable pen drive and copy the extracted files we just downloaded to the pen drive.

Several ways to create a bootable MSDOS pen drive the Windows way  (PREFERRED) and the Linux1 , Linux2 and Linux3  way (should I use now the saxon genitive, now ? ) choose your favorite one but always  REMEMBER TO PUT THE EXTRACTED FILES TO THE PEN DRIVE.

Now go reading the important NOTE at the end of the page containing the disclaimer !

Now boot using the pendrive ( SUBGUIDE ) and assuming you’re at the command prompt:

c:\>  cd bootutil                        #go to the bootutil directory

c:\>  bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller

# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err

after that reboot the pc, and go back to Ubuntu.

Now everything should be working fine.

DISCLAIMER: You probably need to know that the Intel(R) Ethernet Connections Boot Utility WAS NOT designed to be used with on board (also know as OEM) lan cards (is for the PCI cards) therefore there is no sure way to predict it’s interactions with others on board components like USB or SOUND controllers.  I haven’t experienced any problem with my computer and I haven’t seen any negative review using Google (HP dv6000) but there is no way to be 100 %. What I can tell you is that procedure is the only way to make the cards working otherwise you need to buy a new external card.  Eventually use at your own risk and patrol

As usual hope this was helpful to somebody.

About these ads

07/01/2011 - Posted by | computer

24 Comments »

  1. Thank you very much.
    After 3 days of digging and googling I finally brought my LAN to life :)
    used bootutil -nic=1 -defcfg command.
    I have only one LAN card, for those who has several can use “bootutil -nic=x -blink” command to find correct number: Should start blinking light on device with specified number for 10 seconds.

    Comment by Davit Samvelyan | 07/22/2011 | Reply

  2. you’re welcome man !

    thanks for the tip !

    Comment by Sorcerer01 | 08/02/2011 | Reply

  3. Just a quick question — When this happened to you, did your ethernet port leds start flashing/blinking even though no cable was plugged? I use wireless 95% of the time at my place so I never quite noticed this issue until now, also because the port leds are a bit hidden to be honest. Still I believe it’s just a few days old because I tend to pay attention to POST.

    As for the BIOS “Initializing Intel Boot Agent GE v.1.2.28 PXE-E05: LAN adapter’s configuration is corrupted or has not been initialized. The Boot Agent cannot continue.” message, it’s exactly the same and the relevant parts of my dmesg are exactly the same as yours.

    Just want to clear up this led flashing/blinking thing just to be sure it’s not a hardware problem. It did appeared overnight in this 4 year old laptop and I never hit it or anything.

    Comment by Kamina | 08/08/2011 | Reply

    • @Kamina
      Well I’m sorry but I’m not sure if they were blinking at any time…
      Are you using hp dv6xxx ?

      Anyway looks like you are you’re experiencing our issue, hope my guide can help you !

      Bye.

      Comment by Sorcerer01 | 08/23/2011 | Reply

  4. First of all let me express my gratitude for this post, thank you very much.

    When I first noticed the warning text that something was wrong with the ethernet controller I thought – damn I damaged the NIC somehow. It stopped working in Ubuntu/FreeBSD and Hackintosh whereas previously it was working. Now you say that it has something to do with my Ubuntu installation which makes me sad because the rumors spread by M$ are true – Linux distros can brake you hardware. (As the author mentioned my LAN card does work under Windows Vista and Windows 7).

    I followed your instructions step-by-step and holly mackerel, after years of annoying BIOS PXE warning, now there’s no warning just non threatening PXE stuff. Ubuntu recognizes the interface, too. Does it work, dunno but I guess so.

    I would like to point out to other readers (likely owners of HP Pavilions dv6xxx) that the latest e1000e drivers are different from the one the author used. The Intel boot utility is also different or updated.
    You have to copy only the “BootUtil” folder onto your pendrive (discard the other crap). The command should be as follows:
    C:\BOOTUTIL\bootutil -nic=1 -defcfg

    The nic argument tells bootutil that you want the first ethernet controller in the list to be updated(since this is your laptop you won’t have two).

    I received some errors that’s why I recommend the -nic=1 or -all command arguments.

    Comment by Georgi | 08/23/2011 | Reply

    • Hi Georgi,
      you’re welcome !
      I don’t think Ubuntu can break down your hardware, it’s just that Linux is more “careful” about driver usage than windows and therefore it waits for everything to be ok.
      I am also not sure that the bootutil program will always recognize the oem eth controller as the first NIC device (usb or pci devices ?) but i will update my post with your modifications.

      Thanks !

      Bye !

      Comment by Sorcerer01 | 08/23/2011 | Reply

  5. it’s works…!!! thank you!!!

    Comment by Anonymous | 01/15/2012 | Reply

  6. You sir are a genius. This worked perfectly on my Lenovo T60 ThinkPad. I’ve been using it on wireless to develop a website and searched for a fix for far too long before i stumbled upon this.
    Thanks again!

    Comment by Anonymous | 01/17/2012 | Reply

    • no, I’m not ! I’m just lucky !
      Anyway, your’re wellcome!
      Cheers !

      Comment by Sorcerer01 | 01/17/2012 | Reply

  7. Hi Sorcerer. Good job for putting together a comprehensive post with step-by-step instructions. I have a T60 dual partitioned with Ubuntu 11.10 and Windows XP. Same as you, Windows recognizes the wired network card without kicking up a fuss and Ubuntu does not see the Ethernet card at all.

    Followed your instructions but the “PXE-E05: LAN adapter’s configuration is corrupted…”error message persists. This suggests that resetting the BIOS with bootutil did not work. Perhaps the version of bootutil I used, the latest available version, version 16.8 (http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=19186) does not work with the T60 hardware?

    Comment by Anne17 | 02/01/2012 | Reply

  8. Hi Anne17, if this did not work for you try disabling the NVM checksum at the driver level. See http://ubuntuforums.org/archive/index.php/t-1276211.html by editing the netdev.c file and recompling. Worked a treat for me. Good workaround by reese

    Comment by Mattgy | 02/20/2012 | Reply

  9. before:
    no pxe function on boot (unknown cause!!)and message about corrupted eeprom, e100 would only load with eeprom_bad_csum_allow=1

    after:
    pxe can be invoked at boot with option to press Ctrl+S for a few setup options.

    Commands used:
    #rmmod e100
    Ran install script (compiles kernel module).
    #insmod iqvlinux/src/linux/driver/iqvlinux.ko
    #./bootutil32 -NIC=1 -FE
    #insmod iqvlinux/src/linux/driver/iqvlinux.ko
    #./bootutil32 -NIC=1 -UP=PXE -DEFCFG -FILE=../BootIMG.FLB
    .. Create restore image? (Y)es .. 12290000.FLB…saved
    Flash update successful
    Setting PXE EEPROM words back to defaults on NIC 1…done

    Port Network Address Series WOL Flash Firmware Version
    1 0002…….. 10/100 YES PXE 4.2.04

    #
    -rw-r–r– 1 root root 10340 12290000.FLB
    #./bootutil32 -NIC=1 -SAVEIMAGE -FILE=NEW.FLB
    -rw-r–r– 1 root root 49252 NEW.FLB

    Comment by ubuhvnxu | 02/20/2012 | Reply

  10. the freedos boot usb made with Unetbootin did not work but the created win98 usb boot usb with Windows XP and the HP tool did. Remark: from the Intel zip file unpacked to the USB the bootutil.exe resides in PPS/BootUtil/DOS . But most important: it worked!!! I can use the Intel NIC wired network on my T60 now with Ubuntu (12.04, I had the problem already with older versions. Thank you very much for posting this solution.

    Comment by Rob | 09/15/2012 | Reply

  11. [...] Detailed steps you may find also here. [...]

    Pingback by e1000e – The NVM Checksum Is Not Valid | My *nix world | 12/05/2012 | Reply

  12. Or just comment out the NVM checksum check, run make install, and you are good to go! :)

    Comment by Neven | 01/30/2013 | Reply

  13. Thanks for the very clear guide… I was hoping this would fix my problems, but now I’m getting an e1000e probe failed with -2.

    Any ideas?

    Comment by todd krein | 01/31/2013 | Reply

  14. Simple Linux-only solution:

    mkdir BUTIL
    cd BUTIL
    wget “http://downloadmirror.intel.com/19186/eng/PREBOOT.EXE”
    unzip PREBOOT.EXE
    cd APPS/BootUtil/Linux_x64/
    ./bootutil64e -NIC=1 -FE
    ./bootutil64e -NIC=1 -BOOTENABLE=DISABLE
    ./bootutil64e -NIC=1 -FD
    rmmod e1000e
    modprobe e1000e

    Comment by Hajo | 05/14/2013 | Reply

    • Looks fine and working.
      Thanks Hajo

      Comment by Sorcerer01 | 05/16/2013 | Reply

  15. Thanks a lot #Sorcerer01 #Georgi . I can have internet now in my laptop with Ubuntu.

    Comment by Bala | 05/28/2013 | Reply

  16. […] steps you may find also here. If everything works as expected then after reboot you should see something like […]

    Pingback by e1000e - The NVM Checksum Is Not Valid | My *nix world | 01/14/2014 | Reply

  17. Hi!
    Thanks for the post!
    I followed your steps, but it failed. it showed the error “PXE not flashed on port 1, firmware not present”
    I tried to enable flash “bootutil -all – fe” too, but it also displayed the “Invalid argument on port 1″
    Windows has no problem with it but Ubuntu has. eth0 not present.
    Can you help?
    Thank you.

    Comment by Anonymous | 03/31/2014 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: