Skip to content

System Validation (rbln-bios)

rbln-bios is a system diagnostic tool that validates server configuration (GRUB parameters, BIOS settings, firmware versions, fan speed, and PCIe slot mapping) to verify that a host meets the prerequisites for running RBLN NPUs.

Note

  • grub and slot targets: No BMC access required. Work on any vendor / model. The slot target additionally requires dmidecode.
  • version, bios, and fanspeed targets: Require BMC (Baseboard Management Controller) access via the Redfish API, on a validated server model.
    • Supermicro (DCMS license required):
      • AS -4125GS-TNRT2
      • AS -5126GS-TNRT2
    • Gigabyte:
      • G293-S43
      • G293-Z43
      • G294-Z21
      • G494-ZB4

Quick Start

$ sudo rbln-bios -t grub -v

Key Concepts and Terminology

Validation targets

rbln-bios validates one or more targets specified with -t, --target:

  • grub: Validates kernel/boot parameters for optimal NPU performance (local; no BMC).
  • version: Validates BIOS and BMC firmware versions against the per-model reference via the Redfish API.
  • bios: Validates BIOS settings via the Redfish API.
  • fanspeed: Checks fan speed status via the Redfish API.
  • slot: Maps physical PCIe slots to RBLN NPU devices (local; requires dmidecode).
  • all: Runs all supported targets.

BMC (Redfish) credentials

Note

For targets that access the BMC (version, bios, fanspeed), provide:

  • --bmc_ip <BMC_IP>: BMC IP address (Redfish endpoint)
  • --bmc_user <BMC_USER> / --bmc_password <BMC_PASSWORD>: BMC credentials

Validated BIOS settings

The bios target compares each BIOS setting that the BMC reports via the Redfish API against its expected value. The checked set depends on the server vendor and model.

On Supermicro servers, rbln-bios validates the following settings.

Setting Expected Models
IOMMU Enabled All
SR_IOVSupport Enabled All
Re_SizeBARSupport Enabled All
ASPMSupport Auto or Force L1 AS -5126GS-TNRT2 only
DFCstates Disabled All
NUMANodesPerSocket NPS1 All
ACPISRATL3CacheAsNUMADomain Disabled All
  • ASPMSupport is validated only on AS -5126GS-TNRT2. On AS -4125GS-TNRT2, the row does not appear in the output.
  • Above4GDecoding, MMIO High Base, MMIO High Granularity Size, and SNC (Intel) are not validated on Supermicro servers and are reported as N/A.

On Gigabyte servers, the setting names and the checked set depend on the CPU platform and server model.

Command Reference

General usage

$ rbln-bios -l
$ rbln-bios -t <target> [options]
$ rbln-bios -t <target1> <target2> ... [options]

Note

All validation targets (-t) require root privileges — non-root invocations fail with a permission error. Run every command with sudo.

Tip

For the full, version-specific option reference, run rbln-bios --help.

Global options

Option Description
-h, --help Show help message and exit.
-v, --verbose Verbose output (for example, show recommended/current GRUB cmdline).
--version Show version information and exit.
-t, --target <TARGET ...> Validate target(s): grub, version, bios, fanspeed, slot, or all.
-l, --list List available targets.
-j, --json Output in JSON format.
--bmc_ip <BMC_IP> BMC IP address (Redfish endpoint). Required for version, bios, and fanspeed.
--bmc_user <BMC_USER> BMC user. Required for version, bios, and fanspeed.
--bmc_password <BMC_PASSWORD> BMC password. Required for version, bios, and fanspeed.

CLI Examples

Summary

Lists available validation targets on the current system.

Command

Command
$ rbln-bios -l

Output (example)

Targets list (example)
Available targets:
        grub
        version
        bios
        fanspeed
        slot

Summary

Validates kernel/boot parameters. Use -v, --verbose to show the recommended and current GRUB cmdline.

Command

Command
$ sudo rbln-bios -t grub

Output (example)

GRUB validation (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== GRUB Boot Parameter ====
Result                : OK

Note

Result is reported as one of the following values.

  • OK: All recommended kernel/boot parameters are present.
  • WARNING: One or more recommended parameters are missing. The missing items are listed in the Missing field.
  • CRITICAL: A mandatory parameter is missing. On Intel CPUs, pci=noats is mandatory; when absent it is listed in the Mandatory field.
  • UNKNOWN: The kernel/boot parameters could not be read.

Summary

Validates kernel/boot parameters with detailed recommended and current cmdline output.

Command

Command
$ sudo rbln-bios -t grub -v

Output (example)

GRUB verbose validation (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== GRUB Boot Parameter ====
Result                : OK
Recommended           : transparent_hugepage=madvise pcie_aspm=force pci=pcie_bus_perf pci=bfsort ...
Current               : BOOT_IMAGE=... root=... ro transparent_hugepage=madvise pcie_aspm=force ...

Summary

Validates BIOS and BMC firmware versions against the per-model reference via the Redfish API. Requires --bmc_ip, --bmc_user, and --bmc_password.

Command

Command
$ sudo rbln-bios -t version --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

Output (example)

Firmware version validation (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Firmware Version ====
 Result: PASS
 Model                          AS-4125GS-TNRT2
 BIOS                           ✓  3.7.V1
 BMC                            ✓  11.09.02

Note

Result is PASS when both firmware versions match the reference, FAIL on a mismatch, and UNKNOWN when a version cannot be read.

Summary

Validates BIOS settings via the Redfish API. Requires --bmc_ip, --bmc_user, and --bmc_password.

Command

Command
$ sudo rbln-bios -t bios --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

Output (example)

BIOS validation (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== BIOS Settings ====
 Result: OK
 Setting                        Status
 ---------------------------------------------
  IOMMU                          ✓  Enabled
  SR_IOVSupport                  ✓  Enabled
  Re_SizeBARSupport              ✓  Enabled
  DFCstates                      ✓  Disabled
  NUMANodesPerSocket             ✓  NPS1
  ACPISRATL3CacheAsNUMADomain    ✓  Disabled
  Above4GDecoding                N/A
  MMIO High Base                 N/A
  MMIO High Granularity Size     N/A
  SNC (Intel)                    N/A

Note

Each row in the Status column shows one of the following states. For the settings checked on each server, see Validated BIOS settings.

  • ✓: The setting matches the expected value. The current value follows the mark.
  • x: The setting does not match the expected value. The row shows Expected: <EXPECTED>, Actual: <ACTUAL>.
  • ?: The setting is validated on this server, but the BMC does not expose it via the Redfish API. The row shows Expected: <EXPECTED>, Actual: UNKNOWN.
  • N/A: The setting is not validated on this server and does not affect Result.

Result is reported as one of the following values.

  • OK: All validated settings match.
  • WARNING: No setting mismatches, but one or more settings are reported as ?.
  • CRITICAL: One or more settings are reported as x.
  • UNKNOWN: Validation could not run, for example because the BMC is unreachable or the server model is not supported. The reason is shown in the Message field.

On some CPUs (for example, AMD Turin), Above 4G Decoding is enabled by default and may not be exposed in BIOS. When it is reported as UNKNOWN, the system can still be configured correctly, and rbln-bios prints an explanatory message alongside the result.

Summary

Checks fan speed status via the Redfish API. Requires --bmc_ip, --bmc_user, and --bmc_password.

Command

Command
$ sudo rbln-bios -t fanspeed --bmc_ip 192.168.1.100 --bmc_user admin --bmc_password password123

Output (example)

Fan speed check (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Fan Speed ====
 Result                         OK
 Fan Mode                       Optimal (expected: Optimal)
 Fan                            Speed(RPM)     Status
 -----------------------------------------------------------------
 FAN_1                                7500    enabled
 FAN_2                                7600    enabled

Note

On Supermicro the check gates the fan mode (expected Optimal); on Gigabyte it gates the fan profile (expected default). The corresponding Fan Mode or Fan Profile row is shown accordingly.

Summary

Maps physical PCIe slots to RBLN NPU devices using DMI slot data (dmidecode) and sysfs. No BMC access required.

Command

Command
$ sudo rbln-bios -t slot

Output (example)

Slot / device mapping (example)
==== System Information ====
OS                    : ubuntu 22.04.5 LTS (Jammy Jellyfish)
Kernel                : 6.8.0-90-generic
CPU Model             : AMD EPYC 9355 32-Core Processor
Manufacturer          : Supermicro
Architecture          : x86_64

==== Slot / Device Mapping ====
 Result: OK
+-------+-----------------+--------+
| Slot  | PCI Bus Address | Device |
+=======+=================+========+
| SLOT1 | 0000:33:00.0    | rbln0  |
| SLOT2 | 0000:53:00.0    | rbln1  |
| SLOT3 | 0000:d3:00.0    | rbln2  |
| SLOT4 | 0000:d4:00.0    | rbln3  |
+-------+-----------------+--------+

Summary

Outputs validation results in JSON format for programmatic consumption.

Command

Command
$ sudo rbln-bios -t grub -j

Output (example)

JSON output (example)
{
    "version": "3.2.0",
    "system_information": {
        "os": "ubuntu 22.04.5 LTS (Jammy Jellyfish)",
        "kernel": "6.8.0-90-generic",
        "cpu_model": "AMD EPYC 9355 32-Core Processor",
        "manufacturer": "Supermicro",
        "architecture": "x86_64"
    },
    "grub_boot_parameter": {
        "result": "OK",
        "message": "",
        "missing": "",
        "mandatory": "",
        "recommended": "transparent_hugepage=madvise pcie_aspm=force pci=pcie_bus_perf pci=bfsort ...",
        "current": "BOOT_IMAGE=... transparent_hugepage=madvise pcie_aspm=force ..."
    }
}

Operation via Host Interface

By using the internal network interface (Host Interface) between the BMC and host, Redfish-based features (version, bios, fanspeed) of rbln-bios can be used without an external network connection.

1. Enable Host Interface on Web BMC

Access the Web BMC management page and enable the Host Interface setting. (Configuration/BMC Settings/Host Interface)

  • Host IP Address: 169.254.3.1 (configurable)
  • BMC IP Address: 169.254.3.254 (the IP to be used as the actual input value)

2. Configure the host-side network interface

Assign an IP address to the network device corresponding to the Host Interface and bring it up.

$ sudo ip addr add 169.254.3.1/24 dev enxbe3af2b6059f
$ sudo ip link set enxbe3af2b6059f up

Note

enxbe3af2b6059f is the network device name for the Host Interface, which may vary depending on the system. Verify it using the ip link command.

3. Run rbln-bios

Specify the internal BMC IP (169.254.3.254) with the --bmc_ip option to operate via the Host Interface.

$ sudo rbln-bios -t bios --bmc_ip 169.254.3.254 --bmc_user <username> --bmc_password <password>
$ sudo rbln-bios -t fanspeed --bmc_ip 169.254.3.254 --bmc_user <username> --bmc_password <password>

Troubleshooting

version, bios, or fanspeed fails

  • Confirm the host can reach the BMC and that the Redfish endpoint is accessible.
  • Verify BMC credentials and BMC IP address (see BMC (Redfish) credentials).

Unsupported platform

The grub and slot targets work on any vendor / model (the slot target requires dmidecode). The version, bios, and fanspeed targets require BMC access via the Redfish API and are currently validated on Supermicro (AS -4125GS-TNRT2, AS -5126GS-TNRT2; DCMS license required) and Gigabyte (G293-S43, G293-Z43, G294-Z21, G494-ZB4) servers.

See also