Posted by & filed under Techie.

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

After reboot:

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.

Rant

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 Responses to “Updating PERC 6/i RAID BIOS on Ubuntu”

  1. rtt

    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).