Upgrading the RAID Firmware on a Dell Server with Ubuntu

My basement is filled with old Dell servers that have been put out of commission at work. Why? Because I like having my own servers and hardware that is out of date for business use is just fine for my requirements (web hosting with Docker, backup, Plex, Unifi Controller etc.).

One thing I like about Dell is the OpenServer Server Administrator (OMSA), which gives you a web interface to stuff that you normally would have to muck around in BIOS to change and monitor (here's how to install it on Ubuntu).

Something that the OMSA will tell you is when your firmware is out of date. In my case it was the firmware for the RAID cards (PERC6/i). When you're running Windows there's a handy application that will upgrade the firmware for you, but with Ubuntu not so much.

Here's how I updated the PERC6/i firmware:

1. Download the upgrade package

https://www.dell.com/support/home/se/sv/sebsdt1/drivers/driversdetails?driverid=f96nr. The file you want is the one ending with .BIN. A .BIN-file is a combined shell script and binary payload. It's supposed to be runnable directly, but it is not (maybe it actually works on Red Hat, haven't tried).

2. Extract the firmware upgrade

The firmware upgrade is the the binary part of the .BIN-file, here's how to extract it:
bash SAS-RAID_Firmware_F96NR_LN_6.3.3-0002_X00.BIN --extract perc6e_fw

3. Install megacli

Now you need something that can get the new firmware onto the controller. The controller chip was made my a company called LSI that alledgedly has gone out of business. But you can still get their firmware upgrade utility called megacli. Here's how to install it:

wget -O - https://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
# Add Package Repo
echo "deb http://hwraid.le-vert.net/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list.d/hwraid.list
# Upgrade and Install
sudo apt-get update
sudo apt-get install megacli

(instructions from Nico Maas's blog: https://www.nico-maas.de/?p=1702)

4. Perform upgrade

Use megacli to flash the firmware:
sudo megacli -adpfwflash -f perc6e_fw/payload/FW1371iI.rom -aAll

5. Reboot

sudo reboot now

Happy upgrading!

comments powered by Disqus