Skip to content

tobychui/DezKVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title

DezKVM — The DIY Multi-Port IP-KVM

DezKVM is an open-source, ultra-low-cost multi-port IP-KVM designed to run on standard Linux systems.

Instead of using HDMI to CSI adapter or proprietary capture hardware, DezKVM uses fully USB-based components supported by upstream Linux drivers (V4L2 and ALSA). This means the system runs on common embedded platforms such as SBCs and mini PCs without requiring any kernel patches or vendor drivers.

The goal of DezKVM is simple:

Make scalable IP-KVM infrastructure affordable, hackable, and easy to build using commodity hardware.

Warning

This project is in its very early stage and not production ready. Use with your own risk.

If you are looking for a KVM over USB or USB-KVM device, visit DezKVM Go Project.

Why DezKVM Exists

Existing DIY solutions significantly reduce cost compare to commercial solutions, but many still rely on custom kernels, specific SBC provided IO, or tightly coupled hardware platforms.

DezKVM takes a different approach.

Instead of reinventing drivers or hardware stacks, DezKVM builds entirely on top of standard USB devices already supported by Linux:

  • USB Video - handled by upstream V4L2
  • USB Audio - handled by ALSA
  • USB HID - physical, off-the-shelf UART to HID ASIC
  • USB ATX - communicate to host software using USB CDC
  • All connected using a standard USB 2.0 hub

Because of this design philosophy:

  • No custom kernel patches / proprietary drivers
  • Works on most Linux SBCs and mini PCs (as host)
  • High compatibility on different (remote) computers
  • Easy multi-port scaling

Comparison

Feature DezKVM PiKVM JetKVM GL.iNet KVM
Open Source ✅ Fully ✅ Mostly ⚠️ Partial ❌ No
DIY Friendly ✅ Yes ✅ Mostly (v1 & v2) ❌ No ❌ No
Multi-Port Support ✅ Scale using USB hubs ⚠️ Expensive KVM Switch required ❌ Single Target ❌ Single Target
Multi-View Support ✅ Yes ⚠️ Require switching ❌ No ❌ No
Hardware Lock-in ❌ None ⚠️ Raspberry Pi ✅ Vendor HW ✅ Vendor HW
Uses Standard Linux Drivers ✅ Yes ⚠️ Partial ❌ Custom Stack ❌ Proprietary
Custom Kernel Required ❌ No ⚠️ Sometimes ✅ Yes ✅ Yes
Cost per Remote ⭐ Very Low Medium High High
Offline Operation ✅ Yes ✅ Yes ✅ Yes ✅ Yes
Hackable / Extendable ✅ High Medium Low Very Low

Build

Dezkvmd (DezKVM daemon)

The Dezkvmd is a golang written piece of code that runs on a x86 or ARM computer with Debian based Linux installed. Require v4l2 and alsa with kernel 6.1 or above.

To build the Remdeskd, you will need go compiler. The go package manager will take care of the dependencies during your first build.

cd dezkvmd/
go mod tidy
go build

sudo ./dezkvmd
# or use ./dezkvmd -h to show all start options

Setup Systemd Service

Create a systemd service file at /etc/systemd/system/dezkvmd.service:

[Unit]
Description=dezKVM IP-KVM Daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/path/to/DezKVM/src/dezkvmd
ExecStart=/path/to/DezKVM/src/dezkvmd/dezkvmd -mode=ipkvm
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Replace /path/to/dezKVM with the actual path to your dezKVM installation directory.

Then enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable dezkvmd
sudo systemctl start dezkvmd

Check the service status:

sudo systemctl status dezkvmd

Install Dependencies

Some packages are required to run DezKVM (Require Linux kernel 6.1 or above, Debian based distro recommended). If your go build command above failed due to missing v4l2 types or user space properties, you can install the dependencies by running the following command.

sudo apt install build-essential libv4l-dev v4l-utils 

If your system fail to capture audio output from remote device, or show invalid audio device properties, install the missing alsa utilities with the following command.

sudo apt install alsa-utils

(Or you can just run both before go build, I mean why not? )

Hardware

Build your own hardware

See hardware/README.md

Onboard ATX Controller Firmware Flashing

See firmware/README.md

Usage

Video Capture Configs

By default, MS2109 HDMI capture card support the following resolutions. If you are connecting to your DezKVM via the internet (not recommended), pick a resolution and fps combination that best fit your network upload bandwidth. If you are using your DezKVM within your internal management network, you can just pick the FHD 25 / 30fps option since local area network are at least 100mbps at the time of writing.

// FHD
1920 x 1080 30fps = 50Mbps
1920 x 1080 25fps = 40Mbps
1920 x 1080 20fps = 30Mbps
1920 x 1080 10fps = 15Mbps

// HD
1360 x 768 60fps = 28Mbps
1360 x 768 30fps = 25Mbps
1360 x 768 25fps = 20Mbps
1360 x 768 20fps = 18Mbps
1360 x 768 10fps = 10Mbps

USBKVM-App

The USBKVM-App is a debug tool for the USB-KVM section of the DezKVM build that also serve as a USB-KVM viewer. It is used for checking if the USB-KVM subsystem works before integrating into a larger IP-KVM system. See tools/usbkvm-app/ for more information.

Screenshots

image-20260226202939742

image-20260226203132579

image-20260226202825231

License

DezKVM Copyright (C) 2025 Toby Chui

DezKVM is free software; You can redistribute it and/or modify it under the terms of:

  • the GNU Affero General Public License version 3 as published by the Free Software Foundation. You don't have to do anything special to accept the license and you don’t have to notify anyone which that you have made that decision.

DezKVM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See your chosen license for more details.

You should have received a copy of both licenses along with DezKVM. If not, see http://www.gnu.org/licenses/.

Note: There will be no support if you are using 3rd party parts or systems. If you are creating a new issue, make sure you are using the official implementation here with the recommended hardware and software setups

About

Open and budget DIY IP-KVM for SFF homelabs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors