Verdin iMX8MP: not HDMI on custom image

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


It looks like you’re encountering an issue with Weston failing to start on your custom image for the Verdin iMX8M Plus module. The error message indicates that the wayland-backend.so module cannot be found, which is likely causing the compositor backend to fail.

Here are a few steps to troubleshoot and resolve the issue:

  1. Check Weston Configuration:
    Ensure that your weston.ini configuration file is correctly set up. The file should be located at /etc/xdg/weston/weston.ini. Verify that the [core] section is properly configured to use the correct backend.

  2. Verify Weston Installation:
    Make sure that all necessary Weston packages are installed. Specifically, check if the libweston-10 package is installed, as it contains the wayland-backend.so module.

    opkg list-installed | grep weston
    

    If the package is missing, you can add it to your image by modifying your Yocto recipe:

    CORE_IMAGE_EXTRA_INSTALL += "weston libweston-10"
    
  3. Device Tree Overlays:
    You mentioned that the overlays are being applied correctly. Double-check that the HDMI-related overlays are correctly specified and applied. The relevant overlays for HDMI on the Verdin iMX8M Plus should include verdin-imx8mp_hdmi_overlay.dtbo and verdin-imx8mp_dsi-to-hdmi_overlay.dtbo.

  4. Kernel Modules:
    Ensure that the necessary kernel modules for HDMI are loaded. You can check the loaded modules using:

    lsmod
    

    If any required modules are missing, you may need to include them in your kernel configuration.

  5. Logs and Debugging:
    Check the system logs for more detailed error messages that might provide additional clues. You can use dmesg and journalctl to inspect the logs:

    dmesg | grep drm
    journalctl -xe
    
  6. Weston Command Line:
    When running Weston from the console, try specifying the backend explicitly:

    /usr/bin/weston --backend=drm-backend.so --modules=systemd-notify.so
    

    This can help ensure that Weston is using the correct backend.

  7. Yocto Recipe:
    Review your Yocto recipe to ensure that all necessary dependencies and configurations are included. Here is a simplified example of what your recipe might look like:

    DESCRIPTION = "My image"
    LICENSE = "MIT"
    
    inherit core-image features_check populate_sdk_qt6
    
    CONFLICT_DISTRO_FEATURES = "directfb"
    
    IMAGE_FEATURES += " \
        splash \
        package-management \
        ssh-server-openssh \
        hwcodecs \
        ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston', \
           bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base x11-sato', '', d), d)} \
    "
    
    CORE_IMAGE_EXTRA_INSTALL += " \
            packagegroup-core-full-cmdline \
            ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland', '', d)} \
            fbgrab \
            libgpiod \
            libgpiod-tools \
            rsync \
            weston \
            libweston-10 \
    "
    
    CORE_IMAGE_EXTRA_INSTALL:mx8-generic-bsp += " \
            packagegroup-fsl-gstreamer1.0 \
            packagegroup-fsl-gstreamer1.0-full \
    "
    
    systemd_disable_vt () {
        rm ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/getty.target.wants/getty@tty*.service
    }
    
    # Install fonts
    QT6_FONTS = " \
        ttf-dejavu-mathtexgyre \
        ttf-dejavu-sans \
        ttf-dejavu-sans-condensed \
        ttf-dejavu-sans-mono \
        ttf-dejavu-serif \
        ttf-dejavu-serif-condensed \
    "
    
    QT6_IMAGE_INSTALL = " \
        ${QT6_FONTS} \
        ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-plugins', '', d)} \
    "
    
    IMAGE_INSTALL += " \
        ${QT6_IMAGE_INSTALL} \
        packagegroup-tdx-cli \
        packagegroup-tdx-graphical \
        chrony \
        aqt6app \
    "
    
    IMAGE_PREPROCESS_COMMAND:append = " ${@ 'systemd_disable_vt;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and
             
    

Please, also check if these links can help you solve your problem:

HDMI Display in clone mode not working on imx8m plus.