Update README to reflect current architecture and features

- Remove single-file description; document the es24n/ module structure
- Add serial cable requirement only where relevant (serial workflow)
- Document IOM selection option in firmware update workflow
- Add firmware file auto-detection to firmware update steps
- Add file structure section
- Add note about firmware file re-upload requirement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 17:56:53 -04:00
parent 0a49cbe516
commit a5f69ae8b0

View File

@@ -1,12 +1,11 @@
# 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.
An interactive CLI tool for configuring network settings and updating firmware on TrueNAS ES24N expansion shelf IOM (I/O Module) controllers via the Redfish API.
## 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
- Root or serial device group permissions (for serial-based configuration)
## Usage
@@ -22,45 +21,64 @@ sudo python3 es24n_conf.py
## Features
### Network Configuration
### Serial Network Configuration
Connects to the IOM over a USB serial connection and configures each IOM's management network interface via the Redfish API.
Connects to the IOM over a USB serial cable and configures each IOM's management network interface via the Redfish API over the serial loopback (`127.0.0.1`). Used for initial setup when the IOM has no IP address yet.
- Supports both **Static IP** and **DHCP** configuration
- Configures IOM1 and IOM2 independently in a single session
- Displays current network settings before making any changes
- Supports configuring multiple shelves back-to-back in one session
### Firmware Updates
Connects to each IOM directly over the network (not serial) and updates IOM and/or Fabric Card firmware via the Redfish API.
Connects to each IOM directly over the network and updates IOM and/or Fabric Card firmware via the Redfish API.
- Update IOM firmware, Fabric Card firmware, or both
- Select IOM1 only, IOM2 only, or both
- Update IOM firmware, Fabric Card firmware, or both in a single run
- Scans the current working directory for firmware files automatically
- Displays current firmware versions before and after the update
- Polls update task progress automatically
## Workflow
### Configure a Shelf
### Configure a Shelf (Serial)
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`)
6. Changes are applied via Redfish PATCH over the serial loopback (`127.0.0.1`)
7. Verify each expander appears in TrueNAS under **System Settings > Enclosure > NVMe-oF Expansion Shelves** before disconnecting the serial cable
### 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
3. Enter the admin password and select which IOM(s) to update
4. Enter the IP address(es) for the selected IOM(s)
5. Select what to update (IOM firmware, Fabric Card firmware, or both)
6. Select firmware file(s) from the auto-detected list or enter a custom path
7. 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.
## File Structure
```
es24n_conf.py ← Entry point — run this
es24n/
ui.py ← Display helpers and input prompts
serial_port.py ← Serial port driver (no pyserial required)
models.py ← IOMConfig and ShelfConfig data classes
redfish.py ← Redfish API client (shared by all workflows)
workflow_serial.py ← Serial-based network configuration workflow
workflow_firmware.py ← Firmware update workflow
```
## 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.
- The firmware file must be re-uploaded between the IOM firmware and Fabric Card firmware steps as it does not persist after the first update.