/kmsvnc

A VNC server for DRM/KMS capable GNU/Linux devices

Primary LanguageCGNU General Public License v3.0GPL-3.0

kmsvnc

Build Status

Introduction

A VNC server for DRM/KMS capable GNU/Linux devices.
The goal is to simply have a universally working vncserver on X, wayland and even something like your linux VT.
Currently in very early development stage.

Notes

Intel made a great thing called CCS (Color Control Surface), however that won't work with kmsvnc. Please set INTEL_DEBUG=noccs globally, ideally in /etc/systemd/system.conf.d. Manpage is at man 5 systemd-system.conf. For example:

# /etc/systemd/system.conf.d/intel-no-ccs.conf 
[Manager]
DefaultEnvironment=INTEL_DEBUG=noccs

NixOS:

systemd.extraConfig = ''
  DefaultEnvironment=INTEL_DEBUG=noccs
''

If you plan to use the default vaapi driver for Intel and AMD GPUs, please make sure your vaapi configuration is working.
Nvidia support is highly experimental (nvidia-legacy with drm enabled or nvidia-open). Only one X-TILED modifier is supported as of now.

Dependencies

  • cmake
  • libvncserver
  • libxkbcommon
  • libdrm
  • libva

Building

mkdir build
cd build
cmake ..
make

Running

Helps are available via kmsvnc --help.
For example, kmsvnc -p 5901 -b 0.0.0.0 -4 -d /dev/dri/card2
Note that no security is currently supported.