Weston not starting on Verdin Dahlia

Hi!
I’m building my custom Yocto image for Verdin iMX8MM on Dahlia board. When I’m booting my system with the DeviceTree for Dahlia Board, I don’t have any output on HDMI (native on board or the DSI-to-HDMI expansion board). However, when I select the devicetree for Development Board, I’m getting the output on the DSI-to-HDMI.
Using the Dahlia device tree, I see the Weston service is failing

Oct 30 12:17:03 verdin-imx8mm-07237522 systemd[1]: Starting Weston, a Wayland compositor, as a system service...
Oct 30 12:17:04 verdin-imx8mm-07237522 systemd[1]: weston.service: Main process exited, code=exited, status=1/FAILURE
Oct 30 12:17:04 verdin-imx8mm-07237522 systemd[1]: weston.service: Failed with result 'exit-code'.
Oct 30 12:17:04 verdin-imx8mm-07237522 systemd[1]: Failed to start Weston, a Wayland compositor, as a system service

When I try to run Weston manually, I’m getting the following error:

root@verdin-imx8mm-07237522:~# /usr/bin/weston --modules=systemd-notify.so
Date: 2023-10-30 UTC
[12:17:26.567] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0+
[12:17:26.568] Command line: /usr/bin/weston --modules=systemd-notify.so
[12:17:26.568] OS: Linux, 5.15.129-6.4.0-devel+git.67c3153d20ff, #1 SMP PREEMPT Wed Sep 27 12:30:36 UTC 2023, aarch64
[12:17:26.568] Flight recorder: enabled
[12:17:26.568] Using config file '/etc/xdg/weston/weston.ini'
[12:17:26.568] Output repaint window is 16 ms maximum.
[12:17:26.568] Loading module '/usr/lib/libweston-10/wayland-backend.so'
[12:17:26.568] Failed to load module: /usr/lib/libweston-10/wayland-backend.so: cannot open shared object file: No such file or directory
[12:17:26.568] fatal: failed to create compositor backend

Of course, this file exists: /usr/lib/libweston-10/wayland-backend.so

Comparing the dev and dahlia devicetrees, I don’t see any significant differences related to DSI/HDMI.
So, my question is: what could be wrong?

Best regards,
Mateusz

There is a hack in the U-BOOT code that forces in Verdin no matter what you do. I hit this same thing.

Read this thread, well, my response in it.

I no like the hack. I no like the work-around. I no like the security risk I feel it exposes the board to. Had this discussion back in January, forgot most of it now.

I know the DeviceTree is hardcoded to dev board. So, I explicitly change it to dahlia and I see the device tree is being loaded. Even if my u-boot environments are:

fdt_board=dahlia
fdtfile=imx8mm-verdin-wifi-dev.dtb

The HDMI over DSI converter is working fine. When I use imx8mm-verdin-wifi-dahlia.dtb (which is the same as for dev board, except for audio codec on I2C, some minor differences in UART and one USB clock) then there is no output on the HDMI (and of course, Weston is failing).

I’m just curious what Weston is looking for in the DeviceTree.

BR,
Mateusz

Hi @mmajchrzycki !

Could you please share the output of tdx-info? (reference: Getting Device Information with Tdx-Info | Toradex Developer Center)

Please also share the carrier board version you are using.

Since you are building your own custom image, could you please share which modifications you did? Are you using the image recipe tdx-reference-multimedia-image from meta-toradex-demo (tdx-reference-multimedia-image.bb « images « recipes-images - meta-toradex-demos.git - Toradex BSP layer, recipes for the demo images) as as starting point?

Just to be clear: Verdin iMX8MM doesn’t have native HDMI (nor native LVDS). One can use the DSI-HDMI adapter of Dahlia to output HDMI. From Verdin iMX8MM’s datasheet (https://docs.toradex.com/108681-verdin-imx8m-mini-datasheet-v1.1):

Best regards,

@seasoned_geek , from the thread you shared (and the thread you reference there), @jeremias.tx explained to you exactly what is going on. Your statement about the presence of a hack/security risk on U-boot related to this is certainly misguiding and unfair. In order to not hijack this thread, I sent you a private message about this, so you can explain what you mean.

Best regards,

I just got done replying in private. I believe you will find my statements justified.

@henrique.tx
Here is the output of tdx-info when I’m using dev devicetree

root@verdin-imx8mm-07237522:~# tdx-info

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           5.15.129-6.4.0-devel+git.67c3153d20ff #1 SMP PREEMPT Mon Oct 30 09:56:14 UTC 2023
Kernel command line:      root=PARTUUID=29938657-02 ro rootwait console=tty1 console=ttymxc0,115200 consoleblank=0 earlycon
Distro name:              NAME="TDX Wayland with XWayland"
Distro version:           VERSION_ID=6.4.0-devel-20231027125820-build.0
Hostname:                 verdin-imx8mm-07237522
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin iMX8M Mini WB on Verdin Development Board
Toradex version:          0055 V1.1B
Serial number:            07237522
Processor arch:           aarch64
------------------------------------------------------------

For dahlia devicetree:

root@verdin-imx8mm-07237522:~# tdx-info

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           5.15.129-6.4.0-devel+git.67c3153d20ff #1 SMP PREEMPT Mon Oct 30 09:56:14 UTC 2023
Kernel command line:      root=PARTUUID=29938657-02 ro rootwait console=tty1 console=ttymxc0,115200 consoleblank=0 earlycon
Distro name:              NAME="TDX Wayland with XWayland"
Distro version:           VERSION_ID=6.4.0-devel-20231027125820-build.0
Hostname:                 verdin-imx8mm-07237522
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin iMX8M Mini WB on Dahlia Board
Toradex version:          0055 V1.1B
Serial number:            07237522
Processor arch:           aarch64
------------------------------------------------------------

I will test with the native images as well, but mine are pretty similar to the reference ones. Let me test clear Toradex reference images built with Yocto, and then I will come back with my recipes.

Best regards,
Mateusz

Hi @mmajchrzycki !

Thanks for the information.

Ok! Thanks!

Best regards,

@henrique.tx
I checked reference images built with Yocto, and both are working (dev and dahlia device trees).
I’m going to investigate the differences in my devicetrees. I will let you know what I will find.

BR,
Mateusz

Hi @mmajchrzycki !

Thanks for the update!

Be sure to check files related to Weston as well (e.g. weston.ini).

Best regards,

Hi @henrique.tx
I found the issue. The problem was that for i2c4 node, I set the following pin control:

pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;

It probably disabled the audio codec WM8904. As a result, the iMX DRM subsystem couldn’t be initialized properly, and Weston couldn’t be started.

Best regards,
Mateusz

Hi @mmajchrzycki !

Thanks for the feedback!

If this topic is solved, please don’t forget to mark the most suitable message as the solution.

Best regards,