Skip to main content
This guide covers checking and updating firmware on devices within SambaRack. Devices are individual components attached to racks and nodes, including BMCs, switches, PDUs, and serial terminals.

Commands

Check firmware version

Check firmware versions on devices:
Target selection: One of --rack-id or --group is required (mutually exclusive): Device types:

Single rack

Example – check BMC firmware on a single rack:
Example output:
Example – check all firmware on a rack:
Example output:

Group

Example – check BMC firmware across all racks in a group:
Example output (one row per rack):
If devices are unreachable or configured incorrectly, the firmware check fails for those devices with a FAIL status, as shown in the example output above. For card devices, the CURR column lists each network interface with its firmware version and a per-interface PASS/FAIL comparison. The overall CARD status is PASS only when every interface matches the POR version.

Update firmware

Update firmware on devices within a rack or group:
Target selection: One of --rack-id or --group is required (mutually exclusive): Device types:
Other device types (access_switch, data_switch, pdu, scs) are not currently supported for firmware update and will be rejected by the CLI.
Optional parameters:

Single rack

Example – update BMC firmware:
Example – update all XRDUs:
Example – update specific XRDUs:
Example – update XRDU firmware from local files:

Group

Example – update firmware across all racks in a group:
When you use --group, snctl processes racks sequentially (one rack at a time) while running individual device updates in parallel within each rack. This bounds concurrency – for example, a group with 10 racks and 8 XRDUs each won’t launch 80 simultaneous jobs. During the update, snctl prints:
  • Per-component PASS/FAIL lines as each job completes
  • Per-rack checkpoints after each rack finishes, including PASS/FAIL counts and log file paths for any failures
  • A final Firmware Update Results table summarizing the entire run
If one or more devices fail, the command exits non-zero and prints the stdout, stderr, and instruction output log paths for each failed job.

Order of execution

When updating multiple components, there is no strict dependency between them. However, if upgrading more than one type in the same maintenance window, follow this order: THOR CARD → BIOS → BMC → XRDU

1. THOR CARD

Pre-condition: Host must be powered on.
Update:
Post-upgrade:

2. BIOS

Pre-condition: Host must be powered on.
Update:
Post-upgrade:

3. BMC

Update:
Post-upgrade:

4. XRDU

Pre-condition: Host must be powered off before updating XRDU firmware.
Update:
Post-upgrade:

Output columns

The firmware check output includes the following columns: