PiKVM Raspberry Pi 4: Remote KVM Setup for Home Servers

PiKVM Raspberry Pi 4 KVM Control

PiKVM Raspberry Pi 4 gives you BIOS-level remote access to a home server over a browser without needing the server’s OS to be running. The Pi captures the server’s HDMI output, emulates a USB keyboard and mouse, and optionally controls the ATX power headers. The result is the same out-of-band access that enterprise IP-KVM appliances provide, built from a Pi 4 and an HDMI capture device for around $100.

Last tested: PiKVM v3 image (Arch Linux ARM) | March 6, 2026 | Raspberry Pi 4 Model B (4GB) | TC358743 CSI bridge | Proxmox host

Key Takeaways

  • PiKVM operates at the hardware level. It captures HDMI video and emulates USB input devices, giving access to BIOS, boot menus, and recovery screens before the OS loads.
  • Pi 4 with 4GB RAM is the recommended hardware. Pi 5 works but adds cost without meaningful benefit for this use case.
  • The HDMI capture device matters. The TC358743 CSI bridge provides lower latency than USB capture dongles. For USB dongles, use UTV007 or Ezcap-based models for best compatibility.
  • PiKVM runs a read-only root filesystem on Arch Linux ARM. This protects against SD card corruption from power loss. Configuration changes require mounting the filesystem read-write first.
  • Use Tailscale for remote access over the internet. Port forwarding PiKVM directly is not recommended without additional hardening.
  • ATX power control requires wiring the Pi’s GPIO to the server’s front panel headers. Plan the cable routing before assembly.
Raspberry Pi 4 setup diagram showing Pi connected to server via HDMI capture and USB with browser-based remote access

What PiKVM Does

KVM stands for Keyboard, Video, Mouse: the three interfaces needed to control a computer. An IP-KVM extends this over a network rather than requiring physical proximity. PiKVM implements this by connecting to the target server’s HDMI output and USB ports, then streaming the video to a browser while accepting keyboard and mouse input through USB HID emulation.

Unlike VNC or RDP, PiKVM does not depend on the server’s operating system. It works during POST, in BIOS/UEFI, during OS installation, and during recovery. If the server stops responding to SSH or its OS fails to boot, PiKVM provides a path to diagnose and fix it remotely.

PiKVM vs alternatives

SolutionPriceBIOS accessVirtual mediaATX controlOpen source
PiKVM (Pi 4 DIY)~$100YesYesYesYes
TinyPilot Voyager 2~$350YesYesNo (base)Partial
Dell iDRAC / HP iLOServer built-inYesYesYesNo
Enterprise IP-KVM$400+YesYesYesNo
VNC / RDPFreeNoNoNoVaries

Hardware Requirements

Core components

ComponentRecommendedNotes
Raspberry Pi 44GB modelHandles H.264 encoding and USB emulation without issue
MicroSD or USB SSD32GB+ high enduranceRead-only FS reduces writes but SSD improves reliability
HDMI captureTC358743 CSI bridgeLowest latency option; USB dongles (UTV007/Ezcap) also work
USB cable (OTG)USB-A to USB-C or micro-USBConnects Pi’s USB-OTG port to server USB port for HID emulation
ATX module (optional)PiKVM ATX board or DIYWires to server front panel headers for remote power control
CaseAny with ventilationKeeps Pi cool during continuous operation

The HDMI capture path significantly affects latency and compatibility. The TC358743-based CSI bridge connects directly to the Pi’s camera port and provides sub-100ms latency. USB capture dongles are easier to source but add 20 to 50ms latency and vary in driver compatibility. Confirmed working USB chipsets for PiKVM are UTV007 and Ezcap EZ USB2.0. Avoid uncertified generic dongles.

  • This is an HDMI to CSI camera port adapter designed for Raspberry Pi with up to 1080p@30fps support from HDMI input, bac…
  • It allows you to use HDMI cameras just as the standard Raspberry Pi CSI cameras.
  • It is compatible with all versions of Raspberry Pi series boards–compatible with Raspberry Pi 4B/3B+/3B/2B/3A+/Pi Zero/…

For long-term reliability, run PiKVM from a USB SSD rather than microSD. The read-only root filesystem reduces writes significantly, but the config partition is writable. See Booting Raspberry Pi from USB SSD for the setup. If using microSD, see Preventing SD Card Corruption on Raspberry Pi.

Step 1: Flash PiKVM Raspberry Pi 4 Image

Download the correct PiKVM image for your hardware configuration from pikvm.org/download. Select the image matching your Pi model and capture device type (CSI or USB). Flash with Raspberry Pi Imager or Balena Etcher. PiKVM images do not use the standard Raspberry Pi OS, so Imager’s advanced settings (SSH pre-configuration) do not apply here.

After flashing, insert the card into the Pi, connect the Pi to your network via Ethernet, and power on. Find the Pi’s IP address from your router’s DHCP table or by scanning the network:

arp -a | grep -i raspberry

Access the web interface at https://<pi-ip>. The default credentials are admin / admin. You will receive a browser warning about the self-signed certificate. Proceed past it.

Expected result: The PiKVM web interface loads showing the video feed area, on-screen keyboard, and system controls. The status bar shows no errors.

Step 2: First Boot Configuration

Change the default passwords immediately. PiKVM has two separate password systems: the web UI password and the Linux system password. To change both, SSH into the Pi:

ssh root@<pi-ip>

The root password is also root by default. Once in, the root filesystem is read-only by default. Mount it read-write to make changes:

# Mount read-write
rw

# Change the web UI password
kvmd-htpasswd set admin

# Change the system root password
passwd root

# Return to read-only
ro

The rw and ro commands are PiKVM aliases for remounting the root filesystem. Always run ro after making configuration changes to restore the read-only protection.

Expected result: New passwords accepted. ro runs without error. The web UI prompts for the new credentials on next login.

Step 3: Connect and Verify HDMI Capture

Connect the target server’s HDMI output to the capture device, and the capture device to the Pi (CSI ribbon cable or USB). Connect the USB OTG cable from the Pi’s USB-OTG port to a USB port on the target server. This cable carries both keyboard/mouse emulation and, optionally, virtual media.

Power on the target server. The PiKVM web interface should display the server’s video output within a few seconds. Check the capture status:

# Check capture device status
dmesg | grep -i "tc358743\|capture\|hdmi"

# Check KVMD service status
systemctl status kvmd

If the video feed is blank, the most common cause is a resolution mismatch. PiKVM’s CSI path supports up to 1920×1200 but some servers output unusual resolutions by default. Check the server’s BIOS display settings and set the output to a standard resolution such as 1280×720 or 1920×1080.

Expected result: The server’s display appears in the PiKVM browser interface. Keyboard input typed in the PiKVM on-screen keyboard or physical keyboard registered in the PiKVM session appears on the server.

Step 4: Configure ATX Power Control

ATX power control lets you power on, power off, and reset the server from the PiKVM interface. It requires wiring the Pi’s GPIO pins to the server’s front panel header on the motherboard. PiKVM provides an ATX daughterboard that simplifies this, or it can be done with individual jumper cables using the GPIO pinout from the PiKVM documentation.

The four connections needed from the server front panel header are: power button signal, power button ground, reset button signal, and reset button ground. The ATX module also has inputs for reading power LED state and HDD LED state, which appear as indicators in the PiKVM interface.

After wiring, verify in the PiKVM interface that the power button icon triggers the server’s power state. Test with a short press (soft power off) before relying on it for remote reboots.

Expected result: The PiKVM power button icon triggers the server to power on or off. The power LED indicator in the PiKVM interface reflects the server’s actual power state.

Step 5: Mount Virtual Media

Virtual media allows mounting an ISO file from the PiKVM host as a virtual USB drive on the target server. This enables OS installation and recovery from the remote interface without physical media. In the PiKVM web interface, go to the Mass Storage Drive section in the menu and upload or link to an ISO file. Enable the drive and it appears as a USB device to the target server.

The ISO is served from storage on the Pi. Ensure sufficient space is available on the partition that holds uploaded images. For large ISOs (Ubuntu Server, Proxmox, TrueNAS) ensure the Pi has at least 8GB free on the data partition.

Expected result: The target server detects the virtual USB drive and it appears in the boot device list. The server can boot from the ISO image.

Security Configuration

Two-factor authentication

PiKVM supports TOTP-based 2FA. Enable it via SSH:

rw
kvmd-totp init
# Scan the QR code with your authenticator app
ro

After enabling 2FA, the web interface requires both password and TOTP code at login. Compatible with any TOTP app including Authy and Google Authenticator.

Remote access with Tailscale

rw
pacman -S tailscale
systemctl enable --now tailscaled
tailscale up
ro

After running tailscale up, authenticate via the URL shown in the terminal. The Pi joins your Tailscale network and is accessible at its Tailscale IP from any device on the same account. Access PiKVM at https://<tailscale-ip> from anywhere without port forwarding.

SSL certificate

PiKVM uses a self-signed certificate by default. For a trusted certificate, replace the files at /etc/kvmd/nginx/ssl/server.crt and /etc/kvmd/nginx/ssl/server.key with a certificate from Let’s Encrypt or your own CA. This requires the Pi to have a resolvable hostname and the rw / ro workflow for making changes.

Home Lab Use Cases

Proxmox and virtualisation hosts

Proxmox, ESXi, and similar hypervisors have BIOS and boot-level configuration that SSH cannot reach. PiKVM provides access to the UEFI interface, the Proxmox boot menu, and the recovery shell. When a Proxmox update breaks the bootloader or a ZFS pool fails to import on boot, PiKVM gives access to diagnose and fix the issue from the console.

NAS recovery

TrueNAS and OpenMediaVault both have web UIs, but those UIs are unavailable when the OS fails to boot. PiKVM allows accessing the boot console, running fsck, or booting from a recovery ISO without physical presence. For a NAS that stores important data, this is a useful insurance layer.

Headless server maintenance

Servers without a dedicated monitor and keyboard gain a persistent console through PiKVM. Kernel updates that break SSH access, misconfigured network interfaces, or failed boot parameters are all recoverable from the PiKVM interface. The virtual media feature handles full OS reinstallation without physical access.

Performance Notes

With the TC358743 CSI bridge, latency is typically under 100ms at 1080p, sufficient for BIOS navigation and console work. The USB capture dongle path adds 20 to 50ms. Neither is suitable for latency-sensitive work like gaming, but both are practical for server administration. Maximum supported resolution is 1920×1200 at 60Hz. The Pi 4 handles H.264 encoding in hardware, keeping CPU usage low during active sessions.

Power consumption for the full PiKVM setup is typically under 5W. With a heatsink, temperatures stay well below throttling thresholds even during sustained video streaming sessions. See Setting Up zram on Raspberry Pi if running additional services on the same Pi.

Troubleshooting

No video in browser

# Check KVMD service
systemctl status kvmd

# Check capture device detection
dmesg | grep -i "tc358743\|uvcvideo\|hdmi"

# View KVMD logs
journalctl -u kvmd -n 50

Confirm the HDMI cable is connected to the capture device, not directly to the Pi. Confirm the server is outputting video at a supported resolution. Some servers output 4K by default. Drop the BIOS display output to 1080p. Confirm the CSI ribbon cable is fully seated on both ends if using a TC358743 module.

Keyboard or mouse not working on target server

Confirm the OTG USB cable is connected to the Pi’s correct port. On Pi 4, the USB-C port is the OTG port used for HID emulation. The USB-A ports are data ports. Connecting the OTG cable to a USB-A port will not enable HID emulation. If using an older image, confirm the USB device mode is configured correctly in /etc/kvmd/override.yaml.

Configuration changes not persisting

PiKVM’s root filesystem is read-only. Run rw before making changes and ro after. If you forget ro, PiKVM will still function, but the read-only protection is removed until the next reboot. If a config change breaks PiKVM, reflashing the image and restoring the config from backup is faster than debugging through a broken SSH connection.

Web interface not loading

systemctl status kvmd-nginx
systemctl restart kvmd kvmd-nginx

If the interface does not load, check that both the kvmd and kvmd-nginx services are running. Power supply issues on the Pi can cause services to fail intermittently. Confirm voltage with vcgencmd get_throttled.

FAQ

Can I use PiKVM with models other than Pi 4?

PiKVM is optimised for Pi 4. Pi 3 works but with lower video encoding performance and no USB 3.0. Pi 5 also works but requires a different image and has no practical performance advantage for this use case. Pi Zero models are not supported.

Does PiKVM support virtual CD/DVD mounting?

Yes. ISO files can be uploaded to the Pi and mounted as a virtual USB mass storage device. The target server sees it as a physical USB drive and can boot from it. This is the primary method for remote OS installation and recovery without physical media.

What resolutions does PiKVM support?

Up to 1920×1200 at 60Hz with the TC358743 CSI bridge. USB capture dongles support similar resolutions but with higher latency. 4K output from the target server is not supported. Set the server BIOS display output to 1080p or lower for best results.

Is PiKVM secure enough for internet access?

With HTTPS, a strong password, and 2FA enabled, it is reasonably secure. The recommended approach for internet access is Tailscale rather than direct port forwarding. Tailscale provides an encrypted tunnel and removes the need to expose any port on your router.

Can I remotely power cycle my server with PiKVM?

Yes, with the ATX control module wired to the server’s front panel header. This enables power on, soft power off, hard power off, and reset from the PiKVM web interface. The feature requires the physical wiring. It is not available through the USB OTG connection alone.

References


About the Author

Chuck Wilson has been programming and building with computers since the Tandy 1000 era. His professional background includes CAD drafting, manufacturing line programming, and custom computer design. He runs PidiyLab in retirement, documenting Raspberry Pi and homelab projects that he actually deploys and maintains on real hardware. Every article on this site reflects hands-on testing on specific hardware and OS versions, not theoretical walkthroughs.

Last tested hardware: Raspberry Pi 4 Model B (4GB), TC358743 CSI bridge, Proxmox host. Last tested OS: PiKVM v3 image (Arch Linux ARM).