SlideShare a Scribd company logo
1 of 27
Download to read offline
Screen Sharing on Raspberry Pi 5 Using VNC in
Weston and Wayland with the Yocto Project and
OpenEmbedded
Leon Anavi
Konsulko Group
leon.anavi@konsulko.com
leon@anavi.org
FOSDEM 2024
FOSDEM 2024, Leon Anavi
In Previous Episode
FOSDEM 2024, Leon Anavi
Agenda
 Wayland and Weston
 VNC
 Weston and the Yocto Project Releases
 core-image-weston with VNC demo on
Raspberry Pi 5
FOSDEM 2024, Leon Anavi
Wayland & Weston
 Wayland is a display protocol that specifies the communication between a display
server and its clients
 Started in 2008 with the aim to replace the X Window System in GNU/Linux and
Unix-based distributions
 Security by design through isolation of the input and output of every window
 Weston is the reference Wayland compositor, there are many other compositors
 Weston 13.0 was released on November 27, 2023
FOSDEM 2024, Leon Anavi
Remote Desktop Options in Weston and Wayland
 Remote Desktop Protocol (RDP)
 Virtual Network Computing (VNC)
FOSDEM 2024, Leon Anavi
Virtual Network Computing (VNC)
 Graphical desktop-sharing system based on Remote Frame Buffer protocol (RFB)
 Initially Olivetti Research Laboratory developed and published RFB in 1998, next
versions of the protocol were published by RealVNC Ltd
 Pixel based
 Works with all windowing systems and applications, including MS Windows, Mac
OS, X11 and Wayland
FOSDEM 2024, Leon Anavi
RDP vs VNC
RDP
(Remote Desktop Protocol)
VNC
(Virtual Network Computing)
Protocol ITU-T T.128 Remote Frame Buffer
protocol (RFB)
Type Semantic (aware of controls, fonts
and other graphical primitives)
Pixel based
Weston version 2.0 and newer 12.0 and newer
Weston support
since
2016 2022
FOSDEM 2024, Leon Anavi
VNC in Weston
FOSDEM 2024, Leon Anavi
 VNC in Weston
FOSDEM 2024, Leon Anavi
VNC in Weston
 VNC backend is available in Weston 12 and newer version
 VNC backend for Weston depends on NeatVNC
 NeatVNC is an open source VNC server library with a clean interface, started by
Andri Yngvason with code available at GitHub under ISC license
 NeatVNC has build dependencies on libdrm, meson and pkg-config
 NeatVNC has a runtime dependency on aml (Andri's Main Loop)
FOSDEM 2024, Leon Anavi
The Yocto Project
 Open source collaborative project of the Linux foundation for creating custom
Linux-based distributions for embedded devices using the OpenEmbedded Build
System
 OpenEmbedded Build System includes BitBake and OpenEmbedded Core
 Poky is a reference distribution of the Yocto Project provided as metadata, without
binary files, to bootstrap your own distribution for embedded devices
 Bi-annual release cycle
 Long term support (LTS) release covering two-year period
FOSDEM 2024, Leon Anavi
The Yocto Project Releases
Codename Version Release Date Support Level
Scarthgap 5.0 April 2024
Future – LTS (until
April 2028)
Nanbield 4.3 November 2023 Until May 2024
Kirkstone 4.0 May 2022 LTS (until Apr. 2026)
Dunfell 3.1 April 2020 LTS (until Apr. 2024)
FOSDEM 2024, Leon Anavi
Wayland and Weston in Yocto and OpenEmbedded
 OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded
 OpenEmbedded-Core provides recipes for Wayland and Weston
FOSDEM 2024, Leon Anavi
The Yocto Project, Wayland and Weston Versions
Codename Version Wayland Weston
Scarthgap 5.0 1.22 (?) 13.0.0 (?)
Nanbield 4.3 1.22 12.0.2
Kirkstone 4.0 1.20 10.0.2
Dunfell 3.1 1.18 8.0.0
FOSDEM 2024, Leon Anavi
Bitbaking Weston with VNC
Extend the recipe for building Weston:
 Enable VNC backend:
PACKAGECONFIG:append = " vnc"
This will enable -Dbackend-vnc=true and add neatvnc (from layer meta-oe) as a
build dependency
 Place a PAM configuration file in the package:
FILES:${PN}:append = " ${sysconfdir}/pam.d/weston-remote-access"
 For example, weston_%.bbappend:
https://github.com/leon-anavi/meta-weston-remote-desktop/blob/main/meta-weston-vnc/recipes-graphics/
wayland/weston_%25.bbappend
FOSDEM 2024, Leon Anavi
aml and neatvnc in meta-oe
FOSDEM 2024, Leon Anavi
Bitbaking NeatVNC for Weston with VNC
 Enable TLS:
PACKAGECONFIG:append = " tls"
 libweston/backend-vnc/meson.build from Weston 12 and 13:
dep_neatvnc = dependency('neatvnc', version: ['>= 0.6.0', '< 0.7.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
 libweston/backend-vnc/meson.build from Weston branch main:
dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.8.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
 Select NeatVNC matching Weston requirements, for example:
PREFERRED_VERSION_neatvnc = "git"
FOSDEM 2024, Leon Anavi
weston-init.bbappend
 Set password weston (from mkpasswd -m sha256crypt) for user weston:
WESTONPASSWD = "$5$409x651F5vyY1.4o$Iuplll7/qNSEcflYNjH..0zwylmyLsbZdZGS6hBcro5"
USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G
video,input,render,wayland -p '${WESTONPASSWD}' weston"
 Create a directory on the target device to store TLS key and certificate:
do_install:append(){
install -m 0755 -d ${D}${sysconfdir}/vnc/keys/
chown weston:weston ${D}${sysconfdir}/vnc/keys/
}
FILES:${PN} += "
${sysconfdir}/vnc/keys 
"
FOSDEM 2024, Leon Anavi
TLS security
 Generate a key and certificate files to use with TLS security:
mkdir -p ~/.pki/CA/private/
cd ~/.pki/CA
openssl genrsa -out private/cakey.pem 2048
openssl req -new -x509 -nodes -days 365000 -key private/cakey.pem -out
cacert.pem
openssl genrsa -out tls.key 2048
openssl req -new -key tls.key -out tls.csr
openssl req -new -key tls.key -out tls.csr -subj "/CN=raspberrypi5"
openssl x509 -req -days 365 -in tls.csr -out tls.crt -CA cacert.pem -CAkey
private/cakey.pem
FOSDEM 2024, Leon Anavi
Using VNC on Weston
 Copy tls.crt and tls.key to /etc/vnc/keys on the target device, e.g. Raspberry Pi 5
 Enable VNC screen sharing in /etc/xdg/weston/weston.ini:
[screen-share]
command=/usr/bin/weston --backend=vnc-backend.so
--vnc-tls-cert=/etc/vnc/keys/tls.crt --vnc-tls-key=/etc/vnc/keys/tls.key --
shell=fullscreen-shell.so
 After loading Weston, press ctrl+alt+s to launch screen sharing
FOSDEM 2024, Leon Anavi
VNC Automatic Startup
 Launch Weston with screen-share.so, for example in Weston systemd service:
ExecStart=/usr/bin/weston --modules=systemd-notify.so,screen-share.so
 Add start-on-startup=true to section [screen-share] in weston.ini:
[screen-share]
command=/usr/bin/weston --backend=vnc-backend.so
--vnc-tls-cert=/etc/vnc/keys/tls.crt --vnc-tls-key=/etc/vnc/keys/tls.key --
shell=fullscreen-shell.so
start-on-startup=true
FOSDEM 2024, Leon Anavi
Remote Connection
 From another computer in the same network connect to the embedded device
using a VNC client, for example with vinagre, an open source remote desktop
viewer for Linux and the GNOME Desktop:
vinagre --gtk-vnc-debug
FOSDEM 2024, Leon Anavi
VNC Demo
 Vinagre on Ubuntu
22.04.3 LTS with X11 and
GNOME 42.9
 core-image-weston with
Weston version 12.0.2 on
Raspberry Pi 5 (using BSP
layer meta-raspberrypi)
FOSDEM 2024, Leon Anavi
VNC Frames per Second on Raspberry Pi 5
 With VNC enabled
weston-simple-egl
runs with up to 20fps
on Raspberry Pi 5
FOSDEM 2024, Leon Anavi
QA
 Raspberry Pi 5
 Raspberry Pi 4
 ROCK Pi 4
 Toradex Verdin i.MX8M Plus SoM
 Notes:
As of the moment Weston 12 (or newer) with etnaviv open source driver should
be used on NXP i.MX6, i.MX7, i.MX8, etc.
The fork weston-imx for Vivante proprietary GPU driver hasn’t been upgraded to
Weston 12 yet. Therefore VNC backend is still not available in weston-imx.
FOSDEM 2024, Leon Anavi
Conclusions
 VNC is a pixel based graphical desktop-sharing system
 VNC backend was added in Weston version 12
 VNC backend in Weston depends on NeatVNC and aml
 Generate appropriate key and certificate files for TLS encryption
 The latest versions of the Yocto Project and OpenEmbedded provide the
necessary tools and dependencies to build core-image-weston and to enable VNC
 Layer meta-weston-remote-desktop provides example integrations of both VNC
and RDP in Weston
FOSDEM 2024, Leon Anavi
Thank You!
Useful links
 Wayland
https://wayland.freedesktop.org/
 Weston source code
https://gitlab.freedesktop.org/wayland/weston
 The Yocto Project
https://www.yoctoproject.org/
 The Yocto Project releases
https://wiki.yoctoproject.org/wiki/Releases
 Simple example Yocto/OE layer for VNC and RDP on Weston:
https://github.com/leon-anavi/meta-weston-remote-desktop/tree/main

More Related Content

What's hot

20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作Hirofumi Ichihara
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CDYuta Matsumura
 
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Salesforce Developers Japan
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料Ken SASAKI
 
11月のささみ: pgRoutingって何?
11月のささみ: pgRoutingって何?11月のささみ: pgRoutingって何?
11月のささみ: pgRoutingって何?Taro Matsuzawa
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
katagaitaictf11_misc_ysk
katagaitaictf11_misc_yskkatagaitaictf11_misc_ysk
katagaitaictf11_misc_yskysk256
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring土岐 孝平
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
C/C++とWebAssemblyを利用したライブラリ開発
C/C++とWebAssemblyを利用したライブラリ開発C/C++とWebAssemblyを利用したライブラリ開発
C/C++とWebAssemblyを利用したライブラリ開発祐司 伊藤
 
SlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行しますSlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行しますMamoru Ohashi
 
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリde:code 2017
 

What's hot (20)

20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
C#とJavaの違い
C#とJavaの違いC#とJavaの違い
C#とJavaの違い
 
Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
Automata Invasion
Automata InvasionAutomata Invasion
Automata Invasion
 
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料
プロトコル/NAT/HTTP通信の中身 〜 ネットワーク勉強会資料
 
11月のささみ: pgRoutingって何?
11月のささみ: pgRoutingって何?11月のささみ: pgRoutingって何?
11月のささみ: pgRoutingって何?
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
Having a baby bangla
Having a baby banglaHaving a baby bangla
Having a baby bangla
 
Shortcut methods of english writing for jsc ssc and hsc exam
Shortcut methods of english writing for jsc ssc and  hsc examShortcut methods of english writing for jsc ssc and  hsc exam
Shortcut methods of english writing for jsc ssc and hsc exam
 
katagaitaictf11_misc_ysk
katagaitaictf11_misc_yskkatagaitaictf11_misc_ysk
katagaitaictf11_misc_ysk
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
C/C++とWebAssemblyを利用したライブラリ開発
C/C++とWebAssemblyを利用したライブラリ開発C/C++とWebAssemblyを利用したライブラリ開発
C/C++とWebAssemblyを利用したライブラリ開発
 
Health tips & advice from doctors
Health tips & advice from doctorsHealth tips & advice from doctors
Health tips & advice from doctors
 
SlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行しますSlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行します
 
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
 

Similar to Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yocto Project and OpenEmbedded

Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedLeon Anavi
 
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...Cloud Native Day Tel Aviv
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureLeon Anavi
 
Hyper-V support for OpenStack Grizzly
Hyper-V support for OpenStack GrizzlyHyper-V support for OpenStack Grizzly
Hyper-V support for OpenStack GrizzlyKamesh Pemmaraju
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive KioskLeon Anavi
 
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Dr Nicolas Figay
 
RunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeRunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeStefano Stabellini
 
"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016Phil Estes
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)DynamicInfraDays
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesLeon Anavi
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Issues of OpenStack multi-region mode
Issues of OpenStack multi-region modeIssues of OpenStack multi-region mode
Issues of OpenStack multi-region modeJoe Huang
 
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...Gonéri Le Bouder
 
DockerCon17 - Beyond the backslash
DockerCon17 - Beyond the backslashDockerCon17 - Beyond the backslash
DockerCon17 - Beyond the backslashTaylor Brown
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Kubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchKubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchInfraEngineer
 

Similar to Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yocto Project and OpenEmbedded (20)

Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
 
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
 
Hyper-V support for OpenStack Grizzly
Hyper-V support for OpenStack GrizzlyHyper-V support for OpenStack Grizzly
Hyper-V support for OpenStack Grizzly
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
 
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project
 
RunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeRunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edge
 
BSDcon Asia 2015: Xen on FreeBSD
BSDcon Asia 2015: Xen on FreeBSDBSDcon Asia 2015: Xen on FreeBSD
BSDcon Asia 2015: Xen on FreeBSD
 
OVS-NFV Tutorial
OVS-NFV TutorialOVS-NFV Tutorial
OVS-NFV Tutorial
 
"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016
 
Docker from scratch
Docker from scratchDocker from scratch
Docker from scratch
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
 
How to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux DevicesHow to Choose a Software Update Mechanism for Embedded Linux Devices
How to Choose a Software Update Mechanism for Embedded Linux Devices
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Issues of OpenStack multi-region mode
Issues of OpenStack multi-region modeIssues of OpenStack multi-region mode
Issues of OpenStack multi-region mode
 
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
 
DockerCon17 - Beyond the backslash
DockerCon17 - Beyond the backslashDockerCon17 - Beyond the backslash
DockerCon17 - Beyond the backslash
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Docker con osdk_ver1.0
Docker con osdk_ver1.0Docker con osdk_ver1.0
Docker con osdk_ver1.0
 
Kubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switchKubernetes networking-made-easy-with-open-v switch
Kubernetes networking-made-easy-with-open-v switch
 

More from Leon Anavi

Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Leon Anavi
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Leon Anavi
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLeon Anavi
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware MakersLeon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareLeon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiLeon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Leon Anavi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsLeon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiLeon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareLeon Anavi
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiMaking Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiLeon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxLeon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux DevicesLeon Anavi
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT BrokersLeon Anavi
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiLeon Anavi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source HardwareLeon Anavi
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxLeon Anavi
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiLeon Anavi
 
Open Source Hardware with KiCAD and OSHPark
Open Source Hardware with KiCAD and OSHParkOpen Source Hardware with KiCAD and OSHPark
Open Source Hardware with KiCAD and OSHParkLeon Anavi
 

More from Leon Anavi (20)

Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и Docker
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware Makers
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiMaking Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT Brokers
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry Pi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source Hardware
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry Pi
 
Open Source Hardware with KiCAD and OSHPark
Open Source Hardware with KiCAD and OSHParkOpen Source Hardware with KiCAD and OSHPark
Open Source Hardware with KiCAD and OSHPark
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yocto Project and OpenEmbedded

  • 1. Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yocto Project and OpenEmbedded Leon Anavi Konsulko Group leon.anavi@konsulko.com leon@anavi.org FOSDEM 2024
  • 2. FOSDEM 2024, Leon Anavi In Previous Episode
  • 3. FOSDEM 2024, Leon Anavi Agenda  Wayland and Weston  VNC  Weston and the Yocto Project Releases  core-image-weston with VNC demo on Raspberry Pi 5
  • 4. FOSDEM 2024, Leon Anavi Wayland & Weston  Wayland is a display protocol that specifies the communication between a display server and its clients  Started in 2008 with the aim to replace the X Window System in GNU/Linux and Unix-based distributions  Security by design through isolation of the input and output of every window  Weston is the reference Wayland compositor, there are many other compositors  Weston 13.0 was released on November 27, 2023
  • 5. FOSDEM 2024, Leon Anavi Remote Desktop Options in Weston and Wayland  Remote Desktop Protocol (RDP)  Virtual Network Computing (VNC)
  • 6. FOSDEM 2024, Leon Anavi Virtual Network Computing (VNC)  Graphical desktop-sharing system based on Remote Frame Buffer protocol (RFB)  Initially Olivetti Research Laboratory developed and published RFB in 1998, next versions of the protocol were published by RealVNC Ltd  Pixel based  Works with all windowing systems and applications, including MS Windows, Mac OS, X11 and Wayland
  • 7. FOSDEM 2024, Leon Anavi RDP vs VNC RDP (Remote Desktop Protocol) VNC (Virtual Network Computing) Protocol ITU-T T.128 Remote Frame Buffer protocol (RFB) Type Semantic (aware of controls, fonts and other graphical primitives) Pixel based Weston version 2.0 and newer 12.0 and newer Weston support since 2016 2022
  • 8. FOSDEM 2024, Leon Anavi VNC in Weston
  • 9. FOSDEM 2024, Leon Anavi  VNC in Weston
  • 10. FOSDEM 2024, Leon Anavi VNC in Weston  VNC backend is available in Weston 12 and newer version  VNC backend for Weston depends on NeatVNC  NeatVNC is an open source VNC server library with a clean interface, started by Andri Yngvason with code available at GitHub under ISC license  NeatVNC has build dependencies on libdrm, meson and pkg-config  NeatVNC has a runtime dependency on aml (Andri's Main Loop)
  • 11. FOSDEM 2024, Leon Anavi The Yocto Project  Open source collaborative project of the Linux foundation for creating custom Linux-based distributions for embedded devices using the OpenEmbedded Build System  OpenEmbedded Build System includes BitBake and OpenEmbedded Core  Poky is a reference distribution of the Yocto Project provided as metadata, without binary files, to bootstrap your own distribution for embedded devices  Bi-annual release cycle  Long term support (LTS) release covering two-year period
  • 12. FOSDEM 2024, Leon Anavi The Yocto Project Releases Codename Version Release Date Support Level Scarthgap 5.0 April 2024 Future – LTS (until April 2028) Nanbield 4.3 November 2023 Until May 2024 Kirkstone 4.0 May 2022 LTS (until Apr. 2026) Dunfell 3.1 April 2020 LTS (until Apr. 2024)
  • 13. FOSDEM 2024, Leon Anavi Wayland and Weston in Yocto and OpenEmbedded  OpenEmbedded-Core is a layer containing the core metadata for current versions of OpenEmbedded  OpenEmbedded-Core provides recipes for Wayland and Weston
  • 14. FOSDEM 2024, Leon Anavi The Yocto Project, Wayland and Weston Versions Codename Version Wayland Weston Scarthgap 5.0 1.22 (?) 13.0.0 (?) Nanbield 4.3 1.22 12.0.2 Kirkstone 4.0 1.20 10.0.2 Dunfell 3.1 1.18 8.0.0
  • 15. FOSDEM 2024, Leon Anavi Bitbaking Weston with VNC Extend the recipe for building Weston:  Enable VNC backend: PACKAGECONFIG:append = " vnc" This will enable -Dbackend-vnc=true and add neatvnc (from layer meta-oe) as a build dependency  Place a PAM configuration file in the package: FILES:${PN}:append = " ${sysconfdir}/pam.d/weston-remote-access"  For example, weston_%.bbappend: https://github.com/leon-anavi/meta-weston-remote-desktop/blob/main/meta-weston-vnc/recipes-graphics/ wayland/weston_%25.bbappend
  • 16. FOSDEM 2024, Leon Anavi aml and neatvnc in meta-oe
  • 17. FOSDEM 2024, Leon Anavi Bitbaking NeatVNC for Weston with VNC  Enable TLS: PACKAGECONFIG:append = " tls"  libweston/backend-vnc/meson.build from Weston 12 and 13: dep_neatvnc = dependency('neatvnc', version: ['>= 0.6.0', '< 0.7.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])  libweston/backend-vnc/meson.build from Weston branch main: dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.8.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])  Select NeatVNC matching Weston requirements, for example: PREFERRED_VERSION_neatvnc = "git"
  • 18. FOSDEM 2024, Leon Anavi weston-init.bbappend  Set password weston (from mkpasswd -m sha256crypt) for user weston: WESTONPASSWD = "$5$409x651F5vyY1.4o$Iuplll7/qNSEcflYNjH..0zwylmyLsbZdZGS6hBcro5" USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,wayland -p '${WESTONPASSWD}' weston"  Create a directory on the target device to store TLS key and certificate: do_install:append(){ install -m 0755 -d ${D}${sysconfdir}/vnc/keys/ chown weston:weston ${D}${sysconfdir}/vnc/keys/ } FILES:${PN} += " ${sysconfdir}/vnc/keys "
  • 19. FOSDEM 2024, Leon Anavi TLS security  Generate a key and certificate files to use with TLS security: mkdir -p ~/.pki/CA/private/ cd ~/.pki/CA openssl genrsa -out private/cakey.pem 2048 openssl req -new -x509 -nodes -days 365000 -key private/cakey.pem -out cacert.pem openssl genrsa -out tls.key 2048 openssl req -new -key tls.key -out tls.csr openssl req -new -key tls.key -out tls.csr -subj "/CN=raspberrypi5" openssl x509 -req -days 365 -in tls.csr -out tls.crt -CA cacert.pem -CAkey private/cakey.pem
  • 20. FOSDEM 2024, Leon Anavi Using VNC on Weston  Copy tls.crt and tls.key to /etc/vnc/keys on the target device, e.g. Raspberry Pi 5  Enable VNC screen sharing in /etc/xdg/weston/weston.ini: [screen-share] command=/usr/bin/weston --backend=vnc-backend.so --vnc-tls-cert=/etc/vnc/keys/tls.crt --vnc-tls-key=/etc/vnc/keys/tls.key -- shell=fullscreen-shell.so  After loading Weston, press ctrl+alt+s to launch screen sharing
  • 21. FOSDEM 2024, Leon Anavi VNC Automatic Startup  Launch Weston with screen-share.so, for example in Weston systemd service: ExecStart=/usr/bin/weston --modules=systemd-notify.so,screen-share.so  Add start-on-startup=true to section [screen-share] in weston.ini: [screen-share] command=/usr/bin/weston --backend=vnc-backend.so --vnc-tls-cert=/etc/vnc/keys/tls.crt --vnc-tls-key=/etc/vnc/keys/tls.key -- shell=fullscreen-shell.so start-on-startup=true
  • 22. FOSDEM 2024, Leon Anavi Remote Connection  From another computer in the same network connect to the embedded device using a VNC client, for example with vinagre, an open source remote desktop viewer for Linux and the GNOME Desktop: vinagre --gtk-vnc-debug
  • 23. FOSDEM 2024, Leon Anavi VNC Demo  Vinagre on Ubuntu 22.04.3 LTS with X11 and GNOME 42.9  core-image-weston with Weston version 12.0.2 on Raspberry Pi 5 (using BSP layer meta-raspberrypi)
  • 24. FOSDEM 2024, Leon Anavi VNC Frames per Second on Raspberry Pi 5  With VNC enabled weston-simple-egl runs with up to 20fps on Raspberry Pi 5
  • 25. FOSDEM 2024, Leon Anavi QA  Raspberry Pi 5  Raspberry Pi 4  ROCK Pi 4  Toradex Verdin i.MX8M Plus SoM  Notes: As of the moment Weston 12 (or newer) with etnaviv open source driver should be used on NXP i.MX6, i.MX7, i.MX8, etc. The fork weston-imx for Vivante proprietary GPU driver hasn’t been upgraded to Weston 12 yet. Therefore VNC backend is still not available in weston-imx.
  • 26. FOSDEM 2024, Leon Anavi Conclusions  VNC is a pixel based graphical desktop-sharing system  VNC backend was added in Weston version 12  VNC backend in Weston depends on NeatVNC and aml  Generate appropriate key and certificate files for TLS encryption  The latest versions of the Yocto Project and OpenEmbedded provide the necessary tools and dependencies to build core-image-weston and to enable VNC  Layer meta-weston-remote-desktop provides example integrations of both VNC and RDP in Weston
  • 27. FOSDEM 2024, Leon Anavi Thank You! Useful links  Wayland https://wayland.freedesktop.org/  Weston source code https://gitlab.freedesktop.org/wayland/weston  The Yocto Project https://www.yoctoproject.org/  The Yocto Project releases https://wiki.yoctoproject.org/wiki/Releases  Simple example Yocto/OE layer for VNC and RDP on Weston: https://github.com/leon-anavi/meta-weston-remote-desktop/tree/main