← All articles
white electronic device turned on in a room

Pi-KVM: Affordable BIOS-Level Remote Management for Your Homelab

Hardware 2026-02-15 · 8 min read pikvm ipmi kvm remote-management bios out-of-band
By HomeLab Starter Editorial TeamHome lab enthusiasts covering hardware setup, networking, and self-hosted services for home and small office environments.
This article contains affiliate links. If you purchase through these links, we may earn a commission at no extra cost to you. Learn more.

Enterprise servers come with built-in remote management — iDRAC, iLO, IPMI. You can power cycle the machine, access the BIOS, mount an ISO, and watch the boot process from anywhere on your network. But consumer hardware and older servers often lack this capability entirely, or the IPMI implementation is so outdated it's a security liability.

Photo by Mika Baumeister on Unsplash

Pi-KVM solves this by turning a Raspberry Pi into a fully featured IP-KVM device. It captures the HDMI output of any machine, emulates a USB keyboard and mouse, and serves it all over a web interface. You get BIOS-level access to any machine — desktops, NUCs, mini PCs, old servers, even gaming rigs — for under $100 in parts.

Pi-KVM device connected to a homelab server

Why Pi-KVM Over Traditional IPMI

If your server already has working IPMI, you might not need Pi-KVM. But there are several situations where it makes more sense than traditional out-of-band management.

Feature Pi-KVM IPMI (iDRAC/iLO) Consumer Hardware
BIOS access Yes Yes No (need physical access)
Works with any machine Yes (HDMI + USB) No (server boards only) N/A
Virtual media (ISO mount) Yes Yes (often needs license) No
Cost $70-150 one-time Free (included) or $50-200 license N/A
Security updates Active open-source project Vendor-dependent, often slow N/A
Video quality Up to 1080p60 720p-1080p (varies) N/A
Web interface Modern, responsive Often dated Java applets N/A
ATX power control Yes (with wiring) Yes (built-in) No
Multi-machine One Pi per machine (or KVM switch) Per-server N/A

The biggest wins for Pi-KVM are with consumer hardware that has no IPMI at all, and with older enterprise gear where the IPMI interface is a Java applet that requires an ancient browser to function.

Hardware Options

You have three paths: buy a prebuilt Pi-KVM, build one from a kit, or assemble your own from parts.

Option 1: Pi-KVM V4 (Prebuilt)

The Pi-KVM V4 is a purpose-built device with a Raspberry Pi CM4 inside a metal case. It includes an integrated HDMI capture chip, USB-C emulation, ATX power control header, and a real-time clock. This is the easiest option if you want something that works out of the box.

Price is roughly $150-200 depending on the model and availability.

Option 2: DIY Build with Raspberry Pi 4

This is the most common homelab approach. You need:

Total cost: $70-100 depending on what you already have.

Option 3: Pi-KVM with a Raspberry Pi 5

The Raspberry Pi 5 is supported with Pi-KVM v4 software. The setup is similar to the Pi 4, but you need to use the Pi 5's USB-C port differently since it handles OTG mode through a different mechanism. Check the Pi-KVM documentation for Pi 5-specific wiring instructions.

Software Installation

Pi-KVM provides a dedicated OS image based on Arch Linux ARM. Don't try to install it on top of Raspberry Pi OS — use the official image.

Flashing the Image

# Download the appropriate image for your hardware
# For Pi 4 with USB HDMI dongle (the most common DIY setup):
wget https://files.pikvm.org/images/v3-hdmi-rpi4-latest.img.xz

# Flash to SD card (replace /dev/sdX with your SD card device)
xzcat v3-hdmi-rpi4-latest.img.xz | sudo dd of=/dev/sdX bs=64K status=progress conv=fsync

# Or use Raspberry Pi Imager / balenaEtcher for a GUI approach

First Boot Configuration

Insert the SD card, connect the Pi to your network via Ethernet, and power it on. Find its IP address from your router's DHCP leases, then open https://<ip-address> in a browser.

Default credentials are admin / admin. Change them immediately:

# SSH into the Pi-KVM (default: root/root)
ssh root@<pikvm-ip>

# Make the filesystem writable (Pi-KVM runs read-only by default)
rw

# Change the web interface password
kvmd-htpasswd set admin

# Change the root SSH password
passwd

# Return to read-only mode
ro

The read-only filesystem is a deliberate design choice. It prevents SD card corruption from unexpected power loss, which is a real concern with Raspberry Pis. Always run rw before making changes and ro when you're done.

Network Configuration

For a static IP (recommended for a management device):

rw

# Edit the network configuration
cat > /etc/systemd/network/eth0.network << 'EOF'
[Match]
Name=eth0

[Network]
Address=10.0.10.60/24
Gateway=10.0.10.1
DNS=10.0.10.1
EOF

systemctl restart systemd-networkd
ro

Put your Pi-KVM on the same management VLAN as any IPMI interfaces. This keeps all out-of-band management traffic separated from your production network.

Like what you're reading? Subscribe to HomeLab Starter — free weekly guides in your inbox.

Connecting to a Target Machine

The physical setup has three connections:

  1. HDMI: Run an HDMI cable from the target machine's video output to the HDMI capture dongle plugged into the Pi
  2. USB: Connect the Pi's USB-C OTG port to a USB port on the target machine. This is how the Pi emulates a keyboard and mouse
  3. Network: Ethernet from the Pi to your switch

Once connected, open the Pi-KVM web interface. You should see the target machine's display output in the browser, and your keyboard and mouse input will be forwarded to it.

ATX Power Control (Optional but Recommended)

Pi-KVM can control the target machine's power button, reset button, and read the power LED status. This requires wiring GPIO pins on the Pi to the corresponding front panel header on the target machine's motherboard.

The wiring uses optocouplers to electrically isolate the Pi from the target machine. The Pi-KVM V4 has this built in. For a DIY build, you'll need a small circuit board — the Pi-KVM project provides schematics. Alternatively, you can buy pre-made ATX control boards from community members.

With ATX control wired up, you can:

This is what turns Pi-KVM from a "fancy remote desktop" into a true out-of-band management tool comparable to IPMI.

Virtual Media: Mounting ISOs Remotely

One of Pi-KVM's most useful features is virtual media — mounting an ISO file so the target machine sees it as a USB drive. This lets you reinstall operating systems, boot rescue disks, or run diagnostics without ever touching a USB stick.

Uploading an ISO

In the Pi-KVM web interface:

  1. Click the drive icon (virtual media section)
  2. Upload an ISO file — it gets stored on the Pi's SD card or an attached USB drive
  3. Select the ISO and click "Connect"
  4. The target machine now sees a USB mass storage device with the ISO contents

For larger ISOs (Windows installation media is over 5 GB), you'll want to store them on an attached USB drive rather than the SD card:

rw

# Mount a USB drive for ISO storage
mkdir -p /var/lib/kvmd/msd/isos
mount /dev/sda1 /var/lib/kvmd/msd/isos

# Add to fstab for persistence
echo '/dev/sda1 /var/lib/kvmd/msd/isos ext4 defaults,nofail 0 2' >> /etc/fstab

ro

Booting from Virtual Media

Reboot the target machine, enter the BIOS/boot menu, and select the USB device. The Pi-KVM emulates a standard USB mass storage device, so it's universally compatible — no special drivers needed on the target machine.

Multi-Machine Setups

Each Pi-KVM controls one machine. If you have multiple machines to manage, you have a few options.

Dedicated Pi per Machine

The simplest and most reliable approach. One Pi-KVM per target machine, each with its own IP address. Use the Pi-KVM web interface's built-in support for switching between multiple instances, or just bookmark each one.

HDMI/USB KVM Switch

Use a hardware KVM switch between the Pi-KVM and multiple target machines. The Pi-KVM project supports controlling certain KVM switches to select which machine is active. This saves money on Raspberry Pis but introduces a single point of failure and limits you to one machine's console at a time.

Centralized Management

If you're running several Pi-KVMs, you can put them all behind a reverse proxy (Nginx, Caddy, Traefik) with a single entry point:

# Example Caddy configuration
pikvm-node1.lab.local {
    reverse_proxy https://10.0.10.60 {
        transport http {
            tls_insecure_skip_verify
        }
    }
}

pikvm-node2.lab.local {
    reverse_proxy https://10.0.10.61 {
        transport http {
            tls_insecure_skip_verify
        }
    }
}

Pi-KVM vs Other KVM-over-IP Solutions

Pi-KVM isn't the only option in this space. Here's how it compares.

TinyPilot: Another Raspberry Pi-based KVM solution. TinyPilot Voyager 2a is a commercial product with polished hardware. The software was open-source but transitioned to a proprietary model. Pi-KVM remains fully open-source.

JetKVM: A newer, purpose-built device with a compact form factor and built-in screen. It's more polished than a DIY Pi-KVM build but less flexible. Good option if you want minimal setup effort.

Lantronix Spider / Raritan: Enterprise KVM-over-IP appliances. Expensive ($200-500+ per port), but designed for data center reliability. Overkill for a homelab unless you find them used on eBay.

IPMI/iDRAC/iLO: If your server already has it, use it. Pi-KVM is for machines that don't have built-in management, or where the built-in management is unusable due to age or licensing restrictions.

Security Considerations

A KVM device has complete control over any machine it's connected to — keyboard input, display capture, power control, and boot media. Treat its security seriously.

Practical Tips

SD card longevity: The read-only filesystem helps enormously, but SD cards still fail. Keep a backup of your Pi-KVM configuration and consider using an industrial-grade SD card (SanDisk Industrial or similar).

Video latency: Expect 100-200ms of latency on the video feed. This is fine for BIOS configuration and troubleshooting but not great for anything requiring real-time interaction. If you're seeing significantly more latency, check your network — Pi-KVM should be on a wired connection, never Wi-Fi.

Resolution: Set the target machine's output to 1080p or 720p for the best experience. Higher resolutions increase bandwidth and latency without much benefit through a web browser.

Wake-on-LAN integration: If your target machines support WoL, Pi-KVM can send WoL packets as an alternative to ATX power control wiring. This is simpler but less reliable than direct GPIO power control.

Pi-KVM fills a genuine gap in homelab infrastructure. Enterprise IPMI is either unavailable, insecure, or locked behind a license paywall. Pi-KVM gives you the same capability — BIOS access, virtual media, power control — at a fraction of the cost, with an actively maintained open-source stack. If you've ever walked to another room to plug in a USB stick or connect a monitor for a five-second BIOS change, it pays for itself immediately.

Get free weekly tips in your inbox. Subscribe to HomeLab Starter