Wayland/weston, Qt and RDP connection...

2023-01-13 Thread Matti Ristimäki
Hi,

Any tips, where/how to debug RDP related problem with Wayland/Weston. Not kind 
of sure if this is Weston problem or Qt problem...

Goal:
Trying to create a RDP connection to a Qt GUI-application.


[Service]
# Requires systemd-notify.so Weston plugin.
Type=notify
EnvironmentFile=/etc/default/weston
ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log 
--modules=systemd-notify.so --modules=screen.share.so


Problem:
Seems, that the Qt application doesn't start after adding the 
"--modules=screen.share.so" to services. And it doesn't start:

root@sm2s-imx8mp:~# journalctl -u cpx.service
-- Journal begins at Fri 2023-01-13 08:19:03 CET, ends at Fri 2023-01-13 
10:26:26 CET. --
Jan 13 08:20:06 sm2s-imx8mp systemd[1]: Started CPX Control Panel.
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.core.logging: Loading "logging.ini" 
...
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: Failed to create wl_display (No such 
file or directory)
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: EGL: Warning: No default display 
support on wayland
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.qpa.wayland: EGL not available
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.qpa.plugin: Could not load the Qt 
platform plugin "wayland-egl" in "" even though it was found.
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: This application failed to start 
because no Qt platform plugin could be initialized. Reinstalling the app>
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: Available platform plugins are: 
wayland, offscreen, vnc, minimal, minimalegl, vkkhrdisplay, eglfs, waylan>
Jan 13 08:20:06 sm2s-imx8mp cpx.sh[764]: /opt/cpx/cpx.sh: line 84:   769 
Aborted ./cpx --display=LVDS-1 --rotate=0 "$@"
Jan 13 08:20:06 sm2s-imx8mp systemd[1]: cpx.service: Main process exited, 
code=exited, status=134/n/a
Jan 13 08:20:06 sm2s-imx8mp systemd[1]: cpx.service: Failed with result 
'exit-code'.


Basic overview:

Running "first" weston with...
drm-backend
screen-share
Qt-application (CPX Control Panel is the Qt application)

...and when the screen.share.so starts the "second" Weston, a RDP command is 
executed from weston.ini*
rdp-backend
fullscreen-shell


*=weston.ini will run the rdp-backend.so

[screen-share]
command=@bindir@/weston --backend=rdp-backend.so 
--rdp-tls-cert=/data/etc/ssh/tls.crt --rdp-tls-key=/data/etc/ssh/tls.key 
--shell=fullscreen-shell.so --no-clients-resize --no-config
start-on-startup=true



More about platform(iMX8, Poky (Yocto Project Reference Distro)) and Qt debug 
print can be found at:

https://forum.qt.io/topic/142178/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-wayland-egl-in-even-though-it-was-found



BR,


-Matti


Matti Ristimäki
Test Engineer
Dental Care Units & CAD/CAM Division

This e-mail may contain confidential or privileged information and is intended 
solely for the person to whom it is addressed. If you have received this e-mail 
in error, please notify the sender immediately and destroy this e-mail. Any 
unauthorized copying, disclosure or distribution of the material in this e-mail 
is strictly forbidden. We will not be liable for direct, indirect, special or 
consequential damages arising from the alteration of this e-mail, or as a 
result of any virus being passed on or as of transmission of this e-mail in 
general.


Re: Wayland/weston, Qt and RDP connection...

2023-01-13 Thread Marius Vlad
On Fri, Jan 13, 2023 at 12:13:41PM +, Matti Ristimäki wrote:
> Hi,
Hi,
> 
> Any tips, where/how to debug RDP related problem with Wayland/Weston. Not 
> kind of sure if this is Weston problem or Qt problem...
> 
> Goal:
> Trying to create a RDP connection to a Qt GUI-application.
What do you mean exactly?  Don't you mean the other way around?

Weston starts with the RDP backend and you connect to it with a client
that knows about the RDP protocol. Who is the client and who's the
server in your case? It is no clear what you are trying to achieve.
> 
> 
> [Service]
> # Requires systemd-notify.so Weston plugin.
> Type=notify
> EnvironmentFile=/etc/default/weston
> ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log 
> --modules=systemd-notify.so --modules=screen.share.so
This might be a long shot but it is screen-share.so (hyphen).
> 
> 
> Problem:
> Seems, that the Qt application doesn't start after adding the 
> "--modules=screen.share.so" to services. And it doesn't start:
Yeah, same issue here.
> 
> root@sm2s-imx8mp:~# journalctl -u cpx.service
> -- Journal begins at Fri 2023-01-13 08:19:03 CET, ends at Fri 2023-01-13 
> 10:26:26 CET. --
> Jan 13 08:20:06 sm2s-imx8mp systemd[1]: Started CPX Control Panel.
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.core.logging: Loading 
> "logging.ini" ...
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: Failed to create wl_display (No such 
> file or directory)
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: EGL: Warning: No default display 
> support on wayland
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.qpa.wayland: EGL not available
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: qt.qpa.plugin: Could not load the Qt 
> platform plugin "wayland-egl" in "" even though it was found.
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: This application failed to start 
> because no Qt platform plugin could be initialized. Reinstalling the app>
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[769]: Available platform plugins are: 
> wayland, offscreen, vnc, minimal, minimalegl, vkkhrdisplay, eglfs, waylan>
> Jan 13 08:20:06 sm2s-imx8mp cpx.sh[764]: /opt/cpx/cpx.sh: line 84:   769 
> Aborted ./cpx --display=LVDS-1 --rotate=0 "$@"
> Jan 13 08:20:06 sm2s-imx8mp systemd[1]: cpx.service: Main process exited, 
> code=exited, status=134/n/a
> Jan 13 08:20:06 sm2s-imx8mp systemd[1]: cpx.service: Failed with result 
> 'exit-code'.
This kind of sounds like there's no Wayland compositor to connect to.
Maybe weston is failing to start because it can't find that module. 

Printing that weston is saying maybe useful. Maybe journalctl -t weston
says something?
> 
> 
> Basic overview:
> 
> Running "first" weston with...
> drm-backend
> screen-share
> Qt-application (CPX Control Panel is the Qt application)
So basically your Qt application is a simple Qt application after all.
> 
> ...and when the screen.share.so starts the "second" Weston, a RDP command is 
> executed from weston.ini*
> rdp-backend
> fullscreen-shell
> 
> 
> *=weston.ini will run the rdp-backend.so
> 
> [screen-share]
> command=@bindir@/weston --backend=rdp-backend.so 
> --rdp-tls-cert=/data/etc/ssh/tls.crt --rdp-tls-key=/data/etc/ssh/tls.key 
> --shell=fullscreen-shell.so --no-clients-resize --no-config
> start-on-startup=true
> 
Right, if you use the screen-share module that would basically run that
command and in turn what would start another weston instance which you
can connect to it with a RDP client. It scrapes off the content and it sends 
it over RDP.
> 
> 
> More about platform(iMX8, Poky (Yocto Project Reference Distro)) and Qt debug 
> print can be found at:
> 
> https://forum.qt.io/topic/142178/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-wayland-egl-in-even-though-it-was-found
> 
> 
> 
> BR,
> 
> 
> -Matti
> 
> 
> Matti Ristimäki
> Test Engineer
> Dental Care Units & CAD/CAM Division
> 
> This e-mail may contain confidential or privileged information and is 
> intended solely for the person to whom it is addressed. If you have received 
> this e-mail in error, please notify the sender immediately and destroy this 
> e-mail. Any unauthorized copying, disclosure or distribution of the material 
> in this e-mail is strictly forbidden. We will not be liable for direct, 
> indirect, special or consequential damages arising from the alteration of 
> this e-mail, or as a result of any virus being passed on or as of 
> transmission of this e-mail in general.


signature.asc
Description: PGP signature