Gstreamer fails to run using Docker container method

Hi,

We are building the torizon core docker yocto image(Zeus branch) for apalis-imx8 machine using the instructions given in the following link,

We flashed the image in Apalis IMX8 EVK using the toradex easy installer.

we are trying to run gstreamer using container method using the instructions given in the following link,

But when following that procedure, we face the following issue,

aetbuild@aetbuild-PC:~/torizon-samples/gstreamer/bash/simple-pipeline$ docker build -f Dockerfile.arm64 -t dharan899/gst_example .
Sending build context to Docker daemon 7.68kB
Step 1/4 : FROM torizon/arm64v8-debian-wayland-base-vivante
—> eca458334ffa
Step 2/4 : RUN apt-get -y update && apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/

—> Running in 864a966424cb
*

standard_init_linux.go:211: exec user process caused “no such file or directory”

The command '/bin/sh -c apt-get -y update && apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/’ returned a non-zero code: 1*

We tried “dos2unix” command to resolve “standard_init_linux.go:211: exec user process caused "no such file or directory” issue. But it is not solving the issue.

We are using Ubuntu18.04 system for docker build. Kindly help us to run gstreamer commands successfully in the Apalis iMX8 machine using docker method.

Also is there any possibility to add the gstreamer libraries in yocto to add them with torizon-core-docker image. We saw all the DISTRO features which are needed for gstreamer libraries (like X11, wayland, opengl etc) are removed in the Torizon image. Is it possible to enable them and add complete gstreamer libraries in yocto?

Thanks,
Koil Arul Raj.S

Greetings @KoilArulRaj,

Did you configure your development machine to allow the execution of arm-based executables? It appears the errors you are experiencing are related to this. If not you can follow this section here: Configure Build Environment for Torizon Containers | Toradex Developer Center

As for the yocto question, you are welcome to make any customization you want to our default yocto builds. Just keep in mind we may not be able to support you on such customized yocto builds outside of high-level guidance and advice.

Though I will say if you are just going to make heavy customizations to the Torizon yocto build then perhaps our non-Torizon BSP would fit you better. The Torizon image while also built with yocto, was not intended to be heavily customized. Our non-Torizon BSP is meant for those who are comfortable and experienced with yocto and doing their own Linux image.

Best Regards,
Jeremias

Hi Jeremias,

Thanks for the reply.

We installed the debian packages as mentioned in the link and tried the docker procedure to run gstreamer command.

It still shows the same error.

Does the torizon-core-docker image built using yocto, has the necessary support files to run docker procedure? Or we need to use the prebuilt torizon image to run the gstreamer commands ?

Thanks.

I’m unable to recreate this error on my Ubuntu machine. Are you sure both the binfmt-utils and the qemu-user-static Debian packages were installed correctly?

I’m confused about your question. The yocto built Torizon should be the same image as the prebuilt Torizon. The gstreamer commands and packages are all self-contained in the in the container you are trying to build. The only dependency on the Torizon system is the ability to run the “docker” command.

Best Regards,
Jeremias