The BMC's GetDecoder is a singleton factory that creates a decoder on the first frame and reuses it for all subsequent frames. The BMC sends encoding 0x00 for incremental frames after the initial 0x59 (Hermon) frame, which was incorrectly rejected as unsupported. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| crates | ||
| docs | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| ghidramcp.sh | ||
| KVM_PROTOCOL.md | ||
| MOUNT_PROTOCOL.md | ||
| README.md | ||
| REVERSING.md | ||
aten-ipmi-tools
Open-source replacements for the ancient, insecure bundled management app shipped with old IPMI interfaces. Protocols were reverse engineered from the original Java client and native libraries — see KVM_PROTOCOL.md, MOUNT_PROTOCOL.md, and REVERSING.md.
The target is Supermicro X9 boards with Nuvoton WPCM450 IPMI (aka "hermon"), but this likely works with other ATEN/ASpeed/Nuvoton IPMI implementations too.
Tools
aten-mount-cli
Mounts a local ISO image as a virtual CD-ROM on the BMC. Works by emulating a USB Mass Storage device over the ATEN virtual media TCP protocol.
aten-mount-cli [OPTIONS] <HOST> <ISO>
Options:
-u, --user <USERNAME> BMC username [default: admin]
-p, --pass <PASSWORD> BMC password [default: admin]
--port <PORT> BMC virtual media port [default: 623]
Press Ctrl+C to cleanly unmount.
aten-gui
KVM console viewer (Slint + Qt6). Connects to the BMC via the ATEN RFB protocol, decodes Hermon video frames, and displays the remote console.
aten-gui [OPTIONS] <HOST>
Options:
-u, --user <USERNAME> BMC username [default: admin]
-p, --pass <PASSWORD> BMC password [default: admin]
--port <PORT> BMC KVM port [default: 5900]
Display-only — keyboard/mouse input is not yet implemented.
Building
cargo build --release
# or
nix build .#aten-mount # CLI tool
nix build .#aten-gui # GUI app