PiKVM is an incredibly powerful open-source KVM-over-IP solution that turns a Raspberry Pi into a remote management tool for your servers and computers. This comprehensive guide will walk you through every step of setting up your PiKVM, from unboxing to full operation, including troubleshooting common issues like the OLED display not turning on.
💡 Pro Tip: Easy Command Copying!
This guide features two types of copy buttons to make following along effortless:
nano, ssh, rw, etc. - click to copy that specific command instantlyBoth buttons will show a checkmark (✓) when successfully copied. No more selecting text or accidentally copying extra spaces!
PiKVM (Pi Keyboard Video Mouse) is a DIY or pre-assembled device that provides remote access to computers at the BIOS level. Unlike traditional remote desktop solutions, PiKVM works independently of the operating system, allowing you to troubleshoot boot problems, access BIOS settings, and even reinstall operating systems remotely.
Before you begin, ensure you have the following components:
First, you need to download the appropriate PiKVM operating system image for your hardware:
pikvm.org.img.xz format)Use a reliable flashing tool to write the image to your MicroSD card:
Important: This process will erase all data on the MicroSD card.
Now it's time to physically assemble your PiKVM:
When you power on your PiKVM for the first time:
pikvm)Alternative method to find IP: If you have access to your router, look for a device named "pikvm" in the connected devices list.
Once you have the IP address, you can access your PiKVM through the web interface and optionally through SSH.
https://<pikvm-ip-address> (for example: https://192.168.1.100)adminadminImportant: You will change this password in the next step!
You'll need terminal access to configure your PiKVM and change passwords. Choose the method that works best for you:
The easiest way to access the PiKVM terminal is directly through the web interface - no SSH client required!
rootrootAdvantages of the web terminal:
If you prefer using a dedicated SSH client:
ssh root@<pikvm-ip-address>rootNote: Throughout this guide, whenever you see instructions to "access the terminal" or "SSH into your PiKVM," you can use either method - both work exactly the same way!
Before changing passwords and proceeding with configuration, it's highly recommended to update your PiKVM to the latest version to ensure you have all the newest features, bug fixes, and security patches.
The pikvm-update command is the official and recommended method for updating PiKVM. It handles all PiKVM-specific updates properly and includes safety checks.
su - if needed)rw
pikvm-update
ro
reboot
After rebooting, you can verify your PiKVM version:
Best Practice: Check for updates monthly or whenever you notice issues. Updates often include important security fixes and performance improvements.
For security, you must change all default passwords immediately. Use either the web terminal or SSH from Step 5 above.
If you're not already logged in as root, you need to switch to the root user before making any changes. Run this command first:
su -
Enter the root password (root by default) when prompted.
Step 1: Switch the filesystem to read-write mode
rw
Step 2: Change the web interface admin password
kvmd-htpasswd set admin
Enter your new password when prompted (you'll need to type it twice for confirmation).
Step 3: Change the root SSH/terminal password
passwd root
Enter your new root password when prompted (type it twice).
Step 4: Change the kvmd OS user password
passwd kvmd
Enter your new kvmd password when prompted (type it twice).
Step 5: Switch back to read-only mode
ro
⚠️ Important Security Notes:
admin password is for the web interfaceroot password is for terminal/SSH accesskvmd password is for the system userConfigure your PiKVM settings through the web interface:
If your PiKVM has an OLED display, you'll need to enable it in the configuration:
Important: Make sure you're logged in as root. If you're using the web terminal or SSH and not already root, run su - first.
rwnano /etc/kvmd/override.yamlkvmd:
info:
meta:
server:
host: pikvm
kvmd-vnc:
enabled: true
kvmd-ipmi:
enabled: true
otg:
devices:
keyboard:
enabled: true
mouse:
enabled: true
leds:
enabled: true
kvmd-oled:
enabled: true
systemctl restart kvmd kvmd-oledroIf your OLED display remains blank after enabling it, try these troubleshooting steps:
Note: For all troubleshooting steps below, you can use either SSH or the web terminal (accessed via the menu in the web interface). The web terminal is often more convenient as you can see both the terminal and your PiKVM interface simultaneously.
Double-check that the OLED is properly connected to the GPIO pins:
Ensure the connections are firm and the display is properly seated.
The I2C interface needs to be properly enabled at the kernel level.
Important: Make sure you're logged in as root. If not, run su - first.
Step 1: Switch to read-write mode
rw
Step 2: Enable the I2C kernel module
echo "i2c-dev" > /etc/modules-load.d/i2c.conf
Step 3: Switch back to read-only mode
ro
Step 4: Reboot your PiKVM
reboot
Check if I2C is enabled in the boot configuration:
cat /boot/config.txt | tail -5
If you don't see dtparam=i2c_arm=on in the output, you need to add it:
Step 1: Switch to read-write mode
rw
Step 2: Add I2C parameter to boot configuration
echo "dtparam=i2c_arm=on" >> /boot/config.txt
Step 3: Switch back to read-only mode
ro
Step 4: Reboot to apply changes
reboot
After rebooting, verify I2C is working.
SSH into your PiKVM and run:
i2cdetect -y 1
You should see a device address (commonly 0x3C or 0x3D). If nothing appears, there's a hardware connection issue or the I2C interface isn't properly enabled.
Check if the OLED service is running:
systemctl status kvmd-oled
If it's not active, enable and start it:
Step 1: Switch to read-write mode
rw
Step 2: Enable and start the OLED service
systemctl enable --now kvmd-oled
The --now flag both enables the service at boot and starts it immediately.
Step 3: Switch back to read-only mode
ro
To ensure the OLED properly displays network information, add the following to your override configuration:
Step 1: Switch to read-write mode
rw
Step 2: Open the configuration file
nano /etc/kvmd/override.yaml
Add or update the kvmd section with OLED network configuration:
kvmd-oled:
enabled: true
kvmd:
oled:
net:
iface: eth0
ipv6: false
This configuration tells the OLED to display information for the eth0 interface and disable IPv6 display (which can help if you're only using IPv4).
Save the file (Ctrl+X, then Y, then Enter).
Step 3: Restart the OLED service
systemctl restart kvmd-oled
Step 4: Switch back to read-only mode
ro
Ensure your /etc/kvmd/override.yaml file has correct YAML syntax (proper indentation is crucial):
Step 1: Switch to read-write mode
rw
Step 2: Validate the configuration
kvmd -m
This command validates your configuration. Fix any errors it reports.
Step 3: Switch back to read-only mode
ro
Some OLED displays use different I2C addresses. Edit the override file:
Step 1: Switch to read-write mode
rw
Step 2: Open the configuration file
nano /etc/kvmd/override.yaml
Try specifying the address explicitly:
kvmd-oled:
enabled: true
bus: 1
address: 0x3C # Try 0x3D if this doesn't work
Save the file (Ctrl+X, then Y, then Enter).
Step 3: Switch back to read-only mode
ro
Review the OLED service logs for specific error messages:
journalctl -u kvmd-oled -n 50
Look for I2C communication errors or initialization failures.
/etc/kvmd/override.yamlping pikvm.local or check your routerIf you have ATX power control wiring, you can remotely power on/off your computer:
/etc/kvmd/override.yaml to enable ATX controlsVNC provides an alternative way to access your remote system:
kvmd-vnc:
enabled: true
port: 5900
auth:
vncauth:
enabled: true
IPMI compatibility allows PiKVM to work with tools like ipmitool:
kvmd-ipmi:
enabled: true
port: 623
systemctl disable sshdpikvm-update monthly to keep system updated# Switch to read-write mode
rw
# Switch to read-only mode
ro
# Restart PiKVM services
systemctl restart kvmd
# Check service status
systemctl status kvmd
# View real-time logs
journalctl -u kvmd -f
# Update system
pikvm-update
# Validate configuration
kvmd -m
# Reboot PiKVM
reboot
# Check I2C devices
i2cdetect -y 1
# Test OLED manually
systemctl restart kvmd-oled
Now that your PiKVM is set up, here are some powerful ways to use it:
Scenario: Managing servers in a data center, colocation facility, or remote office.
Real-world example: Your server won't boot due to a kernel panic. With PiKVM, you can see the exact error message, boot into single-user mode, and fix the issue - all from home.
Scenario: Installing or reinstalling operating systems on remote machines.
Real-world example: Need to install Ubuntu Server on a remote machine? Upload the ISO through the web interface, mount it as a virtual USB drive, reboot the system, and complete the installation as if you were sitting in front of it.
Scenario: Managing multiple test systems and learning environments.
Real-world example: Testing a new Proxmox cluster setup? Use PiKVM to configure multiple nodes, access their BIOS for boot order changes, and troubleshoot any boot issues without constantly running between machines.
Scenario: Managing high-performance gaming or workstation PCs.
Real-world example: Your gaming PC freezes while you're away from home. Use PiKVM to force a hard reboot, watch it boot up, and boot into safe mode to disable the problematic driver.
Scenario: Providing IT support for small offices or clients.
Real-world example: A client's computer won't start Windows. Instead of driving to their office, use PiKVM to diagnose the boot issue, access Windows recovery, and repair the boot configuration remotely.
Scenario: Managing routers, firewalls, and network appliances.
Real-world example: You accidentally misconfigure your pfSense firewall and lose network access. PiKVM lets you see the console output, boot into single-user mode, and restore the previous configuration.
Scenario: Managing mining rigs that need frequent BIOS tuning.
Scenario: Developers working with embedded systems or bootloaders.
Scenario: Enterprise disaster recovery planning.
Scenario: Teaching system administration or IT courses.
Setting up a PiKVM opens up powerful remote management capabilities for your servers and computers. While the initial setup requires some technical knowledge, following these steps carefully will result in a reliable KVM-over-IP solution. Remember to prioritize security by changing default passwords and keeping your system updated.
If you encounter issues not covered in this guide, the PiKVM community is active and helpful on their Discord server and GitHub discussions. Don't hesitate to reach out for support.
Happy remote managing!
Have questions or additional troubleshooting tips? Leave a comment below and help fellow PiKVM users!