Update all DELL PowerEdge BIOS from a PXE Live Ubuntu

Quick notes from what I did today. Starting point was I was unable to update iDrac EXPRESS firmware (Uploading stuck at 95%) and these express cards don’t offer me to upgrade other BIOS anyway.

So I PXE-started the server on Ubuntu 16.05 Live CD and here’s what I had to do to be able to upgrade everything using “BIN” files (for RedHat) downloaded at DELL support website.

For the records I was upgrading the following:

  • R610_BIOS_C6MRW_LN_6.4.0.BIN: PowerEdgge R610
  • ESM_Firmware_9GJYW_LN32_2.90_A00.BIN: Embedded iDRAC controller
  • Network_Firmware_35RF5_LN_7.12.19.BIN: Additional 4x 1GB Broadcom card
  • Network_Firmware_82J79_LN_08.07.26_A00-00.BIN: Embedded Intel 1GB NICs
  • SAS-RAID_Firmware_9FVJ2_LN_12.10.7-0001_A13.BIN: Embedded PERC H700 RAID controller
  • SAS-Drive_Firmware_M2P11_LN_AS0D_A00.BIN: Seagate ST91000640SS SAS 1TB disks

Disable CDROM entryin soruces.list

sed '/^deb cdrom/d' /etc/apt/sources.list

Enable universe repository

sed -i 's/main/main universe/' /etc/apt/sources.list

Enable my HWRaid repository

echo "deb [trusted=yes] http://hwraid.le-vert.net/ubuntu xenial main" >> /etc/apt/sources.list

Install megaclisas-status to check the drive model

apt update
apt install megaclisas-status

Make sure /bin/sh is provided by bash (required by all updates)

dpkg-reconfigure dash

Select “No”

Install dependencies required by the BIN files (required by iDRAC firmware at least)
This requires to enable 32 bits support first.

dpkg --add-architecture i386
apt update
apt install libstdc++6:i386 rpm

Fake the system as being a RedHat one (required by R610 BIOS)

echo "Red Hat Enterprise Linux Server release 6.3 (Santiago)" > /etc/redhat-release

Despite tools says you’ll have to restart between each update it’s not necessary. However, double check after reboot that all have been applied by re-running the BIN files. I had to start Broadcom NIC twice, first attempt did nothing (old version still showed up after reboot)