Skip to content

Latest commit

 

History

History
66 lines (57 loc) · 3.96 KB

README.md

File metadata and controls

66 lines (57 loc) · 3.96 KB

🌸 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.