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.
Thanks! Had almost exactly the same task to accomplish and your article was a big help!
I’m glad you found it helpful. The official documentation is lacking so I thought I should share my experience.
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.
You’re welcome. I did eventually find my SLAX USB drive so next time I’ll just use that.
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).
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
I’m glad to hear this post helped! I wish the official documentation was a little bit more detailed so we could avoid these problems.
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.
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.
Pingback: ORBIT SPACE
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
That’s strange. Was the library successfully installed in /opt/lsi/MegaCLI/?
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.
🙂
Maybe i can refresh MegaCLI url
http://docs.avagotech.com/docs/12351582
Great, thanks! Post updated.
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