diff --git a/README.md b/README.md new file mode 100644 index 0000000..9659f71 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# ES24N IOM Configuration Tool + +A single-file interactive CLI tool for configuring network settings and updating firmware on TrueNAS ES24N expansion shelf IOM (I/O Module) controllers. + +## Requirements + +- Python 3 (standard library only — no external dependencies) +- A USB serial cable connected from the ES24N IOM1 port to the active TrueNAS controller +- Root or serial device group permissions + +## Usage + +```bash +python3 es24n_conf.py +``` + +If the serial device is inaccessible, re-run with `sudo`: + +```bash +sudo python3 es24n_conf.py +``` + +## Features + +### Network Configuration + +Connects to the IOM over a USB serial connection and configures each IOM's management network interface via the Redfish API. + +- Supports both **Static IP** and **DHCP** configuration +- Configures IOM1 and IOM2 independently in a single session +- Displays current network settings before making any changes + +### Firmware Updates + +Connects to each IOM directly over the network (not serial) and updates IOM and/or Fabric Card firmware via the Redfish API. + +- Update IOM firmware, Fabric Card firmware, or both +- Displays current firmware versions before and after the update +- Polls update task progress automatically + +## Workflow + +### Configure a Shelf + +1. Connect the serial cable from the ES24N IOM1 port to the controller's USB port +2. Run the tool and select **Configure a new ES24N shelf** +3. The tool detects the serial device, opens the connection, and prompts for the BMC admin password +4. Current network settings for IOM1 and IOM2 are displayed +5. Choose to apply a new Static IP or DHCP configuration, or leave settings unchanged +6. Changes are applied via Redfish PATCH requests over the serial loopback (`127.0.0.1`) + +### Update Firmware + +1. Ensure this system has network access to the IOM management interfaces +2. Run the tool and select **Update IOM / Fabric Card Firmware** +3. Enter the admin password and IP addresses for IOM1 and IOM2 +4. Select what to update and provide the firmware file path(s) +5. The tool uploads, applies, and monitors each update, then restarts the affected components + +> **HA Systems:** Update the passive IOM first. After updating both IOMs on one controller, initiate a TrueNAS failover and re-run the tool for the other controller. + +## Notes + +- Setting a static IP requires two sequential Redfish PATCH requests due to a known ES24N firmware bug. The tool handles this automatically. +- Firmware uploads are performed over the network — uploading over the 115200-baud serial connection would be impractically slow. +- After applying network changes, verify each expander appears in TrueNAS under **System Settings > Enclosure > NVMe-oF Expansion Shelves** before disconnecting the serial cable.