README.md
1# OpenBMC IpKVM Server
2
3The obmc-ikvm application is a VNC server that provides access to the host
4graphics output. The application interfaces with the video device on the BMC
5that captures the host graphics, and then serves that video data on the RFB
6(remote framebuffer, also known as VNC) protocol. The application also
7interfaces with the BMC USB gadget device to pass HID events from the BMC to the
8host, allowing the user to interact with the host system.
9
10## Usage
11
12Once the host is running and an appropriate HID gadget device is instantiated on
13the BMC, the application can be started with the following command:
14`obmc-ikvm -v <video device path> -i <HID gadget device path>`
15
16For example:
17
18`obmc-ikvm -v /dev/video0 -i /dev/hidg0`
19
20## Accessing Remote KVM via Web Interface
21
221. Log in to the BMC Web UI.
232. Navigate to **Operations** > **KVM**.
243. The host's graphical output will be displayed, and you can interact with it
25 directly from your browser.
26
27## Accessing Remote KVM via VNC Client
28
29Direct access to the BMC KVM port (usually 5900) is generally blocked to prevent
30unencrypted connections. To securely connect to the KVM, use a VNC client over
31an SSH tunnel.
32
33**Note:** SSH local port forwarding must be enabled on the BMC. If you are using
34Dropbear, make sure it is started without the `-j` option.
35
361. Create an SSH tunnel to forward the KVM port from the BMC to your local
37 machine:
38
39 ```bash
40 ssh -L <localport>:localhost:<bmc-kvm-port> <bmc-user>@<bmc-hostname>
41 ```
42
43 - `localport`: The port number your VNC client will use locally (e.g., 1234)
44 - `bmc-kvm-port`: The port used by the KVM service on the BMC (usually 5900)
45 - `bmc-user`: Your SSH username for the BMC
46 - `bmc-hostname`: The IP address or hostname of the BMC
47
48 **Example:**
49
50 ```bash
51 ssh -L 1234:localhost:5900 root@192.168.1.1
52 ```
53
542. Open your VNC client and connect to `localhost:<localport>`. For example,
55 `localhost:1234`.
56
57**Note:** Due to CPU and hardware encoder limitations on some BMC platforms, not
58all VNC clients may work reliably. For example, certain clients may experience
59display or input issues when connecting to iKVM. If you encounter problems, try
60using a different VNC client or refer to your platform's documentation for
61compatibility details.
62
63You should now be able to view and interact with the host's graphical output as
64if you were using a local monitor, keyboard, and mouse.
65