🗃 Add a new Firmware Bundle to Mojo

Adding a Firmware Bundle

Firmware Bundles are collections of firmware binaries, checksums, and metadata that allow Mojo to
apply firmware update to servers. Each Firmware Bundle contains one or more Firmware Binaries that can be used in the Mojo Platform. A Firmware Bundle is used to organize, package, and distribute these Firmware Binaries safely and securely.

This tutorial walks through how to add a new Firmware Bundle into Mojo so it can be used to update servers within the Mojo Platform.

Getting Started

Before you begin, you must have a Firmware Bundle in mind to install. This can be prepared and distributed by Metify or created manually by you. See the documentation on Creating a Firmware Bundle [todo: link] for more information on creating your own.

Available Bundles

The following Firmware Bundles are available from Metify. Input the values from this table into the ./mojo-manage --firmware command. Firmware Bundles are organized by organization, type, and version. The combination of these three fields is unique within the Mojo Platform and identifies a unique Firmware Bundle.

organization type version description
all all latest The latest verified firmware images across all vendors and models
dell all latest The latest verified firmware images from Dell, Inc.
dell idrac latest The latest iDRAC firmware images from Dell, Inc.
dell r240 latest The latest firmware and iDRAC for a Dell R240
dell r440 latest The latest firmware and iDRAC for a Dell R440
dell r640 latest The latest firmware and iDRAC for a Dell R640
dell r740xd latest The latest firmware and iDRAC for a Dell R740xd
dell t140 latest The latest firmware and iDRAC for a Dell T140
hpe all latest The latest verified firmware images from Hewlett Packard Enterprise Company (HPE)
intel all latest The latest firmware for Intel systems
intel coyote_pass latest The latest firmware for an Intel CoyotePass system
supermicro all latest The latest verified firmware images from Super Micro Computer, Inc.

Running

You can upload a new Firmware Bundle by executing the following command inside of your Mojo installation directory and following the prompts.

sudo ./mojo-manage --firmware

In order to add a new Firmware Bundle, the Mojo platform needs to be running .

Enter the Firmware Bundle organization

The organization field is the top level field to pull the firmware bundle from. The value can be pulled from the Available Bundles table or specified manually. This field is only used to construct the resulting download URL, so if you made your own Firmware Bundle, you may enter anything you would like here.

Organization? []: dell

Enter the Firmware Bundle name

The name field is the second organizational field used to distribute the Firmware Bundles. The value can be pulled from the Available Bundles table or specified manually. This field is only used to construct the resulting download URL, so if you made your own Firmware Bundle, you may enter anything you would like here.

Name? []: idrac

Enter the Firmware Bundle version

The version field is the third and last organizational field used to distribute the Firmware Bundles. The value can be pulled from the Available Bundles table or specified manually. This field is only used to construct the resulting download URL, so if you made your own Firmware Bundle, you may enter anything you would like here. By convention, there will always be a latest version of each organization and name combination. This is to easily update specific grounds of Firmware Bundles to the latest versions easily.

Version? [latest]: latest

Add or Edit the Download URL

By convention, when receiving an Firmware Bundle from Metify, the URL will be organized with the organization, name and version entered. These fields are combine into a URL that is presented as the default for this field. If you are downloading an Firmware Bundle from Metify and were given a values to put into these fields, or pulled the values from the Available Bundles table, you should not change this field. If you have created your own Firmware Bundle, you will want to point this field to a URL with your downloadable Firmware Bundle archive.

Download URL? [https://download.metify.io/repository/firmware-external/bundles/dell/idrac/latest/firmware.tar.gz]:

Install Firmware Bundle

Once the Download URL has been set, the program will download the Firmware Bundle, extract it, and process its contents. It will find each individual Firmware Binary, checksum, and metadata within the package, verify the files with checksums, and add each of them to the Mojo Platform.

Configured to add or update the following Firmware Bundle...
Organization:  dell
Name:          idrac
Version:       latest
URL:           https://download.metify.io/repository/firmware-external/bundles/dell/idrac/latest/firmware.tar.gz

Downloading https://download.metify.io/repository/firmware-external/bundles/dell/idrac/latest/firmware.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  216M  100  216M    0     0  4512k      0  0:00:49  0:00:49 --:--:-- 4990k

Extracting to volumes/firmwares...

Configuring Mojo with Firmware bundle...
[+] Copying 1/1
 ✔ mojo-app-1 copy /tmp/dell-idrac-latest-1710441842.tar.gz to mojo-app-1:/tmp/dell-idrac-latest-1710441842.tar.gz Copied
2024-03-14 18:44:55,166 - Configuring Mojo with new Firmware...
2024-03-14 18:44:55,780 - Loaded firmware bundle /dell/iDRAC/BMC/7.00.00.171
- Location: /dell/iDRAC/BMC/7.00.00.171/iDRAC-with-Lifecycle-Controller_Firmware_TNYR2_WN64_7.00.00.171_A00.EXE
- Checksum: af251bf09313786705b28ed36c0d1046a69ccb3d93b485d9a88e2e5777c2d005
- Type: bmc
- Version: 7.00.00.171
- Manufacturer: Dell Inc.
- Models: ['PowerEdge R240', 'PowerEdge R440', 'PowerEdge R640', 'PowerEdge R740xd', 'PowerEdge T140']
2024-03-14 18:44:55,780 - Checking checksum...
2024-03-14 18:44:56,426 - iDRAC-with-Lifecycle-Controller_Firmware_TNYR2_WN64_7.00.00.171_A00.EXE: OK
2024-03-14 18:44:56,491 - Done: Updated firmware 3