Updating LSI MegaRAID firmware in VMware ESXi 5

I recently built a new server to run VMware ESXi.  After installing ESXi 5.0 update 1 and applying the latest patch (ESXi500-201207001), I decided I should update the firmware on the installed MegaRAID SAS 9261-8i RAID controller.  I have a SLAX install on a USB flash drive to do this kind of thing, but I couldn’t find it.  I opted to try using the ESXi console.

I downloaded the latest MegaCLI (version 8.04.07) and used sftp to copy “CLI_VMWare_8.04.07.zip” to /tmp on the ESXi file system.  After extracting the “MegaCLI” binary I ran into a problem caused by a missing library.

/tmp # unzip CLI_VMWare_8.04.07.zip
Archive:  CLI_VMWare_8.04.07.zip
  inflating: MegaCli
  inflating: MegaCli.zip
/tmp # chmod u+x MegaCli
/tmp # ./MegaCli -adpcount

./libstorelib.so: cannot open shared object file: No such file or directory

Controller Count: 0.

Exit Code: 0x00

The library did not show up in a find of the ESXi file system, but since the MegaCLI ZIP file contained another VMware-related ZIP, I checked that one.  It contained a VIB.

/tmp # unzip CLI_VMWare_MN_8.04.07.zip
Archive:  CLI_VMWare_MN_8.04.07.zip
  inflating: MegaCliMN.zip
/tmp # unzip MegaCliMN.zip
Archive:  MegaCliMN.zip
  inflating: vmware-esx-MegaCli-8.04.07.vib

I’ve installed driver VIBs before, but not recently.  A quick Google search turned up a VMware KB with the esxcli syntax, which unfortunately didn’t work.

/tmp # esxcli software vib install -v /tmp/vmware-esx-MegaCli-8.04.07.vib
 [InstallationError]
 ('LSI_bootbank_vmware-esx-MegaCli-8.04.07_8.04.07-01', 'Could not find a trusted signer.')
       vibs = LSI_bootbank_vmware-esx-MegaCli-8.04.07_8.04.07-01
 Please refer to the log file for more details.

While annoying I figured there must be an option to not verify the signature of the VIB.   The esxcli help showed an option to do this.

/tmp # esxcli software vib install -v /tmp/vmware-esx-MegaCli-8.04.07.vib --no-sig-check
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: LSI_bootbank_vmware-esx-MegaCli-8.04.07_8.04.07-01
   VIBs Removed:
   VIBs Skipped:

At this point typing “MegaCLI” didn’t work, and the PATH wasn’t updated, but I found the binary and needed library under the /opt directory.

/tmp # ls -1 /opt/lsi/MegaCLI/
MegaCli
libstorelib.so

And it seemed to work (the server also has a 8308ELP installed, thus the two LSI controllers).

/tmp # cd /opt/lsi/MegaCLI/
/opt/lsi/MegaCLI # ./MegaCli -adpcount

Controller Count: 2.

Exit Code: 0x02

I downloaded the latest firmware to my laptop (version 12.12.0-0111) and copied the ROM file to the ESXi file system and attempted the update.  I received yet another error.

/opt/lsi/MegaCLI # ./MegaCli -adpfwflash -f mr2108fw.rom -a0

Adapter 0: LSI MegaRAID SAS 9261-8i
Vendor ID: 0x1000, Device ID: 0x0079

Package version on the controller: 12.0.1-0057
Package version of the image file: 12.12.0-0111
Download Completed.
Flashing image to adapter...
Firmware Failed to FLASH flash. Stop!!!

Exit Code: 0x11

A quick Google search suggested a staged update, that is, update to a firmware that is not quite as new as the latest, and from there go to the latest firmware.  Annoyingly, the 9261-8i product page only listed the latest firmware for download, but by going to the general support page I found some older firmwares (hint: after expanding “FIRMWARE”, click on the “Archived” link).  I downloaded the oldest one available, version 12.11.0-0016, copied the ROM file to the ESXi file system, and ran the update.  Success!

/opt/lsi/MegaCLI # ./MegaCli -adpfwflash -f mr2108fw.rom -a0

Adapter 0: LSI MegaRAID SAS 9261-8i
Vendor ID: 0x1000, Device ID: 0x0079

Package version on the controller: 12.0.1-0057
Package version of the image file: 12.11.0-0016
Download Completed.
Flashing image to adapter...
Adapter 0: Flash Completed.
Please reboot the system for the changes to take effect

Exit Code: 0x00

After the reboot I attempted updating to the latest firmware… it worked!

/opt/lsi/MegaCLI # ./MegaCli -adpfwflash -f mr2108fw.rom -a0

Adapter 0: LSI MegaRAID SAS 9261-8i
Vendor ID: 0x1000, Device ID: 0x0079

Package version on the controller: 12.11.0-0016
Package version of the image file: 12.12.0-0111
Download Completed.
Flashing image to adapter...
Adapter 0: Flash Completed.
Please reboot the system for the changes to take effect

Exit Code: 0x00

After another reboot the card was indeed running the latest firmware, so I was essentially done.

/opt/lsi/MegaCLI # ./MegaCli -adpallinfo -a0|grep ^FW
FW Package Build: 12.12.0-0111
FW Version         : 2.130.353-1663

However, the esxcli help mentioned that installing unsigned VIBs would result in a warning being displayed in vSphere Client.  I didn’t want that so I went ahead and removed the VIB.

/tmp # esxcli software vib remove -n vmware-esx-MegaCli-8.04.07
Removal Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed:
   VIBs Removed: LSI_bootbank_vmware-esx-MegaCli-8.04.07_8.04.07-01
   VIBs Skipped:

I figure I won’t be using MegaCLI much so installing the VIB as needed doesn’t seem likely to be a hassle.  If it gets annoying I can always install it and ignore the warning (if any).  I hope this helps someone.  Some of it is covered in the excellent Mastering VMware vSphere 5 from Sybex (and probably the updated Mastering VMware vSphere 5.5) but the rest required piecing things together from Google searches and trial and error.

This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.

16 Responses to Updating LSI MegaRAID firmware in VMware ESXi 5

  1. Matthew House says:

    Thanks! Had almost exactly the same task to accomplish and your article was a big help!

  2. Paul says:

    Thanks for the instructions! Great help, everything worked, although now i feel like it would be easier to boot from Linux Live CD/USB and just do it from there.

  3. There’s a new MegaCLI (version 8.07.07) available. The zip (8.07.07_MegaCLI.zip) contains a vib file (vmware-esx-MegaCli-8.07.07.vib) which can be installed using the same procedure as detailed above.

    I installed this vib on a host running ESXi 5.1 Update 1 with the latest patch (ESXi510-201305001 / build 1117900) and it works fine. I successfully upgraded my 9261-8i to the latest firmware (12.13.0-0154 / 2.130.383-2315).

  4. Thanks!! I just spent many, many hours to update my LSI MEGARAID SAS 9260-4i from 12.0.1-0081 to 12.13.0.0154 within ESXi 5.1. After reading your blog and using 12.11.0-0016 inbetween it took only another 10 minutes to update the firmware

  5. Paul Ng says:

    Thanks! Your post helped a lot. I have been spending the last few days trying to downgrade my firmware without any success until I read your step-by-step instructions. The only change I’d made is to add “-noverchk” before “-a0” to flash to the older firmware.

  6. Sam Soyer says:

    This helped a lot. Thanks for taking the time to write this up. The LSI documentation really is lacking. I mean you can not even get the vibs to install without using the –no-sig-check but they fail to mention that to start with.

  7. Pingback: ORBIT SPACE

  8. mayak says:

    hi all,

    has anyone had luck with esxi 5.5 — i get the missing libstorelib.so error, however, installing the vib is not help …

    thanks

    m

  9. Teng says:

    Wow! Thanks a lot. Your post helpful. it worked for me (on esx5.5U1 with LSI9261-8i.) also i have problem with CacheCade that i hope it will solve this.

    🙂

  10. Aleksei K says:

    Maybe i can refresh MegaCLI url
    http://docs.avagotech.com/docs/12351582

  11. Alok says:

    Hi,
    Has anyone been able to successfully execute these commands in ESXi 6.0?
    For me on executing ./MegaCli -LDInfo -LAll -aAll it throws:
    Exit Code: 0x01.

    Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.