Enabling the Capacitive Touch LVDS Display 10.1" of the Dahlia evaluation kit (i.XM8M Plus) does not work at all!


Software summary
Bootloader:               U-Boot
Kernel version:           5.15.129-6.5.0+git.6f8fd49366db #1-TorizonCore SMP PREEMPT Fri Dec 22 11:15:52 UTC 2023
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/fe091cbe7b665ff6d9d5d618cb20c42c90c242fffea                                                ceccf204eacd186b2f597/0
Distro name:              NAME="TorizonCore"
Distro version:           VERSION_ID=6.5.0-build.8
Distro variant:           VARIANT="Docker"
Hostname:                 verdin-imx8mp-15230103

Hardware info
HW model:                 Toradex Verdin iMX8M Plus WB on Verdin Development Board
Toradex version:          0058 V1.1B
Serial number:            15230103
Processor arch:           aarch64

Verdin iMX8M Plus Evaluation Kit with Touchscreen
SOM i.MX8M Plus Quad 4GB WB IT v1.1B
Dahlia Carrier Board v1.1D
Verdin DSI to LVDS rev 1.1A
Capacitive Touch Display 10.1" v1.0A

torizon@verdin-imx8mp-15230103:/$ cat /etc/os-release
VERSION="6.5.0+build.8 (kirkstone)"
PRETTY_NAME="TorizonCore 6.5.0+build.8 (kirkstone)"

I’ve tried to follow the instructions as descibed in Setting up Displays with Torizon | Toradex Developer Center

torizon@verdin-imx8mp-15230103:/$ echo $CT_TAG_WESTON_VIVANTE
torizon@verdin-imx8mp-15230103:/$ docker pull torizon/weston-vivante:$CT_TAG_WES                                                                        TON_VIVANTE
3: Pulling from torizon/weston-vivante
f546e941f15b: Pulling fs layer
bf18bfb3abc9: Pulling fs layer
0b87d0699476: Pulling fs layer
b884d6dac4f3: Pulling fs layer
b884d6dac4f3: Waiting
c21445ba9a07: Waiting
3c67fdbdd5b5: Pull complete
d092a448d290: Pull complete
a5feb904200b: Pull complete
54f572b9dbd8: Pull complete
7b004c3d607f: Pull complete
3f6252bb7741: Pull complete
1c7180701092: Pull complete
7d37a668c134: Pull complete
f2c9204d9f62: Pull complete
5449b1fc6026: Pull complete
3e182a4aee97: Pull complete
d5f6df659558: Pull complete
c431be0f8333: Pull complete
201177d55960: Pull complete
2fadb4fc269e: Pull complete
ad50f294ec0a: Pull complete
3ae917658cde: Pull complete
b047c7d90888: Pull complete
f045bc64b873: Pull complete
4e84769b3fc8: Pull complete
565afc3b2a83: Pull complete
e3bbf41bdf9b: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:663527c9132ebf6595ae90337f27eac0f7ca1b5c6174e1fcad9dfbf4f4aad4f3
Status: Downloaded newer image for torizon/weston-vivante:3
torizon@verdin-imx8mp-15230103:/$ 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 --tty=/dev/tty7
torizon@verdin-imx8mp-15230103:/$ docker run -e ACCEPT_FSL_EULA=1 -d --rm --name=wayland-app  \
>              -v /dev/dri:/dev/dri -v /dev/galcore:/dev/galcore -v /tmp:/tmp \
>              --device-cgroup-rule='c 199:* rmw' --device-cgroup-rule='c 226:* rmw' \
>              torizon/weston-vivante:$CT_TAG_WESTON_VIVANTE weston-terminal

I have rebooted my system, but the touchscreen displays nothing neither the OS splash screen Torizon when the OS boots.

I had a look at which overlays were installed on my OS, but I don’t see the one I have found in the instructions which should be verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo.

torizon@verdin-imx8mp-15230103:~$ ls -l /proc/device-tree/chosen/overlays/
total 0
-r--r--r-- 1 root root 9 Feb 28 08:01 name
-r--r--r-- 1 root root 2 Feb 28 08:01 verdin-imx8mp_dsi-to-hdmi_overlay.dtbo
-r--r--r-- 1 root root 2 Feb 28 08:01 verdin-imx8mp_hdmi_overlay.dtbo
-r--r--r-- 1 root root 2 Feb 28 08:01 verdin-imx8mp_spidev_overlay.dtbo

I should have verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo because my capacitive display is connected through a DSI to LVDS board, but I do not know where to download it and how to install it.


Hello @flepronm

Thanks for contributing to the Toradex Community!
You are very close to the solution :slight_smile:

I should have verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo because my capacitive display is connected through a DSI to LVDS board, but I do not know where to download it and how to install it.

You can find the available overlays in this path:

ls /sysroot/boot/ostree/torizon-<hash>/dtb/overlays

For Capacitive Touch LVDS display driven through DSI to LVDS adapter you need to add the overlay verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo in your overlays.txt file:

torizon@verdin-imx8mp-14777545:/boot/ostree/torizon-fe091cbe7b665ff6d9d5d618cb20c42c90c242fffeaceccf204eacd186b2f597/dtb$ cat overlays.txt 

After that you should reboot your device and the display should be working properly.
You may also read more details here: Device Tree Overlays on Torizon | Toradex Developer Center

1 Like

Dear Rudhi

Sorry, I am a real dummy regarding Linux and Yocto. I have to learn a lot…

In my overlays.txt file, I have already other dtbo files.

torizon@verdin-imx8mp-15230103:/sysroot/boot/ostree/torizon-fe091cbe7b665ff6d9d5d618cb20c42c90c242fffeaceccf204eacd186b2f597/dtb$ cat overlays.txt
fdt_overlays=verdin-imx8mp_hdmi_overlay.dtbo verdin-imx8mp_dsi-to-hdmi_overlay.dtbo verdin-imx8mp_spidev_overlay.dtbo

Do I have to add verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo after verdin-imx8mp_spidev_overlay.dtbo ?

Thus, the content of the file will be :

fdt_overlays=verdin-imx8mp_hdmi_overlay.dtbo verdin-imx8mp_dsi-to-hdmi_overlay.dtbo verdin-imx8mp_spidev_overlay.dtbo verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo

Francois Lepron

Hello @flepron,

Sorry, I am a real dummy regarding Linux and Yocto. I have to learn a lot…

Don’t worry about that! We are here to help you :slight_smile: You will be a pro in a few months :smiley: :wink:

You can remove the other overlays from your overlays.txt file and just add verdin-imx8mp_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo. The other ones could be conflicting with the one for dsi to lvds display and therefore might not work all together. So your overlays.txt file should look like this:


1 Like

Dear Rudhi

I did what you’ve said, and this seems to work properly after a reboot:

I have seen the splash screen on my LVDS capacitive touch screen, and after I have a login form where I have to register a new administrator for a new Portainer installation.

What is Portainer ?

Here is the screen that I have. I do not want to go farther because I do not want to make an error, but I notice that there is no virtual keyboard as well.

I want to ask you if this is normal, because my real keyboard is plugged, or is it something that we have to implement ?

My mouse works properly, but the layout of my real keyboard is a french AZERTY and not a default QWERTY. How can I specify my keyboard layout please ?

Many thanks.


Hello @flepron,

Looks like you got the overlays correct!

What you see on the screen - Portainer - is a sample web application based on chromium. By default our Torizon OS images with evaluation containers come with a docker-compose file for running this application. It is just a way for us to show you that Torizon can autorun applications on startup. Now, to answer your question about what is Portainer - It is a web based application with which you can see and manage docker containers running on your device.

By default, this application does not come with a virtual keyboard. But this is something that could be configured in weston. So if you want to do that, it is possible to do it by modifying the weston.ini file. If you would like to explore portainer, you can connect a keyboard to your device and register your user with a password. Otherwise you can access it from the browser on your host PC: if you navigate to http://<your toradex device IP>:8840 you will see the Portainer UI. After configuring a password for the admin, you will see the main Portainer screen.

Now you might be thinking how Torizon runs this application automatically on startup. This is done by a sysstemd service who brings up the docker-compose file located in /var/sota/storage/docker-compose/ directory of your Torizon OS system. Please read more information here: How to Autorun an Application With Torizon OS | Toradex Developer Center

If you still have some questions, we could also have a 30 minutes call where I can explain these topics to you.

1 Like

Dear @rudhi.tx

I add to this thread screenshots of the web application named Portainer so that the community might visualize the description you did a step earlier.

Once you have created your new Portainer Installation (Username + password), the following login page will appear.

So enter the credentials you defined the step before.

After you have the home page listing the environments.

If you click on the the icon of the primary container, and then on container, you will have the list of the the 3 containers composed in primary.

In the /var/sota/storage/docker-compose/docker-compose.yml, you will retrieve most of the parameters specified for each service:

  1. kiosk
  2. portainer
  3. weston
torizon@verdin-imx8mp-15230103:/$ cat /var/sota/storage/docker-compose/docker-compose.yml
    command: --disable-gpu http://portainer:9000
        condition: service_started
        condition: service_started
    - c 199:* rmw
      MACHINE: null
    image: torizon/chromium@sha256:9d363b140a5f4584392432b4ed548c0b6fd5466fbf41b28e834f31924fb62d6d
    platform: linux/arm64
    - seccomp:unconfined
    shm_size: 256mb
    - source: /tmp
      target: /tmp
      type: bind
    - source: /var/run/dbus
      target: /var/run/dbus
      type: bind
    - source: /dev/galcore
      target: /dev/galcore
      type: bind
    command: --templates https://feeds.toradex.com/portainer/5/$MACHINE/templates.json
      --logo https://docs.toradex.com/109812-torizon-logo-portainer.svg -H unix:///var/run/docker.sock
    image: portainer/portainer-ce@sha256:9fa1ec78b4e29d83593cf9720674b72829c9cdc0db7083a962bc30e64e27f64e
    - published: 8840
      target: 9000
    restart: always
    - source: portainer_data
      target: /data
      type: volume
    - source: /var/run/docker.sock
      target: /var/run/docker.sock
      type: bind
    - c 4:0 rmw
    - c 4:7 rmw
    - c 4:1 rmw
    - c 13:* rmw
    - c 199:* rmw
    - c 226:* rmw
      ACCEPT_FSL_EULA: '1'
    image: torizon/weston-vivante@sha256:c00b611b415b241867345a9a24ec4400685758e612e2623e698797631ec8a5c6
    network_mode: host
    - source: /tmp
      target: /tmp
      type: bind
    - source: /dev
      target: /dev
      type: bind
    - source: /run/udev
      target: /run/udev
      type: bind
version: '2.4'
  portainer_data: {}

If you still have some questions, we could also have a 30 minutes call where I can explain these topics to you.

Of course I have a lot of questions, because I am an absolute beginner and I don’t know how many times we can have 30 minutes of call. I assume that this is limited because you must have a lot of work. But, this is true, this would be really helpful.

I am go to read How to Autorun an Application With Torizon OS | Toradex Developer Center you’ve advised me, and also I will follow my training of the Quick Start with “Develop an Application” (Build, deploy, remotely debug an application on my device) and let you now.

I have a lot of questions on device tree and how to load and debug my firmware application (FreeRTOS) in the Cortex-M7.

Many thanks again @rudhi.tx for your explanations.

Hello @flepron,

I have sent you a meeting invitation by email :slight_smile:

1 Like

Hello Rudhi,

I have answered to you email regarding a meeting invitation :email:.

That’s perfect for me :+1:t4:.

Can you send me an invitation by :email: for the date and time slot which fit with our agendas ?

Francois Lepron