Yocto Project Summit 2023.11

Integrating VNC in Weston with the Yocto Project and OpenEmbedded
11-30, 15:20–15:50 (UTC), Nanbield

Weston 12 introduces a groundbreaking and long anticipated feature - VNC support. This allows remote connection and control through graphical desktop sharing though Virtual Network Computing (VNC).

We delve into the technical aspects, explaining how the VNC backend in Weston 12 depends on Neat VNC and AML libraries, offering TLS support and user authentication. Using the Yocto Project and OpenEmbedded we will build core-image-weston for popular development boards and set up TLS certificate. A step by step tutorial will be provided to demonstrate remote connection from another computer using Vinagre, an open-source VNC client for the GNOME Desktop.

This presentation is designed to be inclusive, catering to both newcomers and experienced developers interested in Wayland and Weston integration in the Yocto Project. It aims to simplify the process of setting up the VNC backend in Weston and empower developers to utilize this powerful feature seamlessly within their projects.


After several years of development, VNC support has been introduced as a new feature in Weston 12, which was released on May 17, 2023. This release includes a VNC backend that enables remote control through graphical desktop sharing. Notably, this marks the second Weston backend for remote connections with a graphical interface, as previous versions already supported RDP (Remote Desktop Protocol).

The VNC backend in Weston 12 relies on two key libraries: Neat VNC and AML. It features TLS support and user authentication. Neat VNC is a VNC server library with a liberal license and a clean interface. AML, which stands for Andri's Main Loop, is a dependency for Neat VNC. Both of these projects were initiated by Andri Yngvason, and their source code is available on GitHub under the ISC License.
Shortly after the release of Weston 12, the recipe in openembedded-core was updated to accommodate it. This update is included in Yocto release Nanbield 4.3 and Poky, which is the Yocto Project's reference distribution. It's important to note that the VNC backend is available as an optional configuration for PACKAGECONFIG, but it is not enabled by default. To build it, you'll need the Neat VNC and AML recipes, which have already been submitted by Leon Anavi to the meta-oe layer. Additionally, remember that you must explicitly enable TLS in neatvnc's PACKAGECONFIG to utilize the TLS support and user authentication in Weston's VNC backend.

This presentation aims to demonstrate the practical use of the Yocto Project for building a core-image-weston with a VNC backend, enabling remote graphical desktop sharing. The demonstrations will showcase popular development boards, including the Raspberry Pi with the BSP layer meta-raspberrypi, Radxa ROCK 4 B with the BSP layer meta-rockchip, and Toradex Verdin i.MX8M Plus with Toradex and NXP BSPs. The presentation will provide a step-by-step walkthrough for generating certificates and establishing connections using Vinagre, an open-source VNC client for the GNOME Desktop.

The presentation is suitable for anyone interested in Wayland and Weston, and no prior experience with VNC is required. This talk will illustrate how to set up the VNC backend in Weston and simplify the initial setup process for those interested in using it.

See also: