VNC on Torizon/Wayland/Weston

We are currently evaluating the Apalis iMX8QM for our application where the module will be on a mobile crawler
in the development phase and for debugging we would like to run VNC or similar to share the screen via the network interface (wifi).
I have my application running using our own container based of the torizon/arm64v8-debian-weston-vivante image which uses wayland. I can see my application written in Python + PyQt on the screen directly connected.

is there a way to share this screen via VNC. i tried the link suggested in the post here https://qxf2.com/blog/view-docker-container-display-using-vnc-viewer/ but that doesn’t seem to work or i am using it wrong. is it due to fact that wayland doesnt support vnc.

for our application we don’t necessarily need the gpu if that opens up some possibilities.

Greetings @nkj,

I believe you are correct, last time I checked VNC wasn’t supported on wayland. The blog you referenced it would seem they have an X11 environment in their containers.

Let me do some research on options here. As a quick question do you have a hard requirement on VNC specifically? Or will any remote rendering solution work as well?

Best Regards,
Jeremias

By the way as a relevant point have you considered possibly a web UI approach? Meaning it may be possible to have a local and then remote web UI. Or do you truly require a remote render of what the local UI is showing? Just a suggestion if it helps.

Best Regards,
Jeremias

Just to give an update, it truly seems there’s no “easy” remote rendering solution for Wayland at this moment.

Some possible solutions I found include:

  • just running X instead of wayland then VNC should “just work”. However do note that we don’t really support X containers.
  • I’ve read it’s possible to run an X/Xorg server on top of wayland and then use VNC like that but I’ve yet to get this to work myself.

In the meantime I’ve also put this in as a feature request to our team so I’ll let you know if they find anything else as well.

Best Regards,
Jeremias

Just to give an update on this topic, I brought it up with the team internally and they’ll do some research to see what possible solutions could be done here for remote rendering. I’ll let you know if they find anything.

Hi @jeremias.tx,

We are also having requirement of VNC Support as its very helpful in Remote Support to clients.
We have used it extensively in our Yocto based Products and have done the installations/setup remotely.

Any progress regarding this. Currently using/considering Torizon 5.1.0 with Debian Bullseye.

Thanks & Regards,
Pradeep Pol

The feature is planned to be investigated further in detail after the production release of Torizon. Though thank you for expressing your interest in this feature as well.

Best Regards,
Jeremias

hi @jeremias.tx
it doesn’t have to be VNC

that might be the eventual result but for development having a vnc client of sorts helps as we are porting a legacy Windows UI application to run headless

yeah i havent found anything either. its a pitty that NXP doesnt support X11 on iMX8
gnome supports a remote desktop under wayland but thats too much overhead prolly (Debian -- Details of package gnome-remote-desktop in buster)

Hi @nkj / @eklavya19,

This feature is already implemented in TorizonCore.

Please check this tutorial for more information: Remote Access the TorizonCore GUI Using VNC or RDP

Best regards,
André Curvello

Hi @andrecurvello.tx ,

Thanks for the updates. It is very important feature when it comes to Remote Support.

I tested this with latest weston container and found to be working as expected.
Will this work with existing weston container that comes with latest Quarterly image (TorizonCore with evaluation containers 5.1.0+build.1.container)?

Regards,
Pradeep Pol

Hi @eklavya19,

The containers that come with the Quarterly image are pre-packaged at that time and aren’t updated. So if you want this and other recent features you’ll need to perform a docker pull to get the latest version off of our dockerhub.

Best Regards,
Jeremias

Hi @jeremias.tx,

I tested the same and I had to pull latest container to get this feature working.
I would like to know How to override current weston container from the image with latest pulled one. Also let me know if any nightly image is having this feature?

Regards,
Pradeep Pol

The weston image is pulled in via the automated docker-compose service that starts the entire portainer stack. You can edit the docker-compose file for this found at this location here: /var/sota/storage/docker-compose/docker-compose.yml

Or if you want a consistent TorizonCore image with a specific version of a container you can try the steps here: Pre-provisioning Docker Containers onto a TorizonCore image | Toradex Developer Center

This will pre-provision an image with a specific container version.

As for nightly images. We normally don’t pre-provision nightly images with docker containers, only major releases like monthlies or quarterlies. Though of course you can always manually docker pull the latest container, or pre-provision it as I said above.

Best Regards,
Jeremias

Hi @jeremias.tx,

Thanks for the information. I will check.

Best Regards,
Pradeep Pol

You’re welcome!