Docker build error arm64v8-debian-weston-vivante:buster

When trying to build a docker image based from torizon/arm64v8-debian-weston-vivante:buster i get the following error

Errors were encountered while processing:
/tmp/apt-dpkg-install-8EbM7S/168-libgl-vivante1_6.2.4.p4.8-1_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Below is the docker file i am using. it was working two months ago roughly.

FROM torizon/arm64v8-debian-weston-vivante:buster 
RUN apt-get -y update && apt-get install -y \
    dialog

RUN apt-get install -y \
    python3-pyqt5 \
    python3-pip \
    python3-opencv \
    python3-setuptools \ 
    python3-numpy \
    python3-toml \
    qtwayland5

Greetings @mamor,

This seems to be a packaging issue on our end. We recently updated the naming scheme we used for our Debian containers. This then triggered rebuilding of these containers on our side. However an unseen side effect of this was that now the containers with the old naming scheme never got updated and has led to packaging issues such as this.

Therefore the fix here would be to change the base container you’re using here to torizon/weston-vivante:1 which is the equivalent of torizon/arm64v8-debian-weston-vivante:buster, but under the new naming scheme. Once I did that I was able to build your Dockerfile on my setup.

Also since I noticed you were pulling an OpenCV package, I thought I’d also point you towards our OpenCV example: torizon-samples/opencv at bullseye · toradex/torizon-samples · GitHub

The documentation for it isn’t public yet, but will be soon. Just wanted to share in case you find it useful.

Best Regards,
Jeremias.

is there a table with the new names ? and how is the architecture selected ?
the documentation here refers to the older names Debian Containers for Torizon | Toradex Developer Center

I believe we’re still in the process of fully documenting this naming change across our existing articles. For the time being the best way to get a full list would be to check the Torizon dockerhub repositories: Docker Hub

As for architecture these new namings also included a change to allow us to have multi-arch containers. Meaning depending on what device you’re pulling the container image to, the right architecture should get pulled. This was a big reason we did the new naming scheme as to compress the amount of containers we had allowing for simpler names and documentation.

Best Regards,
Jeremias

if i am building the image on windows x64 and than uploading it to the module. how will it know which arm architecture (32 or 64) to use ?

@jeremias.tx and @nkj, article about OpenCV on Torizon for Arm64 is already online: Torizon Sample: Using OpenCV for Computer Vision | Toradex Developer Center

So there are two points here for the multi-arch containers. First of all any container that is marked “vivante” only has 1 variant, the arm64 variant. Therefore with vivante base containers there’s no risk of using the “wrong” architecture.

For other containers when building on x86 you can specify which architecture you want to use in the “Dockerfile”. So for example if you want to create a container based on our base “debian” container here: Docker Hub

Then you want to add this to your dockerfile in the FROM statement:

FROM --platform=linux/arm torizon/debian:1-buster (for arm32 variant)
or
FROM --platform=linux/arm64 torizon/debian:1-buster (for arm64 variant)

So basically to summarize you can specify which arch you base it on in the FROM statement using the --platform flag.

I hope this helps clear things up.

Best Regards,
Jeremias

thanks for the explanation that clears things.

Glad I was able to clear things up.