A VNC server for DRM/KMS capable GNU/Linux devices
Find a file
2024-01-23 10:40:41 +08:00
.drone.yml use hardcoded image format by default (github #7) 2023-09-21 16:06:46 +08:00
CMakeLists.txt resolve github #8 2024-01-23 10:40:41 +08:00
drm.c resolve github #8 2024-01-23 10:40:41 +08:00
drm.h proper byte order quirk handling 2023-09-21 20:51:19 +08:00
drm_master.c proper byte order quirk handling 2023-09-21 20:51:19 +08:00
drm_master.h allow screen blank for privacy 2023-08-11 01:34:45 +08:00
input.c initial multi display support 2023-07-15 10:38:48 +08:00
input.h proper byte order quirk handling 2023-09-21 20:51:19 +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 resolve github #8 2024-01-23 10:40:41 +08:00
kmsvnc.h mesa quirk finally fixed 2024-01-23 10:40:35 +08:00
LICENSE add wakeup option 2023-05-05 00:50:27 +08:00
README.md ci config 2023-07-12 17:42:30 +08:00
va.c mesa quirk finally fixed 2024-01-23 10:40:35 +08:00
va.h vaapi fix 2023-04-29 16:29:44 +08:00

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.