What's the trick for Dell firmware updates on RHEL-like OSes?

Stephen Dowdy sdowdy at ucar.edu
Wed Feb 2 11:27:01 CST 2011


If you're interested, i completely avoid using the Dell .BIN files
directly, as they do not work at all on Debian based distros and
often failed on the intended Redhat platforms (they're better now,
but used to always say things like "Can't allocate 1MB of contiguous
RAM" on my 8th gen systems (WHAT?!).

I use 'libsmbios' directly.  I created a script to use the
appropriate BIOS burning executable in that package, which basically

   sh ./DELL_IMAGE.BIN --extract FOO
   modprobe dell_rbu    # standard Linux kernel module
   smbios-rbu-bios-update --test -f  FOO/payload/*   # make sure it's for this system
   smbios-rbu-bios-update -u -f FOO/payload/*   # update

(i pull all the relevant .HDR files for the systems i maintain from
the payload directory into a repo that my script references.  But,
this is the gist of the process)

Works like a charm EVERY time, runs immediately, (as opposed
to often minutes with the monolithic DUP (Dell Update Package)
infrastructure of unpacking RPMs and running Dell's Disney HAPI
stuff from the .BIN image).

I actually use a REALLY old version of libsmbios which had a
different executable binary called, 'dellBiosUpdateS', so i'm
extrapolating the actual call to the newer libsmbios release.
You may have to wangle the options to get it just right.  The
really old version still works great on 11th gen systems, so
i've had no incentive to upgrade the BIOS update script.

Just grab libsmbios from dell's linux.dell.com site.
(It's handy for much more than just burning BIOS updates, too,
especially the 'cmos-token' control tools)

$ ./smbios-rbu-bios-update --help
Usage: smbios-rbu-bios-update

  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -f HDR_FILE, --hdr=HDR_FILE
                        The BIOS update file (.HDR file)
  --hdr-info=HDR_FILE   Show information about a given BIOS HDR file
  --system-info         Show system information and RBU completion codes
  --cancel              Cancel pending BIOS update
  -u, --update          Stage BIOS for update at next reboot
  --test                Test HDR file to see if it is appropriate for this
  --auto-detect-mode    Automatically select the optimal update mode (default,
  --force-packet-mode   Force update to use packet-mode
  --force-mono-mode     Force update to use monolithic-mode
  --force-compat-mode   Force update to use old dellBiosUpdate binary
                        Allow BIOS downgrades and re-flash
                        Disable check for system-id (Dangerous)
  --reboot              Reboot the system after successfully staging update.
  --no-reboot           Do not reboot the system after staging update.
  -v, --verbose         Display more verbose output.
  -q, --quiet           Minimize program output. Only errors and warnings are
  --trace               Enable verbose function tracing.
                        Specify alternate config log.
  --password=PASSWORD   BIOS Setup password for set/activate operations.
  -r, --rawpassword     Do not auto-convert password to scancodes.
                        Path to a memory dump file to use instead of real RAM
  --cmos-dat=CMOS_DAT   Path to a CMOS dump file to use instead of real CMOS

More information about the Linux-PowerEdge mailing list