Hello, I know this is going to sound very basic, but I’ve been going through your docs for a few days now and I’ve had a really hard time getting up and running. I’ve got a new verdin plus with the dev carrier board, and I have run the example qt applications on it, but now I am trying to get my already existing app ported over and it’s been quite arduous. Can someone just put it into very simple terms for me?
I thought I could just reproduce the example of running a browser on the board inside of a docker-compose file instead of running it on the cli, then I could replace the example (calculator in this case) with my app. So I wrote a docker-compose file like this (I am not super great with docker-compose, but this makes sense to me):
matt@matt-X62:~$ cat calc.yml
version: "2.5"
services:
weston:
image: torizon/weston-vivante:2
# Accept the EULA required to run imx8 vivante graphic drivers
environment:
- ACCEPT_FSL_EULA=1
# Required to get udev events from host udevd via netlink
network_mode: host
volumes:
- type: bind
source: /tmp
target: /tmp
- type: bind
source: /dev
target: /dev
- type: bind
source: /run/udev
target: /run/udev
cap_add:
- CAP_SYS_TTY_CONFIG
# Add device access rights through cgroup...
device_cgroup_rules:
# ... for tty0
- 'c 4:0 rmw'
# ... for tty7
- 'c 4:7 rmw'
# ... for /dev/input devices
- 'c 13:* rmw'
- 'c 199:* rmw'
# ... for /dev/dri devices
- 'c 226:* rmw'
command: --developer weston-launch --tty=/dev/tty7 --user=torizon
healthcheck:
test: ["CMD", "test", "-S", "/tmp/.X11-unix/X0"]
interval: 5s
timeout: 4s
retries: 6
start_period: 10s
kiosk:
image: torizon/qt5-wayland-examples-vivante:$CT_TAG_QT5_WAYLAND_EXAMPLES_VIVANTE
security_opt:
- seccomp:unconfined
command: /usr/lib/aarch64-linux-gnu/qt5/examples/widgets/widgets/calculator/calculator
shm_size: '256mb'
device_cgroup_rules:
# ... for /dev/dri devices
- 'c 226:* rmw'
volumes:
- type: bind
source: /tmp
target: /tmp
- type: bind
source: /var/run/dbus
target: /var/run/dbus
- type: bind
source: /dev/dri
target: /dev/dri
depends_on:
weston:
condition: service_healthy
I assumed that this would fail, but there was no apparent way to get an error message out of your gui. It just says “Component Installation Failed”.
I read through some more documentation then figured I should try the vscode qt plugin, but that was a whole other exercise in failure. Although the plugin does see my board, it can never connect over ssh. It always says:
"[04-12 00:12:25.866] Unreachable devices:
Toradex Verdin iMX8M Plus WB on Verdin Development Board(14762939)
Make sure the devices are turned on and connected to the network"
I can ssh into the board just fine myself. Does it need a specific container running to use this plugin? There’s nothing about that in the docs unless I missed something (I am admittedly bleary-eyed at this point). I re-flashed my verdin with what appeared to be the default torizon image, but now I get no on-screen display. I figured that was fine because I could still ssh in no problem. However, the plugin still can’t ssh into it. Aside from that I try to build the project with the plugin and I get: “Project ERROR: Unknown module(s) in QT: core gui network widgets multimedia multimediawidgets serialport”
Ok, that’s fine, there’s an over-edited and very blurry video in the instructions that shows I have to list these in devpackages. I painstakingly copy and paste about 30 dependency names in that tiny text input and run it again. Apt goes through and installs everything and right when it finishes vs code goes all blank and says there was a container error. There’s no more detail than that. All I can do is try to build it again, and I’m now stuck in a loop.
When I open the project I get a warning that says: “Current configuration has been changed, you may need to do a clean rebuild of your code to ensure that the generated binaries match the currently selected architecture.”
Isn’t building the project what I’m trying to do currently? I’m not really sure what this is intended to convey.
Anyway, all I really want to know is that I’m headed in the right, or at least a useful direction. I’m not complaining really, because I recognize that it’s sort of assumed I’ll have the knowledge to fill in some of these gaps, but I guess I just don’t. Can someone point me to some clear instructions on what I’m missing here?