Dell’s meagre Ubuntu support doesn’t make firmware updates easy. Their monstrous OMSA doesn’t do it, and their RedHat packages are pretty hideous even on RedHat! Here’s a solution running on Ubuntu Lucid 10.04.
The PERC 6/i controller is a rebadged LSI, so I grabbed the latest MegaCli tool from LSI’s site to do the flash update with since Dell’s tools are hopeless. This is supplied as an rpm, so it’s a bit of a pain to set up on Ubuntu.
aptitude install unzip alien sysfsutils rehash cd mkdir MegaCli-8.01.06 cd MegaCli-8.01.06 wget "http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.01.06_Linux_MegaCLI.zip" unzip 8.01.06_Linux_MegaCLI.zip unzip MegaCliLin.zip rpm2cpio MegaCli-8.01.06-1.i386.rpm | cpio -idmv cp -p opt/MegaRAID/MegaCli/MegaCli* /usr/local/bin rehash
I preferred to put them in
/usr/local instead of
/opt so I don’t need to mess with the system PATH.
Now that we have the tools, here’s a firmware update procedure that works on Ubuntu. It’s a bit odd as it grabs the Windows version of the update, however that’s actually the easiest one to get the ROM image out of since you can just unzip the exe!
cd mkdir fw cd fw wget "http://ftp.us.dell.com/SAS-RAID/DELL_PERC-6-I-INTEGRATED_A12_R278433.exe" unzip DELL_PERC-6-I-INTEGRATED_A12_R278433.exe MegaCli64 -adpfwflash -f FW952II.rom -a0
Before the update:
omreport storage controller Controller PERC 6/i Integrated (Embedded) Controllers ID : 0 Status : Non-Critical Name : PERC 6/i Integrated Slot ID : Embedded State : Degraded Firmware Version : 6.2.0-0013 Minimum Required Firmware Version : 6.3.0-0001 Driver Version : 00.00.04.01
Applying the update:
Adapter 0: PERC 6/i Integrated Vendor ID: 0x1000, Device ID: 0x0060 FW version on the controller: 1.22.02-0612 FW version of the image file: 1.22.12-0952 Download Completed. Flashing image to adapter... Adapter 0: Flash Completed. Exit Code: 0x00
Controller PERC 6/i Integrated (Embedded) Controllers ID : 0 Status : Ok Name : PERC 6/i Integrated Slot ID : Embedded State : Ready Firmware Version : 6.3.0-0001 Minimum Required Firmware Version : Not Applicable Driver Version : 00.00.04.01
When it’s easier to to use the Windows version on Linux, you know they’re doing something horribly wrong.
The Dell RedHat package that’s supposed to do this is a disaster. It encodes an update script and the binary ROM image into a shar archive (I’d not seen one of those for about 20 years!). The only time I tried running it on RedHat it spewed a load of errors and did an immediate, unprompted reboot. That’s professional software from Dell that is.
It has to be said that updating any kind of firmware on pretty much any platform is almost universally hideous. Nobody seems willing to take the plunge and make it a pleasant, simple, reliable experience, which is crazy when you consider that it’s often a Very Bad Thing™ if it goes wrong. We’re all saddled with ancient crappy BIOSes that should have been replaced decades ago and stupid floppy-based updaters. The server market is just solid with fat, complacent incumbents; we need someone to ‘do an Apple’ and turn the whole thing upside down.
3 Replies to “Updating PERC 6/i RAID BIOS on Ubuntu”
@DellCaresPRO followed instructions here: http://t.co/JsufK0WB MegaCLI link didn’t work, found another, & updated. PHEW that was a LONG day.
Thanks a lot! It worked like a charm on my Poweredge 1950
This is not the BIOS but firmware, you’ll know the difference if you follow a guide from UnRAID and brick your Perc 6/i 🙁
Step 1 was to erase the BIOS and then later you flash a new BIOS. Only the tool from LSI sas2flash DOES not seem to support Dell Perc 6/i (tried many different versions). So for now I think I’m bricked but was hoping this page would help me with the BIOS issue (card not detected due to erased BIOS and can’t flash back with sas2flash).
Comments are closed.