This is the daemon process implementation for SakuraKVM VNC Server.
Here is what the SakuraKVM Project is:
SakuraKVM is an out-of-the-box, all-in-one keyboard and mouse video over IP solution.
The KVM over IP, which means keyboard, video, and mouse, is controlled by a simple network port,
Allows you to control your device remotely instead of sitting in front of the device itself.
This is an IoT hardware project, we aimed to provide a simple, easy-to-use, and cross-platform solution for KVM over IP.
This project is still under development, want's to contribute? Feel free to make an pull request!
- ✅ High performance video streaming, up to 35+ FPS
- ✅ Low latency, less than 100ms in local network
- ✅ Capture HDMI video up to 1080p
- ✅ Hardware H.264 encoding, super low CPU usage, no lag
- ✅ Standard VNC RFB protocol, compatible with most VNC client which support H.264 encoding
- ✅ USB gadget support, keyboard and mouse remote control from vnc client
- ✅ BIOS level remote control, even your OS is crashed, you can still remote control your device
- ✅ Works on local network, no account registration is required, even we provide a cloud service, but it's optional
- ✅ Fully open source, anythings you want to change, anythings you can change it
- libvncserver-sakura, which is a forked version of libvncserver we provided, is required and has to be installed first. You can find it here. Follow the instructions in the README.md of libvncserver-sakura to install it.
- libcedarc, the user-space allwinner Cedar video engine library (This is a closed-source lib from allwinner, but we don't have other choices), is required and has to be installed. You can find it here. Install it with the following command:
$ sudo ./configure --host=arm-linux-gnueabi \ LDFLAGS="-L/root/libcedarc/library/arm-linux-gnueabi" \ CC=gcc \ CCAS=gcc\ CPP="gcc"\ CXX=g++\ CXXCPP="cpp" $ sudo make CFLAGS="-w" # disable the warning due to allwinner's stupid strncpy problem $ sudo make install $ sudo cp library/arm-linux-gnueabihf/* /usr/local/lib/ $ sudo cp include/* /usr/include/ $ sudo cp openmax/include/* /usr/include/
- Build this project with the following command:
$ git clone https://github.com/PaserTech-Hardware/SakuraKVM-VNC $ make
- All done, you can find the binary file in
bin/
directory.
Licensed under GPLv2, which is the same as Linux kernel.
Not including Allwinner's libcedarc, which is closed source but we only use as a dynamic library,
so it's not a GPL compatible problem.
Thanks everyone who helped with this project (in no particular order):
- libvncserver, the original libvncserver project, provide a great VNC server library.
- ssp97, helped a lot with cedar video engine, android ion driver, etc.
- aodzip, provided a allwinner libcedarc library.
- TheSnowfield, helped a lot with the VNC protocol, hardware design, testing, etc.
- ... And many others who helped with this project, but does not want to show their name here.
- ... And YOU ❤, use this project, star this project, or even contribute to this project, all of these are the best support for us.