A VNC server for DRM/KMS capable GNU/Linux devices
Go to file
2023-05-24 14:41:22 +08:00
CMakeLists.txt vaapi: wip 2023-04-29 11:44:15 +08:00
drm.c allow DRM_FORMAT_MOD_LINEAR on nvidia 2023-05-24 14:41:22 +08:00
drm.h vaapi: wip 2023-04-29 11:44:15 +08:00
input.c fix bugs 2023-05-07 00:57:26 +08:00
input.h vaapi: wip 2023-04-29 11:44:15 +08:00
keymap.c vaapi: wip 2023-04-29 11:44:15 +08:00
keymap.h vaapi: wip 2023-04-29 11:44:15 +08:00
kmsvnc.c support RGB32_10 pixfmt 2023-05-07 18:10:48 +08:00
kmsvnc.h support RGB32_10 pixfmt 2023-05-07 18:10:48 +08:00
LICENSE add wakeup option 2023-05-05 00:50:27 +08:00
README.md add wakeup option 2023-05-05 00:50:27 +08:00
va.c support RGB32_10 pixfmt 2023-05-07 18:10:48 +08:00
va.h vaapi fix 2023-04-29 16:29:44 +08:00

kmsvnc

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.