DIY Build your own KVM/IP
Tags: diy, linux
Published: 2021-02-21 00:56:09

There are 100+ reasons to own a KVM device. Owning one that connects over IP makes working on PCs that much easier. Building your own is not only cost-effective but is a great DIY project to take on. from having not having to dig out a spare keyboard, mouse and monitor to work on a project or someone else's tower, to being able to manage a headless home server without VNC/RDP, having a KVM that works over IP can be a godsend. The coolest part about this project, is that it is over the counter parts, with well-supported open-source software, and costs under 100 dollars (while commercially sold products right now start over $500)  I'll first go over by build, and then my experience so far with the device. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oowm5q2f3o7zap19zma6.jpg)
First is the hardware. The main brains of this is a Raspberry Pi 4 2 gig edition. I was going to use the 4 gig version I already own, but I have plans for that machine. I also picked up the official Pi case and fan (I plan on removing the fan since I am getting a lot of noise out of it{EDIT 2021-02-28 The system gets really warm/hot without the fan. Keep the fan}) and an HDMI USB capture card. There is also the USB Type C cable (specifically USB C to USB A cable) that powers and controls the remote PC. The directions I followed say you should use a USB splitter for power and data, but my current setup works fine with one cable.

Hardware
- USB HDMI Capture [Amazon](https://www.amazon.com/gp/product/B08C9FCF2X/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1) $18.99
- Raspberry Pi 4 2 gig [Adafruit]()$35.00
- Pi 4 Case -Adafruit- $6.00
- Pi Fan -Adafruit- $5.00
- MicroSD card $0 - Already owned
- Cable - $0 - Already Owned

Total Cost $64.99 (and then shipping)

If you need to buy the card and cable, it might add on an extra $10-15 bucks for the build. 

Software. I used the guide provided at [https://pikvm.org/](https://pikvm.org/). One note, I did find that the USB capture device did not want to work on USB3, and I needed to use USB2 for it to pick up the video signal. I also found that updating the software would wipe my WIFI user name and password. Since I am using this wirelessly, it's kind of important I have this. To Install, I followed the directions posted here [https://github.com/pikvm/pikvm/blob/master/pages/flashing_os.md](https://github.com/pikvm/pikvm/blob/master/pages/flashing_os.md). Make darn sure you download the For HDMI-to-USB dongle image. I wasted about an hour using the wrong image. Once the software is loaded on the SD card. remove and reinsert it back on your PC so you have access to enter your WIFI SSID and Password if you do plan on using this wirelessly. Remove the SD card and add it to your pi. If you are starting this headless, wait about 10 minutes and just unplug it. If you do have a micro HDMI to HDMI adaptor to hook up to a monitor, wait until it appears both drives have been mounted on the box (takes maybe 2-3 minutes) and unplug the machine. Plug it back in and navigate in your browser on another machine to the IP address listed by your router of the device. The directions indicate you can navigate to the machine name, but for whatever reason, it did not want to name my machine correctly, so the directions they gave did not work. Default Username and Password are both admin. I would HIGHLY recommend changing this if for whatever reason you want to run this outside your network.  

That should be it! you now should have a KVM that you can control anywhere on your network using either VPN or any html5 (modern) browser. 

Now onto the boring stuff. Why did I build one of these. Well, I do have headless machines that I run daily. I am currently running a Windows 10 box performing Folding at Home operations. This PC is running the home edition (ruling out RDP) and the VPN software I installed likes to crash at the worst times. Having this device hooked up to the machine gives me the option to be able to control it anywhere in my home network (and check to see if it needs updates or has any prompts.) On top of that, my Linux Machine I was running Linux Mint on (and migrated to Ubuntu Server edition) would randomly crash or freeze. I would need to reboot the machine to see the root problems and go through the GUI sometimes to get it up and running again (like when it wouldn't want to boot and I would be required to run fsck on the device to get it to work). I don't care what VPN software you use, if the machine won't boot, you need to hook up a keyboard and mouse to it. With this device, I can just plug it in, and since it is independent of the main device, I'd be able to access any prompts or even the BIOS without the need of wiring up a keyboard mouse and monitor to it. 

Overall I am impressed with the software. It runs a bit laggy, but it does work on my browser without the need of installing any 3rd party controls like ActiveX or Silverlight. I haven't tried the functionality of being able to mount a virtual disk over USB, but it's nice that they offer it.