Skip to content

Manufacturer specific firmware catalog examples

Navigate here for managing firmware catalogs

https://www.dell.com/support/kbdoc/en-us/000132986/dell-emc-catalog-links-for-poweredge-servers

Not SPP-Gen10 (Service Pack for ProLiant Gen10)

  • A comprehensive update bundle that includes:
    • Firmware
    • Drivers
    • System software
  • Delivered as a single ISO image
  • Uses Smart Update Manager (SUM) for deployment
  • Designed for full system updates across Gen10 and Gen10 Plus servers
  • Ideal for environments needing complete lifecycle management

https://support.hpe.com/connect/s/softwaredetails?tab=releaseNotes&collectionId=MTX-5d74fe753828448f

FWPP-Gen10 (Firmware Pack for ProLiant Gen10)

  • A subset of SPP, focused only on firmware
  • Smaller footprint, faster deployment
  • Useful when you only need to update firmware without touching drivers or OS-level tools
  • Often used in baremetal or minimal OS environments

ProLiant DL360 Gen10: https://downloads.linux.hpe.com/SDR/repo/fwpp-gen10/current/fwrepodata/fwrepo.json

HPE ProLiant DL20 Gen11: https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json

HPE ProLiant Compute DL320 Gen12 :https://downloads.linux.hpe.com/SDR/repo/fwpp-gen12/current/fwrepodata/fwrepo.json

  • Establish connection info to the know firmware upload repo
    • Have a private key and known hosts ~/ .ssh/id__ed25519 ~/ .ssh/hnown_hosts
    • Open a terminal and use the command ssh root@176.223.226.61 -p 22 to add the repo host to the list of known hosts (when prompted, type yes and hit enter) --repo-base-url <http://100.100.100.100/repo/firmware/ base url of the known repo for uploading the binaries --repo-ssh-host 100.100.100.100:22 repo host and port --repo-ssh-user root username of the repo
  • Make note of the Server-Types that pertain to a particular server you have in Admin UI
    • Have a registered server in Admin UI, note its ID
    • Go to the Server types tab of the Servers section
    • Add a Server-type
      • In the create Server-type input the Server ID
      • Click “Populate from server”
      • Create Server-type
    • Note the created Server-type, ex: M.24.64.2.v2. You will use this in the —server-types command when creating the Firmware catalogue
  • Example CLI command:
./metalcloud-cli firmware-catalog create
--name dell-esxi-catalog
--description vmware-esxi-validated-dell-catalog
--vendor dell
--vendor-url <https://downloads.dell.com/catalog/ESXi_Catalog.xml.gz>
--vendor-systems "R440"
--download-binaries
--vendor-local-binaries-path ./dellesxicatalog
--upload-binaries
--repo-base-url <http://100.100.100.100/repo/dellfirmware/esxi/>
--repo-ssh-host 100.100.100.100:22
--repo-ssh-user root
--user-private-key-path ~/.ssh/id_ed25519
--known-hosts-path ~/.ssh/known_hosts
--update-type online
  • This will download firmware binaries on your local machine and then upload them in the known repo (http://100.100.100.100/repo/dellfirmware/esxi/). Respecting the folder structure from Dell (FOLDER02240018M/1/SAS-Drive_Firmware_PNVWC_WN64_IS05_A03.EXE)
    • Beware the firmware is uploaded in the repo using the path of the ssh-user. If ssh-user is root the firmware will be found in /root. Then you can move the firmware folders into the visible http folder (for example by copying them: cp -R /root/FOLDER* /home/repo/dellfirmware/)
  • At the same time the component binary entries will be populated in the Admin Dashboard. They will contain the path to the repo that will be used by the system and the server during upgrading
  • Once finished, a catalog containing binaries will be present in the Firmware section of the Admin Dashboard
  • Make note of the firmware catalog id
  • Example command:
    ./metalcloud-cli firmware-baseline create --config-source ./baseline1.json
  • For the config-source create a .json file that contains the required information
{
"name": "qa-baseline-dummy",
"description": "qa-baseline-dummy-description",
"catalog": [
"7860",
"7859"
]
}
  • The baseline will link one or more server types with a catalog and are a way to keep a certain fleet of servers to the same firmware “level” and switching between firmware version packs easier.

Upgrading or Downgrading the firmware of server components

Section titled “Upgrading or Downgrading the firmware of server components”
  • Once a catalog with binaries and a baseline is created we can go to a Server that matches the server-type we created the catalog and baseline for
  • On the Advanced tab of a Server hit the “Refresh firmware information” to get the latest information via Redfish
  • Now that the firmware information is refreshed we can go to the Firmware tab of the Server. Here you can hit the “Refresh” button that will compare the firmware versions we get from the Server with the firmware versions we have in the Catalog
  • At this point you can see what server components can be upgraded or downgraded. “Not Available” action means that the component cannot be upgraded or that no binary is available for it in the catalog. The Status also shows information about the firmware of the component (Latest, Not Upgradable, Upgrade or Downgrade Available)
  • Clicking the “Choose Firmware” button will allow you to select the target version, be it an upgrade or a downgrade. Once a target version is selecting you can double check the component and version and “Confirm” the choice in the opened modal window.
  • At this point the upgrade/downgrade has not started. You are free to make target version choices for other components
  • Clicking the “Apply Target Firmware” button in the upper right-hand corner will trigger the upgrade/downgrade. The progress of which can be tracked in the Job graph. You can access the Job graph either by the linked Job ID on the Firmware tab or in the Job Queue section
  • Once the upgrade/downgrade is complete, the Server is soft-rebooted and ready for use.

Getting the target UUID for a specific HPE Server

Section titled “Getting the target UUID for a specific HPE Server”

The CLI needs to know the right target UUID of the server so that I can extract the correct binaries for the server being used.

The target UUID will be used in the vendor-systems flag in the CLI

Please use the calls from this Postman Collection

Alternative command:

curl -sku user:pass '<https://10.255.129.49/redfish/v1/UpdateService/FirmwareInventory/?\$expand=.'|> jq -r '.Members\[\]? | .Oem?.Hpe?.Targets\[\]?' | sort -u | paste -sd, -

  • Example CLI command:
./metalcloud-cli firmware-catalog create -c qa02.yaml
--name qa-test-hp-gen11-catalog
--description qa-test-hp-gen11-catalog
--vendor hp --vendor-url <https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json>
--vendor-systems "e6d3c844-14a6-4f1f-84a3-c06013910306"
--download-binaries
--vendor-local-binaries-path ./hp_downloads
--upload-binaries
--repo-base-url <http://100.100.100.100/repo/qahpfirmware>
--repo-ssh-host 100.100.100.100:22
--repo-ssh-user root
--user-private-key-path ~/.ssh/id_ed25519
--known-hosts-path ~/.ssh/known_hosts
--update-type offline
-d
  • Beware the only way of instructing the CLI to download specific binaries for your server is via the —vendor-systems flag. This flag accepts the target component UUID that will be used when filtering the HP catalog for relevant binaries. HP does not provide a way to search through their catalogs by server UUID beforehand. Making it very difficult to know which HP catalog repo to use. Instead use connect to the server and use this: curl -sku user:pass '<https://10.255.129.49/redfish/v1/UpdateService/FirmwareInventory/?\$expand=.'|> jq -r '.Members\[\]? | .Oem?.Hpe?.Targets\[\]?' | sort -u | paste -sd, - to retrieve the component target UUID of the server

  • This will download firmware binaries on your local machine and then upload them in the known repo (http://100.100.100.100/repo/hpfirmware/).

    • Beware the firmware is uploaded in the repo using the path of the ssh-user. If ssh-user is root the firmware will be found in /root. Then you can move the firmware folders into the visible http folder (for example by copying them: cp -R /root/FOLDER* /home/repo/hpfirmware/)
  • At the same time the component binary entries will be populated in the Admin Dashboard. They will contain the path to the repo that will be used by the system and the server during upgrading

  • Once finished, a catalog containing binaries will be present in the Firmware section of the Admin Dashboard

  • Make note of the firmware catalog id

  • Example command:
    ./metalcloud-cli firmware-baseline create --config-source ./baseline1.json
  • For the config-source create a .json file that contains the required information
{
"name": "qa-baseline-dummy",
"description": "qa-baseline-dummy-description",
"catalog": [
"7860",
"7859"
]
}
  • The baseline will link one or more server types with a catalog and are a way to keep a certain fleet of servers to the same firmware “level” and switching between firmware version packs easier.

Upgrading or Downgrading the firmware of server components

Section titled “Upgrading or Downgrading the firmware of server components”
  • Once a catalog with binaries and a baseline is created we can go to a Server that matches the server-type we created the catalog and baseline for
  • On the Advanced tab of a Server hit the “Refresh firmware information” to get the latest information via Redfish
  • Now that the firmware information is refreshed we can go to the Firmware tab of the Server. Here you can hit the “Refresh” button that will compare the firmware versions we get from the Server with the firmware versions we have in the Catalog
  • At this point you can see what server components can be upgraded or downgraded. “Not Available” action means that the component cannot be upgraded or that no binary is available for it in the catalog. The Status also shows information about the firmware of the component (Latest, Not Upgradable, Upgrade or Downgrade Available)
  • Clicking the “Choose Firmware” button will allow you to select the target version, be it an upgrade or a downgrade. Once a target version is selecting you can double check the component and version and “Confirm” the choice in the opened modal window.
  • At this point the upgrade/downgrade has not started. You are free to make target version choices for other components
  • Clicking the “Apply Target Firmware” button in the upper right-hand corner will trigger the upgrade/downgrade. The progress of which can be tracked in the Job graph. You can access the Job graph either by the linked Job ID on the Firmware tab or in the Job Queue section
  • Once the upgrade/downgrade is complete, the Server is soft-rebooted and ready for use.

Unlike Dell and HP, Supermicro does not provide a public downloadable firmware catalog. Firmware binaries must be obtained manually from Supermicro and provided locally. The firmware binaries can be found here: https://www.supermicro.com/en/support/resources/downloadcenter/swdownload
( In order to find the correct firmware binaries you need to provide the `model` of the server )

  • The first step is to download the correct binaries from https://www.supermicro.com/en/support/resources/downloadcenter/swdownload using the model of the server to find them. Supermicro only support official BMC and BIOS firmware binaries. Once downloaded, do not unzip them. The download should be a single .zip file containing both the BIOS and the BMC files. Unzip the main downloaded .zip file. The CLI expects the original downloaded folder structure. Just move the unzipped folder to a convenient place. The name of the downloaded folder is used only for the —vendor-local-binaries-path flag.
  • Example CLI command:
./metalcloud-cli firmware-catalog create
--name supermicro-catalog
--description "Supermicro firmware catalog"
--vendor supermicro
--server-types "M.64.768.16.v2"
--vendor-local-binaries-path ./manuallyDownloadedBinariesFolder
--upload-binaries
--repo-base-url <http://100.100.100.100/repo/supermicroFirmware/>
--repo-ssh-host 100.100.100.100:22
--repo-ssh-user root
--user-private-key-path ~/.ssh/id_ed25519
--known-hosts-path ~/.ssh/known_hosts
--update-type offline
\-d

Some important points:
! --vendor-url flag as Supermicro doesn’t provide catalog URLs.
! --download-binaries flag. Binaries must be provided locally.
! --vendor-systems flag.
! --download-binaries flag, as they will be provided locally.
! --vendor-local-binaries-path is required! (Path to the folder containing .zip files)

  • The CLI will automatically:
    • Scan the provided binaries folder for .zip files
    • Parse firmware metadata from filenames
    • Extract .bin files from .zip archives (stored in `.extracted/` subfolder)
    • Upload only the .bin files to the repository.
      Beware the firmware is uploaded in the repo using the path of the ssh-user. If ssh-user is root the firmware will be found in /root. Then you can move the firmware folders into the visible http folder (for example by copying them: cp -R /root/FOLDER* /home/repo/hpfirmware/)
    • At the same time the component binary entries will be populated in the Admin Dashboard. They will contain the path to the repo that will be used by the system and the server during upgrading
    • Once finished, a catalog containing binaries will be present in the Firmware section of the Admin Dashboard
    • Make note of the firmware catalog id
  • Example command:
    ./metalcloud-cli firmware-baseline create --config-source ./baseline1.json
  • For the config-source create a .json file that contains the required information
{
"name": "qa-baseline-dummy",
"description": "qa-baseline-dummy-description",
"catalog": [
"7860",
"7859"
]
}
  • The baseline will link one or more server types with a catalog and are a way to keep a certain fleet of servers to the same firmware “level” and switching between firmware version packs easier.

Upgrading or Downgrading the firmware of server components

Section titled “Upgrading or Downgrading the firmware of server components”
  • Once a catalog with binaries and a baseline is created we can go to a Server that matches the server-type we created the catalog and baseline for
  • On the Advanced tab of a Server hit the “Refresh firmware information” to get the latest information via Redfish
  • Now that the firmware information is refreshed we can go to the Firmware tab of the Server. Here you can hit the “Refresh” button that will compare the firmware versions we get from the Server with the firmware versions we have in the Catalog
  • At this point you can see what server components can be upgraded or downgraded. “Not Available” action means that the component cannot be upgraded or that no binary is available for it in the catalog. The Status also shows information about the firmware of the component (Latest, Not Upgradable, Upgrade or Downgrade Available)
  • Clicking the “Choose Firmware” button will allow you to select the target version, be it an upgrade or a downgrade. Once a target version is selecting you can double check the component and version and “Confirm” the choice in the opened modal window.
  • At this point the upgrade/downgrade has not started. You are free to make target version choices for other components
  • Clicking the “Apply Target Firmware” button in the upper right-hand corner will trigger the upgrade/downgrade. The progress of which can be tracked in the Job graph. You can access the Job graph either by the linked Job ID on the Firmware tab or in the Job Queue section
  • Once the upgrade/downgrade is complete, the Server is soft-rebooted and ready for use.