The Chicken VNC client, modified for use with ATEN iKVM products
C Assembly Objective-C Shell HTML CMake Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Chicken.xcodeproj
Documentation
Resources
Source
Sparkle.framework
lens
libjpeg-turbo
README.md

README.md

Introduction

The ATEN iKVM, included on Supermicro motherboards, uses a remote display protocol similar to VNC. This project is a reverse engineered implementation of that protocol within the Chicken VNC viewer.

This work is currently a proof of concept, and is not suitable for end users. It has been developed against a Supermicro X9SCM-iiF, other devices may vary.

Protocol

The protocol resembles VNC, but has additional bytes in most messages and additional message types. The details of this protocol are encoded in the lens.

The authentication packet is two 24-byte null terminated strings. Either a username and password or a session ID from the web interface can be used. For a session ID, the value is repeated in both the username and password field.

The framebuffer format appears to be RGB555, despite the claims otherwise in the pixel format sent as part of ServerInit. Updates always encoded as raw bitmap data, and consist of either the entire screen, or a list of 16x16 rectangles with coordinates. For the implementation details of the image format, see the AtenEncodingReader. The rectangle included with the updates always specifies the full display resolution, or when the screen is off, -640 by -480.

There are a number of additional messages, the meaning of which is currently unknown. They do not seem to affect the connection and are ignored entirely.

Supported Features

  • Remote Display
  • Mouse
  • Keyboard

Missing features and todo

  • Username entry UI
  • Remote media

License

Modifications are available under the same license as Chicken.