Issue with ApolloX extension and Avalonia GTK MVVM example

Hi everyone,

First, a few details regarding the setup.

I have a IMX8QXP 2 GB SoC mounted on an Iris carrier board running
dunfell/colibri-imx8x/torizon/torizon-core-docker/monthly version: 5.7.0-devel-202206+build.24.

Attached to this is the default 7" capacitive display. I added the following *.dtbo entries to overlays.txt to enable the full display including touch:

fdt_overlays=colibri-imx8x_parallel-rgb_overlay.dtbo colibri-imx8x_atmel-mxt-connector_overlay.dtbo display-lt161010_overlay.dtbo

Afterwards, I calibrated the display via your guide – basically executing:
docker run -ti --rm -e ACCEPT_FSL_EULA=1 -e DISPLAY=DPI-1 --privileged -v /dev:/dev -v /run/udev/:/run/udev/ -v /etc/udev/rules.d:/etc/udev/rules.d torizon/weston-touch-calibrator:$CT_TAG_WESTON_TOUCH_CALIBRATOR

So far, so good, I set up Visual Studio Code with your new ApolloX extension and started with the Avalonia GTK MVVM example. I created the template and executed it locally on my Linux machine first to check if it builds – which it does, and the “Hello Avalonia” window is shown on my PC.

I then set debugging to Torizon ARMv8 and tried to debug the application on the Toradex board itself. VS Code build the images, transferred them and also started the containers on the Toradex board.

So, after 2 minutes, VS Code shows me that I can “debug” with the following message:

You may only use the Microsoft .NET Core Debugger (vsdbg) with Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you develop and test your applications. 

EGL: Warning: No default display support on wayland

However, the screen on the board stays dark. I can see via “docker ps” that both containers (app + Weston) are running, but nothing more.

Is there something I am missing? As starting the calibration container or other basic examples (e.g. bash) manually is working.

Best regards,
Markus

Hi @KidIcarus ,

Welcome to our community! Feel free to explore other topics of interest.

I was able to reproduce your issue using the same SoM (Colibri iMX8X) with an Aster carrier board.

After doing some tests I believe I know what the problem is: The template is using torizonextras/weston:2 instead of torizonextras/weston-vivante:2, which is the image SoMs with Vivante GPU use, like the Colibri iMX8X. This was caused by a bug on a file our templates use, so thanks for reporting it!


The extension should be updated with the correction in the next few days (I’ll update here when this happens), but it won’t affect existing projects, meaning you have two options:

  • Once the update is live, create a new template then copy all data from your existing project to the newer one;

  • Correct your existing project manually:

    • Open <project-dir>/.vscode/tasks.json;
    • Search for a line that has this string:
LOCAL_REGISTRY=${config:host_ip} TAG=arm64 docker-compose up
    • Add GPU=${config:torizon_gpu} before docker-compose up. The line will look similar to this:
"LOCAL_REGISTRY=${config:host_ip} TAG=arm64 GPU=${config:torizon_gpu} docker-compose up -d <project-name>-debug"
    • Save tasks.json, then try debugging again.

One last thing to note: some templates are maintained by Toradex, and some by the community, like the Avalonia GTK MVVM example. Though we can occasionally fix some specific problems with the community templates, Toradex doesn’t actively maintain them.

The community supported templates can be found here GitHub - toradex/vscode-torizon-templates: VS Code Torizon Integrated Development Environment Templates and contributions are very welcome!

Let me know if this helps you in any way.

Best regards,
Lucas Akira

1 Like

Hi @lucas_a.tx,

Thank you for the prompt reply – I changed the code you mentioned now the example works. Great support! We will give back to the community during our evaluation phase and in the future as well. It is important to strengthen such endeavours and community-based projects.

Best regards
Markus

2 Likes

Glad I was able to help!

We will give back to the community during our evaluation phase and in the future as well. It is important to strengthen such endeavours and community-based projects.

We look forward to any contributions you might have!

The extension has been updated with the correction, so future projects should work out-of-the-box now.

Best regards,
Lucas Akira