The Easy Button for Supermicro BIOS Upgrades

Supermicro makes some really amazing motherboards and are a key piece of my home lab whitebox strategy. I’m incredibly happy with the built-in IPMI and remote KVM / Media abilities that come standard with the X9SCM board. With that said, I recently acquired a pair of Emulex 10102-FX UCNA cards to provide some 10 GbE connectivity testing between two of my vSphere lab hosts, with hopes of adding a 10 GbE switch in the future. For now, the two hosts are directly connected using a cross-over LC/LC SR fiber optic cable.

I did have a bit of difficulty getting the cards to correctly load and become available in vSphere 5.1. After a bit of troubleshooting I finally discovered the root cause: the motherboard BIOS version was too far out of date to support the cards. This post will go over how to easily update the BIOS on a Supermicro board, along with another post that will cover using the Emulex OneCommand software plugin for vCenter to easily discover and update the CNA firmware.

Supermicro BIOS Update / Flash Procedure

Some call it flashing the BIOS (like me) and others call it updating the BIOS. Either way, the goal is to wipe the old BIOS firmware and load the latest and greatest. The method that I found to be easiest was to use Rufus to create a bootable USB stick, and then just add the Supermicro BIOS firmware onto the USB stick. Here are the three steps to follow:

Step 1 – Grab The Latest Supermicro Firmware

Fire up the Supermicro download page and put in your motherboard model. In my case, it’s the X9SCM.

bios-downloads

Click the BIOS Downloads or Get BIOS button. The latest firmware will be offered for download, with a giant warning telling you that upgrading firmware is risky business. I strongly recommend making sure that your server is plugged into a UPS before moving forward with the upgrade.

firmware-warning

Once you click on the link you’ll need to read and accept a EULA. Then you can download the zip file. Inside are a handful of files – the large file with a weird extension is the actual BIOS bin file.

bios-zip-contents

Note: There are also two batch files included – AMI_1.BAT is for BIOS 1.1a or lower, and AMI_2.BAT is for BIOS 2.00 or higher. In my case I am running 1.1a so I’ll need to use AMI_1.BAT in Step 3.

Extract the contents of the zip to a folder for later.

Step 2 – Bootable USB Stick With Rufus

If you’ve not used Rufus before, it’s just a simple little app that formats a USB stick so that it boots into DOS. I use it all the time for OS-less firmware upgrades on various servers and components. Download the app, pop in a USB stick (pretty much any size will do), and tell Rufus to make the USB stick bootable. I used the default configuration, but still took a screenshot below for you to refer to.

rufus-config

Once completed, copy over the extracted zip folder from Step 1 and put it in the root directory of the Rufus USB stick.

Step 3 – Flash The BIOS

The final step is to insert the Rufus USB stick (or mount it over IPMI) and fire up the server. To make sure that the server boots to the USB stick, enter the BIOS settings before the server boots into the hypervisor and do a manual boot override to the Rufus USB stick. Alternatively, I just end up removing the existing USB stick that holds vSphere ESXi on it because I have no other bootable media inserted – this gives the board no choice but to boot into the Rufus USB stick.

Once the Rufus USB stick has booted to DOS, do the following:

  1. cd <name of directory you copied over in Step 2 with BIOS>
  2. Run the update batch file
    • If your current BIOS is 1.1a or lower, run AMI_1.BAT <name of BIOS file>
    • If your current BIOS  is 2.00 or higher, run AMI_2.BAT <name of BIOS file>
  3. The AMI Firmware Update Utility will launch and erase the flash, then write the new BIOS file to the flash

The final screen looks something like this:

ami-bios-update-screen

That’s it. Easy!

If you used AMI_1.BAT I typically advise rebooting the server and then running Step 3 a second time with AMI_2.BAT instead. It should finish without any final warning messages.

You can remove the Rufus USB stick and reboot the system into your normal vSphere hypervisor environment.

Next Steps

Now that the Supermicro board has been flashed to the latest BIOS, it’s time to prepare the vSphere hosts with the proper Emulex CIM extension, UCNA drivers, and leverage the power of the OneCommand vCenter plug-in to update the card firmware.

Continue to the Emulex OneCommand Manager in the vSphere Web Client post!