Generating Supermicro OOB Per Node License

This license is required by Supermicro to update the bios

I came across a 4 Bay LFF Supermicro server at work (X11SSH-F) and needed to give it an update.

This particular server allowed me to update the BMC but required a license to install the BIOS as seen in the following screenshot:

This license is required by Supermicro to update the bios

This is always frustrating when you’re just trying to complete the most bonehead level maintenance. Googling the error led me to the following reddit post which led me to the following perl script on Github.

I thought I would expand upon these resources with a step by step guide of downloading the script, running the script, and taking care of a few dependencies to make the script work.

I accomplished all of the following by booting a live version of Ubuntu. If you already have Ubuntu or some other distribution installed on your server that is just as good.

So the first order of business is booting into Ubuntu before following the next steps.

Step 1: Check if Perl Is Installed

Most Ubuntu installations already include Perl. To verify, open a terminal and run:

perl -v

If Perl is installed, you’ll see version information displayed in the terminal:

Checking to see if Perl is installed

If you get a “command not found” message, install Perl with:

sudo apt update
sudo apt install perl

Step 2: Install the Required Perl Module

The script uses the Digest::SHA module to calculate an HMAC-SHA1 hash. Ubuntu provides this module as a package.

Install it by running:

sudo apt install libdigest-sha-perl

Alternatively, if you prefer using CPAN, you can install it with:

cpan Digest::SHA

Install lib digest

Step 3: Save the Script

Copy the Perl code from this github page into a new file. For example:

supermicro-ipmi-key.pl

Save the file somewhere convenient, such as your home directory.

Step 4: Make the Script Executable (Optional)

You can run the script directly by making it executable:

chmod +x supermicro-ipmi-key.pl

While this step isn’t strictly necessary, it makes running the script a little cleaner.

Step 5: Run the Script

To run the script you simply invoke it and pass the MAC address of your BMC as an argument.You can find the MAC here in the IPMI web admin page:

 

You have two options.

Run it directly:

./supermicro-ipmi-key.pl 00:25:90:12:34:56

Or execute it with Perl:

perl supermicro-ipmi-key.pl 00:25:90:12:34:56

Replace the sample MAC address with the MAC address of your server’s BMC (IPMI) interface.

If everything is configured correctly, you’ll receive a generated key similar to:

3A1F 7B82 C4D0 E1F9 A5B3 8C2D

Punch this into the license field located here:

Troubleshooting Common Errors

“Can’t locate Digest/SHA.pm in @INC”

This means the required module isn’t installed.

Simply run:

sudo apt install libdigest-sha-perl

and try again.

“Usage: supermicro-ipmi-key <MAC>”

This message appears when no MAC address is provided.

Be sure to include the BMC MAC address when running the script.

“Invalid mac address”

The script expects the MAC address in the standard format:

AA:BB:CC:DD:EE:FF

Double-check that your address uses six hexadecimal pairs separated by colons.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *