VMware Cloud Community
kellino
Enthusiast
Enthusiast
Jump to solution

Emulex Firmware Horror Stories

We have ESX3 running on some HP DL580 G3's and we noticed some SCSI timeouts on SAN drives. Long story short, our Emulex HBA firmware was out of date by more than a year and we need to upgrade.

In 2007, servers no longer come with floppy drives. Emulex provides a Linux update utility but it looks like there are other pre-requsities that fall outside of VMWare. So an offline firmware upgrade seems like the best bet.

HP (and Emulex) only provide a DOS based utility for offline updates, and leave it up to the user to figure out how to boot into DOS without a floppy drive.

I start with BartPE. Only problem is that this is Windows PE and it won't let you change CD's because Windows is running from it! Drat! Can't copy it to a local drive because there are not FAT or NTFS partitions. Drat! I tried the USB flash drive, but I guess Windows PE doesn't provide USB support. Drat!

I noticed that on the BartPE site they have a bootCD image designed specifically for BIOS upgrades. Great! When I boot from it I get this pretty red screen with "Illegal OpCode" and a bunch of scarry binary jibberish.

A few googles later and I find the Ultimate Boot Disk. This CD-ROM lets to boot to 3 different versions of DOS (FreeDOS, OpenDOS, etc.).

I try it and I'm thrilled to learn that I can run DOS, and change CD's (and have CDROM support)!

Finally! So I run the LP6DUTIL and it tells me that the flash image is corrupt. That's odd. I tried other versions of DOS and they gave me a similar but different error (the error codes in LP6DUTIL were different!).

Is a DOS driver or component interfering? Is my CD image bad?

I re-downloaded the firmware, made a 2nd CD and tried again with about a dozen permutations of DOS and driver settings. Each one the LP6DUTIL program tells me the flash image is corrupt.

I am following the documentation for LP6DUTIL (which comes with the firmware download to a "T").

I also tried downloading the Emulex offline DOS utility (DOSLPCFG) and I get the same "bad image" error. I downloaded the file twice and burned it twice and I somehow doubt the files got corrupted. The EXE's on the same CD seem to work fine (beyond not allowing me to download firmware).

So with this, I leave the community with a simple question. Has anyone ever found a way to successfully upgrade Emulex HBA firmware on an ESX server? What DOS Boot CD did you use? What settings? What utility? All the details please! Smiley Happy

I've spent the better part of 2 days now on what should be an easy task. I'm beginning to wonder if such a herculean feat is even possible, but I'm sure there's some zenu guru wizard out there who has been able to conquer this task, and upgrade their Emulex HBA's?

Thanks Smiley Happy

Reply
0 Kudos
1 Solution

Accepted Solutions
dinny
Expert
Expert
Jump to solution

Hiya,

Emulex provide VMware specific driver and utility packs:

http://www.emulex.com/vmware/support/index.jsp

I install these directly on the COS (as part of my scripted ESX build) and have never had any problems.

I use Emulex LP10000DCs and use the lpfcutil-7.3.2.tar

Once installed you can use the lputil utility

(run it directly from the COS via ./lputil)

This allows you to upgrade firmware, enable/disable boot bios and pretty much anything else that you might need to do on the HBAs.

Dinny

View solution in original post

Reply
0 Kudos
18 Replies
christianZ
Champion
Champion
Jump to solution

Well we have here Dell Servers w/o floppy - I connected an usb floppy and worked / booted with it - all that worked fine so I suppose you can do the same with hp server.

Just a thought.

ObiWan
Enthusiast
Enthusiast
Jump to solution

Or, if you have no USB floppy drive, you can:

\- find computer with Floppy \_and_ CD-RW drives, (or install "floppy simulator" software to your notebook without FDD)

\- find floppy disk (the hardest part !!!) Smiley Happy or create "fdd-image-file"

\- make a bootable floppy,

\- extract BIOS update to it,

\- burn this floppy to CD-RW like bootable image,

\- boot server with this CD and start BIOS upgrade.

Works for me. (on IBM)

Reply
0 Kudos
Texiwill
Leadership
Leadership
Jump to solution

Hello,

SInce you are using ProLiant hardware, use the ILO's virtual floppy capability to boot from a floppy. Granted you need an ILO license. Or you can use a USB floppy.

Best regards,

Edward

--
Edward L. Haletky
vExpert XIV: 2009-2023,
VMTN Community Moderator
vSphere Upgrade Saga: https://www.astroarch.com/blogs
GitHub Repo: https://github.com/Texiwill
kellino
Enthusiast
Enthusiast
Jump to solution

Thanks for the advice everyone.

The point I'm at now is that I can boot from 3 flavors of DOS from the BOOT CD and I can run the utility, but the utility says the flash code is corrupt.

I don't know if there is a difference between MS-DOS and FreeDOS for example that is creating this problem. The utility can interrogate and change settings on the HBA's just fine -- it just won't accept the flash file.

I don't have a USB floppy yet, but I don't know that this would get me any further than I am now.

I think I might try creating a new BartPE that has the Windows utility LPUTILNT.EXE on it.

The Proliant Virtual Media is an option, but again I don't know that it would get me any further than I am now. I think I'll try the LPUTILNT from Bart-PE first and go from there. Thanks!

Reply
0 Kudos
jesse_gardner
Enthusiast
Enthusiast
Jump to solution

We use a Pre-eXecution Environment (PXE) to network boot all sorts of functionalities including Bios & firmware boot disks.

Pxelinux, part of the syslinux family, combined with a tftp server like tftpd32 for windows, allows you to boot floppy images over the network. For us, the process is:

Press F12 to boot from network. You get a menu.. drill down to the Firmware Updates section and choose the model of server. Viola, you boot to a DOS floppy image. It's worked great for us for several years. If you'd like further details, let me know.

Interestingly, you can use floppy images of more than 1.44mb in this environment. I've got 8mb floppy images to house all the firmwares for a model in one image (like BIOS, BMC, diagnostics, raid controller, NICs, etc). One nice autoexec.bat file does it all.

Reply
0 Kudos
dinny
Expert
Expert
Jump to solution

Hiya,

Emulex provide VMware specific driver and utility packs:

http://www.emulex.com/vmware/support/index.jsp

I install these directly on the COS (as part of my scripted ESX build) and have never had any problems.

I use Emulex LP10000DCs and use the lpfcutil-7.3.2.tar

Once installed you can use the lputil utility

(run it directly from the COS via ./lputil)

This allows you to upgrade firmware, enable/disable boot bios and pretty much anything else that you might need to do on the HBAs.

Dinny

Reply
0 Kudos
kellino
Enthusiast
Enthusiast
Jump to solution

Dinny:

Didn't try it yet but I'm so confident it will work I marked your answer as correct Smiley Happy

Updating from the OS is definately the best way.

I'll follow up with the results when I have a chance to attempt this later today. Thanks!

Reply
0 Kudos
dinny
Expert
Expert
Jump to solution

That's very kind Smiley Happy

I don't know if you use the HP Insight Agents?

I found a couple of irritating things with them:

If the boot BIOS is enabled on the HBAs - all hba ports will still show in Insight Manager - even if you disable some of them in the BIOS.

There is a known problem (with at least the HP 7.70 Agents) whereby you need to overwrite libdfc.so with the Emulex version to get IM to report on the HBAs correctly. It's mentioned at the end of the HP Agents 7.70 readme.txt.

As long as you install the Emulex stuff before the HP Agents - it should be fine.

Dinny

Reply
0 Kudos
Bastien_P
Enthusiast
Enthusiast
Jump to solution

Pretty much what dinny propose.. But this is my history with the emulex and what i used to correct the problem. In my case the utility loaded on the ESX...

http://www.vmware.com/community/thread.jspa?messageID=618381&#618381

Remember: If you find this information useful, please award points for "correct" or "helpful".
Reply
0 Kudos
kellino
Enthusiast
Enthusiast
Jump to solution

sigh.....

I downloaded lpfcutil-7.3.2 from Emulex but it won't install.

When I run the install script (logged in as "root") I get this:

-bash: ./Install.sh: Permission denied

Why would "root" have permission denied? the README doesn't say anything about permissions. It basically just says to run the install script.

I tried running the program directly but I get this:

-bash: lputil: command not found

Not sure how the command can't be found when the file is in that directory!

Reply
0 Kudos
kellino
Enthusiast
Enthusiast
Jump to solution

You know what....

I just read the README and the LP1150 is not listed as being supported by the LPUTIL utility so it looks like we can't use this method in any case.

Back to the drawing board.....

I'm about ready to throw these Emulex HBA's out the window and ask for QLogic adapters....

Reply
0 Kudos
jesse_gardner
Enthusiast
Enthusiast
Jump to solution

Well this is probably a case of execute permissions. By default files can't be executed directly. Two ways around this.

Change the permissions: "chmod +x ./install.sh"

Execute the command interpreter and pass the script as a parameter: "sh ./install.sh"

Reply
0 Kudos
kellino
Enthusiast
Enthusiast
Jump to solution

Thanks! The chmod +x allowed me to run the script (would have been nice to mention in the README!).

After I installed I went to the \usr\sbin\lpfc directory and typed "lputil" and I got an unkown command error.

This was quite maddening because I could see that the file was right there in this directory but it wouldn't let me run it.

I was just about to give up when I noticed that the manual said that the utility should be invoked by running " /user/sbin/lpfc/lputil ". This worked! Why the full path would work versus just calling "lputil" from the same directory doesn't work, is something that I will never understand.

Once I had the utility running, I was able to flash everything with no issues on the first attempt.

I wonder if the DOS based LP6UTIL only works on MSDOS6 and not on any of these FreeDOS or OpenDOS variants. But how does one get an MS-DOS 6 Boot CD in this age of floppy-less devices?

Would it be that hard for Emulex to make a small ISO that can be booted to flash the firmware? Sheez.....

Thanks for all the help everyone!

Reply
0 Kudos
Jae_Ellers
Virtuoso
Virtuoso
Jump to solution

a few points

\* HP has a tool for loading boot floppy images on an usb stick. Works pretty good

\* USB floppy is ~$15. Good to have around for that price.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=- http://blog.mr-vm.com http://www.vmprofessional.com -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Reply
0 Kudos
iguy
Enthusiast
Enthusiast
Jump to solution

My goodness. I've never had anywhere near these kinds of problems with the Emulex cards we have. Did you get this working properly?

Reply
0 Kudos
rdowling2
Contributor
Contributor
Jump to solution

Thanks! The chmod +x allowed me to run the script (would have been nice to mention in the README!).

After I installed I went to the \usr\sbin\lpfc directory and typed "lputil" and I got an unkown command error.

This was quite maddening because I could see that the file was right there in this directory but it wouldn't let me run it.

I was just about to give up when I noticed that the manual said that the utility should be invoked by running " /user/sbin/lpfc/lputil ". This worked! Why the full path would work versus just calling "lputil" from the same directory doesn't work, is something that I will never understand.

These are basics of the linux operating system, adding the execute permission (chmod +x) to the file is one way, or "bash ./scriptname" is another, and for security the current directory "." is not in the path, you could have specified ./lputil and it would have worked.

Reply
0 Kudos
saijyothi
Contributor
Contributor
Jump to solution

Hi Dinny,

I found an issue for HP BL-465 and HBA installed in that is LPe1105-HP. There was a old firmware version 2.70A5 and installed ESX 3.5 but HBA driver was not loading. When I upgraded firmware to 2.72A2 driver get loaded properly.

Now question is how can I update new firmware when there is no driver is installed on ESX. What I know for tools like hbaanywhere or lputil driver should be loaded first.

Any idea pl?

Thanks,

Sai.

Reply
0 Kudos
RickVC
Contributor
Contributor
Jump to solution

The USB boot device with freeDOS can be used to update the firmware and boot code on this HBA.  The issue was not that the doslpcfg p !@rogram would not work correctly.  The firmware file was read as corrupt because it was intended for an Emulex lpe11000 HBA.  While vmware reported the HBA as this model, it was in fact an lpe11002.  I received the same error until I downloaded the flash file for the lpe11002, then it updated and I was able to continue my upgrade to ESXi 6.0

Reply
0 Kudos