This repository contains source code for a SKVMOIP for Windows and Linux platforms written in C++.
There are many options available in the market for KVKM over IP, however most of them are either made for a corporate or very expensive for individuals - and still not scalable enough. Many people have built cheap solutions such as PiKVM and TinyPilot - but I still find them expensive given that they can only support one machine and one would need to spend more money to replicate over multiple machines.
Therefore, I started this project to invent a Scalable KVM Over IP software suite we can be installed on cheap hardware modules and on a client computer. This KVMK Over IP is scalable to any size because it uses ethernet wiring to communicate with the computers/servers with only one Encoder Server; hence no need to replicate the "pricy" hardware for each machine to be managed.
- Keyboard Over IP, works even to boot systems into their BIOS and without any software installed on the target system.
- Mouse Over IP, works even in the BIOS of the systems and without any software installed on the target system.
- Video Over IP, works even before the system boots and without any software installed on the target system.
- Power/Reset/HDDLED/PowerLED Over IP, turn On or Off the systems remotely just like you do onsite by pressing the power button.
- Easy to use Client software for Windows and Linux platforms.
- Firmware Software for STM32401CCU6 and W5500 WizChip
- Client Software for a Client Computer.
- Server Software for HDMI stream Encoder Server.
- STM32F401CCU6 Microcontroller
- W5500 Wizchip Ethernet Module
- ST Link Programmer
- HDMI capture device
- A Video Encoder server computer (usually a mini PC with enough processing power, more quantitative data will be added here in future).
- A client computer either running Windows or Linux.
Installing and setting up the software suite is easy to follow and requires no special technical knowledge.
Clone this repository:
$ git clone https://github.com/ravi688/SKVMOIP
Connect GND and 3.3 Vcc pins of the W5500 to the GND and 3.3 Vcc pins of STM32 MCU. Now check if the W5500 and STM32 MCU both are powering on (the red lights should light up on both).
Connect the MOSI, MISO, and CLOCK pins of the W5500 to the SPI1 pins of the STM32 MCU.
Connect the RST pin of W5500 to the one of the GPIO pins of STM32 MCU to enable reset function trigger from the STM32 MCU.
Install STM32Cube IDE in any Windows Computer, and load the project under the directory SKVMOIP/Firmware/STM32F401CCU6
Press the key combination Windows Logo Key + B
to build the project and make sure there are no build errors.
Now, plug the ST link programmer to one of the USB ports of the computer (on which STM32Cube IDE has been installed).
NOTE: Before plugging the ST link programmer, make appropriate connections to the microcontroller's pins from some online guides.
Click on the Run
tab on the menu bar on the top, and select run
to build and upload the executable on the Microcontroller.
It requires building the server executable first and then deploying it to the encoder server computer.
cd SKVMOIP
./build.sh BUILD=server PLATFORM=Windows INSTALLER=1
cd build/Windows
- Now double click on
SKVMOIP_Server_Installer.exe
to execute the installer as usually you do to install any other Windows software package.
It requires buildilng the installer first and then executing the installer to install the client in Windows.
cd SKVMOIP
./build.sh PLATFORM=Windows INSTALLER=1
cd build/Windows
- Now double click on
SKVMOIP_Installer.exe
to execute the installer as usually you do to install any other Windows software package.
It is rather identical to Windows case above.
cd SKVMOIP
./build.sh PLATFORM=Linux INSTALLER=1
cd build/Linux
sudo dpkg -i ./SKVMOIP_Installer.deb
- Add HDMI Routing over IP support to scale Video Over IP across local networks (as LANs are very fast, can handle the RAW HDMI data).'
- Add support for USB Mass Storage over IP to enable the host computer boot from a remote USB flash drive or Computer acting as a USB flash drive. However, PXE boot already exists.
- Add support for Audio Over IP
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
(See: LICENSE file, for more info)