> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Device administration

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

## Commands

Use the following commands to manage devices.

### Check firmware version

Check firmware versions on devices:

```bash theme={}
snctl device firmware-check \
  (--rack-id <rack_id> | --group <group_name>) \
  --type <device_type> \
  [--index <index>]
```

**Target selection:**

All firmware check commands require either `--rack-id` or `--group` (mutually exclusive):

| Parameter | Description |
| - | - |
| `--rack-id <rack_id>` | Check devices in a specific rack |
| `--group <group_name>` | Check devices in all racks within a group |

**Device types:**

| Type | Description |
| - | - |
| `access_switch` | Access switch |
| `data_switch` | Data switch |
| `scs` | System Control Switch |
| `bios` | BIOS |
| `bmc` | Baseboard Management Controller |
| `card` | Card/Adapter |
| `pdu` | Power Distribution Unit |
| `xrdu` | XRDU |
| `all` | All device types |

**Example – check BMC firmware on a single rack:**

```bash theme={}
snctl device firmware-check --rack-id 001 --type bmc
```

**Example output:**

```text theme={}
             Firmware Version Information
+----------+-----------+--------+----------+----------+
| Rack     | Component | Status | CURR     | POR      |
+----------+-----------+--------+----------+----------+
| Rack-001 | BMC       | PASS   | 12.61.21 | 12.61.21 |
+----------+-----------+--------+----------+----------+
```

**Example – check all firmware on a rack:**

```bash theme={}
snctl device firmware-check --rack-id 001 --type all
```

**Example output:**

```text theme={}
                                        Firmware Version Information
+----------+---------------+--------+----------+-------------+-----------+----------+-----------+----------+
| Rack     | Component     | Status | CURR     | POR         | OBMC_CURR | OBMC_POR | RDUC_CURR | RDUC_POR |
+----------+---------------+--------+----------+-------------+-----------+----------+-----------+----------+
| Rack-001 | ACCESS_SWITCH | FAIL   |          |             |           |          |           |          |
| Rack-001 | BIOS          | PASS   | R24_P1   | R24_P1      |           |          |           |          |
| Rack-001 | BMC           | PASS   | 12.61.21 | 12.61.21    |           |          |           |          |
| Rack-001 | CARD          | FAIL   |          | 228.1.111.0 |           |          |           |          |
| Rack-001 | DATA_SWITCH   | FAIL   |          |             |           |          |           |          |
| Rack-001 | PDU_PDU_1     | FAIL   |          |             |           |          |           |          |
| Rack-001 | PDU_PDU_2     | FAIL   |          |             |           |          |           |          |
| Rack-001 | PDU_PDU_3     | FAIL   |          |             |           |          |           |          |
| Rack-001 | PDU_PDU_4     | FAIL   |          |             |           |          |           |          |
| Rack-001 | SCS           | FAIL   |          |             |           |          |           |          |
| Rack-001 | XRDU_XRDU_0   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_1   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_2   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_3   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_4   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_5   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_6   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
| Rack-001 | XRDU_XRDU_7   | PASS   |          |             | 5.1.2-0   | 5.1.2-0  | 5.1.2     | 5.1.2    |
+----------+---------------+--------+----------+-------------+-----------+----------+-----------+----------+
```

> [!NOTE]
>
> 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.

**Example – check firmware on all devices in a group:**

```bash theme={}
snctl device firmware-check --group g1 --type all
```

## Output columns

The firmware check output includes the following columns:

| Column | Description |
| - | - |
| Rack | Rack identifier |
| Component | Device type and index |
| Status | `PASS` if firmware matches expected version, `FAIL` otherwise |
| CURR | Current firmware version |
| POR | Plan of Record (expected) firmware version |
| OBMC\_CURR | Current OpenBMC firmware version (XRDU only) |
| OBMC\_POR | Expected OpenBMC firmware version (XRDU only) |
| RDUC\_CURR | Current RDUC firmware version (XRDU only) |
| RDUC\_POR | Expected RDUC firmware version (XRDU only) |
