clang-tidy: Initial commit

Added initial .clang-tidy configuration file with recommended C++ checks
aligned with the OpenBMC-approved checklist. This setup enforces modern
C++ best practices and helps catch common issues early in development.

Change-Id: I49dccc478666f3eb5bc5979bc41985d92b86e66d
Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>
1 file changed
tree: 2cdd7c8d66f815f95cbc852961dee892a194c417
  1. subprojects/
  2. .clang-format
  3. .clang-tidy
  4. .gitignore
  5. create_usbhid.sh
  6. ikvm_args.cpp
  7. ikvm_args.hpp
  8. ikvm_input.cpp
  9. ikvm_input.hpp
  10. ikvm_manager.cpp
  11. ikvm_manager.hpp
  12. ikvm_server.cpp
  13. ikvm_server.hpp
  14. ikvm_video.cpp
  15. ikvm_video.hpp
  16. LICENSE
  17. meson.build
  18. obmc-ikvm.cpp
  19. obmc-ikvm.service
  20. OWNERS
  21. README.md
  22. scancodes.hpp
README.md

OpenBMC IpKVM Server

The obmc-ikvm application is a VNC server that provides access to the host graphics output. The application interfaces with the video device on the BMC that captures the host graphics, and then serves that video data on the RFB (remote framebuffer, also known as VNC) protocol. The application also interfaces with the BMC USB gadget device to pass HID events from the BMC to the host, allowing the user to interact with the host system.

Usage

Once the host is running and an appropriate HID gadget device is instantiated on the BMC, the application can be started with the following command: obmc-ikvm -v <video device path> -i <HID gadget device path>

For example:

obmc-ikvm -v /dev/video0 -i /dev/hidg0

Accessing Remote KVM via Web Interface

  1. Log in to the BMC Web UI.
  2. Navigate to Operations > KVM.
  3. The host's graphical output will be displayed, and you can interact with it directly from your browser.

Accessing Remote KVM via VNC Client

Direct access to the BMC KVM port (usually 5900) is generally blocked to prevent unencrypted connections. To securely connect to the KVM, use a VNC client over an SSH tunnel.

Note: SSH local port forwarding must be enabled on the BMC. If you are using Dropbear, make sure it is started without the -j option.

  1. Create an SSH tunnel to forward the KVM port from the BMC to your local machine:

    ssh -L <localport>:localhost:<bmc-kvm-port> <bmc-user>@<bmc-hostname>
    
    • localport: The port number your VNC client will use locally (e.g., 1234)
    • bmc-kvm-port: The port used by the KVM service on the BMC (usually 5900)
    • bmc-user: Your SSH username for the BMC
    • bmc-hostname: The IP address or hostname of the BMC

    Example:

    ssh -L 1234:localhost:5900 root@192.168.1.1
    
  2. Open your VNC client and connect to localhost:<localport>. For example, localhost:1234.

Note: Due to CPU and hardware encoder limitations on some BMC platforms, not all VNC clients may work reliably. For example, certain clients may experience display or input issues when connecting to iKVM. If you encounter problems, try using a different VNC client or refer to your platform's documentation for compatibility details.

You should now be able to view and interact with the host's graphical output as if you were using a local monitor, keyboard, and mouse.