Add helper to enable both displays in qemu 86/28686/1
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 20 Apr 2023 21:33:56 +0000 (23:33 +0200)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 20 Apr 2023 21:33:56 +0000 (23:33 +0200)
This supports testing the drm-leasemanager in qemu.

We can bring up two outputs, but the 2nd output is disabled until it is connected.
See https://jira.automotivelinux.org/browse/SPEC-4464
and
https://gitlab.com/qemu-project/qemu/-/issues/1107

This adds a helper tool that will bring up the 2nd screen.

Bug-AGL: SPEC-4464
Change-Id: I145a1b947916337daa9c8e7aed38e64919b35df8
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
recipes-graphics/libvncserver/libvncserver_0.9.14.bb [new file with mode: 0644]
recipes-platform/images/agl-cluster-demo-platform.bb
recipes-support/qemu-set-display/qemu-set-display_git.bb [new file with mode: 0644]

diff --git a/recipes-graphics/libvncserver/libvncserver_0.9.14.bb b/recipes-graphics/libvncserver/libvncserver_0.9.14.bb
new file mode 100644 (file)
index 0000000..50bdad5
--- /dev/null
@@ -0,0 +1,52 @@
+DESCRIPTION = "library for easy implementation of a RDP/VNC server"
+HOMEPAGE = "https://libvnc.github.io"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+# ffmpeg support is not currently compatible with ffmpeg 5.0
+PACKAGECONFIG ??= " \
+    24bpp \
+    filetransfer \
+    gcrypt \
+    gnutls \
+    jpeg \
+    lzo \
+    png \
+    pthread \
+    ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \
+    sdl \
+    websockets \
+    zlib \
+"
+
+PACKAGECONFIG[24bpp] = "-DWITH_24BPP=ON,-DWITH_24BPP=OFF,"
+PACKAGECONFIG[filetransfer] = "-DWITH_TIGHTVNC_FILETRANSFER=ON,-DWITH_TIGHTVNC_FILETRANSFER=OFF,"
+PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,ffmpeg"
+PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt"
+PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg"
+PACKAGECONFIG[ipv6] = "-DWITH_IPv6=ON,-DWITH_IPv6=OFF,"
+PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo"
+PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng"
+PACKAGECONFIG[pthread] = "-DWITH_THREADS=ON,-DWITH_THREADS=OFF,"
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
+PACKAGECONFIG[sasl] = "-DWITH_SASL=ON,-DWITH_SASL=OFF,cyrus-sasl"
+PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2"
+PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF,"
+PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+
+PACKAGE_BEFORE_PN = "libvncclient"
+FILES:libvncclient = "${libdir}/libvncclient.*"
+
+inherit cmake
+
+SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https"
+SRCREV = "10e9eb75f73e973725dc75c373de5d89807af028"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DMAKE_INSTALL_LIBDIR=${libdir}"
index f11d883..8a3b9a7 100644 (file)
@@ -15,4 +15,5 @@ IMAGE_INSTALL:append = " \
     packagegroup-agl-cluster-demo-platform \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "cluster-demo-config", "", d)} \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
+    ${@bb.utils.contains("AGL_FEATURES", "AGLCI", "qemu-set-display", "", d)} \
     "
diff --git a/recipes-support/qemu-set-display/qemu-set-display_git.bb b/recipes-support/qemu-set-display/qemu-set-display_git.bb
new file mode 100644 (file)
index 0000000..870ac6b
--- /dev/null
@@ -0,0 +1,14 @@
+DESCRIPTION = "Helper tool to enable the secondandary vnc displays"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+
+SRC_URI = "git://github.com/dhobsong/qemu-set-display.git;protocol=https;branch=main"
+SRCREV = "${AUTOREV}"
+S = "${WORKDIR}/git"
+
+DEPENDS += "libvncserver"
+
+inherit meson pkgconfig
+
+PV = "0.1+git${SRCPV}"