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.