Imx8mm totizon weston-wayland

Hello Team,

Trying to run weston-wayland on the torizon imx8mmini platform.
ref: Debian Containers for Torizon | Toradex Developer Center

After running below command, no weston desktop is displayed on screen

docker run -e ACCEPT_FSL_EULA=1 -d --rm --name=weston --net=host --cap-add CAP_SYS_TTY_CONFIG \
             -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
             --device-cgroup-rule='c 4:* rmw' --device-cgroup-rule='c 13:* rmw' \
             --device-cgroup-rule='c 199:* rmw' --device-cgroup-rule='c 226:* rmw' \
             torizon/weston-vivante:$CT_TAG_WESTON_VIVANTE --developer weston-launch \
             --tty=/dev/tty7 --user=torizon

the torizon image has weston-vivante container as well.

Hi @nagendra ,

Thanks for contacting Toradex Community.

To better understand your query, kindly share what hardware and software version you are running?

Also which display interface you are using and how you are connecting display?

You can also share the docker log for the container to get more details.

Best Regards
Ritesh Kumar

Hi Ritesh,
please find below details
Verdin-imx8mmini V1.0B (SOM v1.0B)
TorizonCore 5.1
HDMI (DSI -HDMI bridge)

Also would like to understand , how to install gstreamer support into weston-vivante containers ?

Hi Ritesh,

i could run the wayland with gstreamer support , using the link

i would like to know how to create container with wayland gstreamer so that I can run using docker

hi @nagendra,

One can write their own Dockerfile and build docker image. Please check below link:

After you built your docker image from Dockerfile successfully, you can push it to docker hub and from there you can pull to Toradex device using docker run or pull command.
Another method is to save docker image locally and transfer to module and load docker image there.
Then you have yet another way to create local docker registry on your build system and use same for distributing docker images to module.

Please check below article for details:

Best Regards
Ritesh Kumar

Hi @ritesh.tx ,
thanks for the inputs,
I am able to run image with wayland and gstreamer, with docker-compose and .yaml script
currently I am composing , instead I would like to use the docker run command with container which supports wayland and gstreamer ,
how can I create and run container with both wayland and gstreamer (no docker-compose and no yaml script) with bash as entry point ?

Hi @nagendra ,

We already shared link for same in previous post.

Below is one of demo dockerfile from torizon-sample
to execute bash, CMD is changed to bash

FROM torizon/wayland-base-vivante:2
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/*

CMD ["/bin/bash"]

from same directory where Dockerfile is present run below command. You can replace image_name and tag accordingly
e.g gst_image:latest
In case you are using docker hub then it will be your username/image_name:tag

docker build -t <image_name>:<latest> .

After this you can use any of the method described in already shared article to deploy your docker image to target and run using docker run command.

Best Regards
Ritesh Kumar

i have build image with above docker file, but I got below error while running

SoC is: ‘i.MX8MM’
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
Removing previously created ‘.X*-lock’ entries under /tmp before starting Weston. Pass ‘IGNORE_X_LOCKS=1’ environment variable to Weston container to disable this behavior.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format…
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format…
Couldn’t get a file descriptor referring to the console.
Couldn’t get a file descriptor referring to the console.

everything works with docker-compose and yaml file, but I do not have control , I need a container with wayland and gstreamer along with console support.

for example
with your example, I could run gstreamer sample pipeline (docker-compose+yaml)
I observed two containers running

I can even login to each container separately but I can not run GUI example in gst-container, and gst-example in weston-container,
I feel there are some steps perhaps I missed , How can I run weston and gstreamer in single container and have control through console ?


Hi @nagendra ,

Can you please share exact command and steps you are following ?

We quickly tested building above dockerfile and it is running fine.

verdin-imx8mm-06827741:~$ cat /etc/issue
TorizonCore 5.4.0-devel-202109+build.18 \n \l

verdin-imx8mm-06827741:~$ uname -r 
verdin-imx8mm-06827741:~$ docker run -d -it -v /tmp:/tmp -v /dev/dri:/dev/dri -v /dev:/dev --device-cgroup-rule='c 226:* rmw' --device-cgroup-rule='c 4:* rmw' --device-cgroup-rule='c 13:* rmw' --device-cgroup-rule='c 199:* rmw' <username>/image:tag
verdin-imx8mm-06827741:~$ docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS               NAMES
b29f8d0d5b06        <username>/image:tag       "/bin/bash"              4 minutes ago       Up 4 minutes                            kind_lamarr
c6544be51d6f        torizon/weston-vivante:2   "/usr/bin/ -…"   10 minutes ago      Up 10 minutes                           weston
verdin-imx8mm-06827741:~$ docker exec -it b29f8d0d5b06 bash 
root@b29f8d0d5b06:/# gst-launch-1.0 --version
gst-launch-1.0 version 1.16.2
GStreamer 1.16.2
root@b29f8d0d5b06:/# gst-inspect-1.0 --version
gst-inspect-1.0 version 1.16.2
GStreamer 1.16.2

Here probably the issue is due to hardware version 1.0B which is not supported anymore. You may like to change the image tag and use buster feeds and check if that works for you.
Please check verdin-sample-phase-over for detail

Best Regards
Ritesh Kumar

@ritesh.tx ,

yes, HW is Verdin 1.0B and running “TorizonCore 5.1.0-devel-202012+build.6”
used below commands to prepare and run the container
$ docker build -f Dockerfile -t [username]/image-name [with above mentioned docker file]
$ docker push [username]/image-name

target$ docker run -e “ACCEPT_FSL_EULA=1” -it [username]/image-name
it logins , but no wayland sceen is up


Hi @nagendra ,

I believe you are referring to weston-terminal or weston-shell. Both are not part of this Dockerfile. You need to run a separate container for same. If you see my output of docker ps command you will see two container running one for gstreamer application and one for weston.

Weston is responsible for providing display support which then will be used by the application container for gst pipeline.

Please examine docker run command from above post, which shows what device you need to pass while running docker run.

Let me know if you need an overview on application development with Torizon, we can schedule a meeting to expedite your development. You can send email to for scheduling meeting.

Best Regards
Ritesh Kumar

@ritesh.tx ,
My understanding is same, If you observe my previous post, I could see the two containers running with yaml script. what I am missing is the required arguments for the “docker run” which I am not still clear.

sure, a call would help in getting things clear, I will drop a request on