A enhanced version of M. Koreneff's iommu_info_generate script with curses dashboard to inspect and upload IOMMU data to https://iommu.info/api/

- API health and latency probe.
- Vendor endpoint probe.
- Mainboard existence check.
- Local system pane: host, vendor, product, family, board, BIOS.
- Hypervisor detection with best-effort host OS.
- Upload flow with chunked progress.
- Refresh throttling with cooldown timer; honors 429 Retry-After.
- Linux with /sys/devices/virtual/dmi/id/
- Python ≥ 3.14
- lspci in PATH
- Network reachability to https://iommu.info/api/
Download the project and make it executable:
git clone https://github.com/0n1cOn3/iOMMU-Report
cd iOMMU-Report
chmod +x IOMMU-TUI.py
python3 IOMMU-TUI.py
- r - refresh
- u - upload if board unknown
- q - quit.
# base URL and timeouts
python3 IOMMU-TUI.py --api-url https://iommu.info/api/ --timeout 8 --retries 1
# control refresh rate (seconds)
python3 IOMMU-TUI.py --refresh-min-secs 180
# override identity used for lookups
python3 iommu_dashboard.py \
--board-vendor "Hewlett-Packard Company" \
--board-name "ProLiant DL360p Gen8
- Refresh is rate-limited client-side; remaining cooldown is shown in the footer.
- On server 429, the app reads Retry-After and defers subsequent calls automatically.
- Upload only triggers on u when the board is Not Found.
- Vendor names are resolved before upload to avoid bad entries.
- lspci not found: install pciutils.
- Board still unknown after upload: re-refresh after cooldown; server may apply additional validation.
- API errors show HTTP code and detail. For persistent issues, open an issue with the exact output.
- Issues regarding upload or missing board to be reported: https://github.com/mkoreneff/iommu_info_generate/issues/new/choose
- Issues regarding the script: https://github.com/0n1cOn3/iOMMU-Report/issues/new/choose