No description
Find a file
Davíð Steinn Geirsson 2bdda6b0e6 fix(aten-kvm): reuse encoding from first frame for subsequent updates
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>
2026-03-11 22:12:11 +00:00
crates fix(aten-kvm): reuse encoding from first frame for subsequent updates 2026-03-11 22:12:11 +00:00
docs Remove obsolete plans 2026-03-11 22:07:50 +00:00
.gitignore chore: remove Go implementation, now replaced by Rust 2026-03-11 19:49:03 +00:00
Cargo.lock feat(aten-gui): implement KVM console viewer with Slint display 2026-03-11 21:51:56 +00:00
Cargo.toml feat: scaffold aten-kvm crate with public types 2026-03-11 21:35:34 +00:00
CLAUDE.md chore: update flake.nix and CLAUDE.md for aten-kvm 2026-03-11 21:54:35 +00:00
flake.lock refactor: extract mount library package, add flake.nix 2026-03-11 14:28:22 +00:00
flake.nix chore: update flake.nix and CLAUDE.md for aten-kvm 2026-03-11 21:54:35 +00:00
ghidramcp.sh Add ghidra MCP start script, update .gitignore 2026-03-11 17:39:58 +00:00
KVM_PROTOCOL.md Update KVM_PROTOCOL.md 2026-03-11 12:36:50 +00:00
MOUNT_PROTOCOL.md docs: fill protocol gaps - error handling, HTTP upload, multi-device, SetEP 2026-03-11 14:03:47 +00:00
README.md fix: support hostnames in KVM connect, update README 2026-03-11 21:57:39 +00:00
REVERSING.md docs: final sweep - wire format verification, SCSI enumeration, structure maps 2026-03-11 14:03:51 +00:00

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