Introduction
Pi-KVM turns a Raspberry Pi into a full-featured IP-KVM (keyboard, video, mouse over IP) device. It lets you control any computer remotely at the BIOS/UEFI level — power on, change boot settings, reinstall an OS — without installing any software on the target machine.
What Pi-KVM Does
- Captures HDMI or VGA video from a target machine and streams it to a web browser
- Emulates USB keyboard, mouse, and mass storage to the target via OTG
- Controls power and reset via ATX GPIO connections or smart PDUs
- Supports virtual media for mounting ISO images as USB drives remotely
- Works at BIOS/UEFI level, independent of the target's operating system
Architecture Overview
Pi-KVM runs a custom Linux distribution on Raspberry Pi 4 or later. The video capture pipeline uses a CSI or USB capture device, feeding frames through uStreamer (a fast MJPEG/H.264 streamer). The input emulation uses the Pi's USB OTG port with a custom HID daemon. The web UI is built with JavaScript and communicates over WebSocket. An optional VNC server exposes the same feed to standard VNC clients.
Self-Hosting & Configuration
- Requires Raspberry Pi 4/5, an HDMI-to-CSI or USB capture adapter, and a USB-A to USB-C OTG cable
- Flash the Pi-KVM OS image using Raspberry Pi Imager or dd
- Edit
/etc/kvmd/override.yamlto configure resolution, frame rate, and ATX GPIO pins - Access the web interface over HTTPS on port 443 with automatic self-signed certificates
- Integrate with Wake-on-LAN, IPMI, or smart PDUs for remote power control
Key Features
- Full BIOS-level remote access without any agent on the target
- Low latency H.264 video streaming at up to 1080p 60fps
- Virtual CD-ROM and flash drive for remote OS installation
- Two-factor authentication and user management in the web UI
- Open hardware designs available for custom enclosures and HATs
Comparison with Similar Tools
- IPMI/iLO/iDRAC — Built into enterprise servers; proprietary, expensive, and vendor-locked
- TinyPilot — Similar Raspberry Pi KVM; commercial product with closed firmware
- Apache Guacamole — Remote desktop gateway for VNC/RDP/SSH; requires OS-level access on the target
- Neko — Browser-based virtual desktop in Docker; runs a full desktop, not bare-metal KVM
- RustDesk — Peer-to-peer remote desktop; requires agent software on the target
FAQ
Q: Which Raspberry Pi models are supported? A: Raspberry Pi 4 and 5 are fully supported. Pi Zero 2 W works for basic setups but with limited performance.
Q: Can I use Pi-KVM with multiple servers? A: Use a KVM switch between the Pi and multiple servers, or deploy one Pi-KVM unit per server for dedicated access.
Q: Does Pi-KVM work without an HDMI capture device? A: No. The HDMI capture adapter is essential for video. CSI-based adapters offer lower latency than USB capture.
Q: How secure is Pi-KVM? A: It uses HTTPS, supports TOTP two-factor auth, and runs on a read-only filesystem by default. Place it on a management VLAN for best security.