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
--repo-ssh-path /home/repo/dellfirmware/esxi/ \
--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)
    • The flag: —repo-ssh-path /home/repo/dellfirmware/esxi/ will push the uploaded binaries directly to the desired folder in the repo.
  • 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": "baseline-dummy",
"description": "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.
  • Example CLI command:
./metalcloud-cli firmware-catalog create
--name hp-gen11-catalog
--description hp-gen11-catalog
--vendor hp
--vendor-url <https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json>
--server-types "M.16.16.2G.v2" \
--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
--repo-ssh-path /home/repo/hpfirmwaregen10 \
--user-private-key-path ~/.ssh/id_ed25519
--known-hosts-path ~/.ssh/known_hosts
--update-type offline
-d
  • This will download firmware binaries on your local machine and then upload them in the known repo (http://100.100.100.100/repo/hpfirmware/).
    • The flag: —repo-ssh-path /home/repo/qahpfirmware will push the uploaded binaries directly to the desired folder in the repo.
  • 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": "baseline-dummy",
"description": "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
--repo-ssh-path /home/repo/supermicroFirmware
--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)
    • The flag: —repo-ssh-path /home/repo/supermicroFirmware will push the uploaded binaries directly to the desired folder in the repo.
    • 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": "baseline-dummy",
"description": "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.