Skip to content

PaserTech-Hardware/SakuraKVM-VNC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌸 SakuraKVM VNC Server Daemon

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!

language compiler license

⚡ Features

  • ✅ ⁠ ⁢⁣⁡⁠ ⁢⁣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

⭐ Build

  1. 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.
  2. 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/
  3. Build this project with the following command:
    $ git clone https://github.com/PaserTech-Hardware/SakuraKVM-VNC
    $ make
  4. All done, you can find the binary file in bin/ directory.

📋 License

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.

🎀 Special Thanks

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.

About

SakuraKVM VNC Server Daemon Implemention (WIP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published