I recently found a very easy way to upgrade a Supermicro BIOS. It entails getting an out-of-band license key for the Supermicro BMC IPMI interface. This allows you to use the BMC IPMI to upgrade BIOS versions. Best thing: no more need to roll your own (usually ill-working) DOS-based boot media. Read up on this method in my previous post The better way to update Supermicro BIOS is via IPMI.

Part of getting the license key to unlock BIOS upgrade features in the IPMI is signing up for Supermicro Update Manager, an out-of-band management tool. So, as long as I did get access to it, why not give it a spin and compare it to the IPMI web interface?

SUM in itself is a software packages that leverages IPMI capabilities to configure and update systems remotely and in parallel. It’s a pretty cool little tool!

Supermicro Update Manager

SUM is a command-line tool and is independent from the OS on the managed systems. So you can run SUM on a Windows or Linux client, whilst the server in question is running ESXi.

The Supermicro Update Manager (SUM) can be used to manage the BIOS and BMC firmware image update and configuration update (…) To update configurations, users can edit system BIOS settings, DMI information and BMC configurations from readable text files, as well as use this update manager to apply these configurations. Two channels are possible for management: the OOB (Out-Of-Band) channel, i.e. communication through the BMC IPMI interface, and the in-band channel, i.e. communication through the local system interfaces.

c:\>sum.exe
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2016/01/28) (x86_64)
Copyright(C)2016 Super Micro Computer, Inc. All rights reserved

So it does a couple of things that are save both time and frustration:

  • Both in-band (on the host directly) and out-of-band support (remote via IPMI)
  • It can target multiple systems in parallel (in remote mode)
  • Read system information and asset inventory
  • Read and write BIOS, DMI and IPMI configuration
  • Mount bootable ISOs (which I won’t discuss here, but check out this video).

Practical uses

The most common use case is updating the BIOS remotely, but I’ve used it to gather information about my system and configure BIOS-settings, too.

As a practical note: the in-band access method requires actual physical access to the underlying hardware, so running this tool in a VM won’t work. In-band access requires a recent Red Hat Linux, FreeBSD or Windows version and on the latter two have specialized drivers for communication with the IPMI. Out-of-band accesses IPMI via the network, so network access between the client running SUM and the IPMI interface is required.

System information

The first command I ran is the CheckAssetInfo command, which shows you general information about your system, like so: (contents edited for brevity and generalization of unique information)

c:\>sum -i 10.10.10.9 -u ADMIN -p ADMIN -c CheckAssetInfo
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2016/01/28) (x86_64)
Copyright(C)2016 Super Micro Computer, Inc. All rights reserved
..................................................
..................................................
.......
System
======
 Product Name:
 Version: 1.123
 Serial Number:
 UUID: 00000000-0000-0000-0000-0000

Baseboard
=========
 Product Name: X10SDV-4C-TLN2F
 Version: 2.00
 Serial Number: [null]

CPU
===
 [CPU(1)]
 Family: Intel(R) Xeon(R) processor
 Manufacturer: Intel
 Version: Intel(R) Xeon(R) CPU D-1521 @ 2.40GHz
 Current Speed: 2400 MHz
 Enabled Cores: 4
 Total Cores: 4

Memory
======
 [MEM(1)]
 Locator: DIMMA1
 Manufacturer: Samsung
 Manufacturing Date (YY/WW): 16/01
 Part Number: M393A4K40BB0-CPB
 Serial Number:[null]
 Size: 32768 MB
 Current Speed: 2133 MHz

System Network Interface
====================================
 [LAN(3)]
 MAC Address: 0CC47AC00000
 [LAN(4)]
 MAC Address: 0CC47AC00000

IPMI Network Interface
====================================
 [IPMI]
 MAC Address: 0CC47AC00000

BIOS, DMI and IPMI configuration

Don’t you hate that most running systems don’t allow you to read current BIOS settings? This makes checking simple configuration items and building documentation cumbersome. I remember cases where processor performance settings were non-consistent or causing performance issues, and simply (double)checking the current settings for even a couple of dozen of hosts needed a maintenance window (to reboot the hosts) and took hours. With SUM, retrieving settings (on a running system) to check consistency or to build documentation is insanely easy:

c:\>sum -i 10.10.10.9 -u ADMIN -p ADMIN -c GetDefaultBiosCfgTextFile --file c:\G
etDefaultBiosCfgTextFile.txt
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2016/01/28) (x86_64)
Copyright(C)2016 Super Micro Computer, Inc. All rights reserved

File "c:\GetDefaultBiosCfgTextFile.txt" is created.

Example output from my system: (or download GetDefaultBiosCfgTextFile for a full view)).

Screen Shot 2016-08-09 at 21.30.20

When you want to change settings, you can edit a previous configuration file to contain just the changed settings; config files don’t need to be complete when using them to change settings.

A little hack I discovered fixes a long-time frustration I have with Supermicro systems is the lack of proper Model, Asset and Service tags.

Screen Shot 2016-08-09 at 21.44.21

With SUM, you can change this (using GetDmiInfo and  ChangeDmiInfo which behave similar to the above BIOS example), so I had a little fun. Kudos for those that recognize the asset and service tag, by the way.

Screen Shot 2016-08-09 at 22.17.39

BIOS update

Let’s get down to why you’re here. BIOS updates via SUM. It really is the best way to update Supermicro BIOS.

In my case, demonstrating a BIOS update is a little tricky, since there’s no newer version than the one I’m running. Luckily, Supermicro has a YouTube channel with a couple of videos on SUM, and includes one on updating BIOS versions using SUM. Great!

Pretty easy, no? I am happy with how this doesn’t require you to fiddle about with ancient boot media (like DOS) that always seems to fail. Of course, you still need to reboot your system after flashing, but SUM takes care of the heavy lifting and gracefully reboots your OS. IPMI updates work much the same, although you don’t need to reboot the running operating system.

One thing that caught my eye during my evaluation of SUM, was the text The in-band usage of this function does not require node product key activation. OK, remember that we ‘took advantage’ of the evaluation version of SUM to get our hands on a IPMI license to update the BIOS? Turns out we don’t need it for in-band channels. Unfortunately, SUM isn’t publicly available for download at this moment. It is available on request, though. I got my 1-node license a couple of hours after I made the request, so they are actively monitoring this.

So Joep, what’s your point?

Well, first of all, I like Supermicro hardware. It’s clean, it’s simple and it boots quickly. I like how they’re leveraging IPMI, UEFI, their redfish APIs and other technologies to offer simple tools to remotely manage, configure and update their servers. This looks and feels very DevOpsy to me and should integrate into SVN and other higher level toolkits easily. I think they’re pretty ahead of the pack in this area (case in point), and I can see why they’re the hardware vendor of choice for many large datacenters.

Secondly, I like SUM. It’s a no-hassle, cross platform and flexible tool to update BIOS versions and configurations. It removes the most frustrating steps in the update process: legacy boot media and it’s head-aches.

But there’s always room for improvement. For home labs, I’d like Supermicro to:

  1. Offer the Supermicro Update Tool for download publicly and free of charge (non-commercial use of up to, say, 10 systems). Don’t skimp on the out-of-band support!
  2. Create a version of SUM that is ESXi-compatible so the tool can run in-band for those running ESXi (which makes up about 95% of the home lab community)