Hi,
I am using a custom carrier board with an iMX8MM and a capacitive touch DSI display.
This is what I am currently running
5.15.148-6.6.1-devel+git.23a8e831749d #1-TorizonCore SMP PREEMPT Tue Jul 9 16:13:47 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
I have enabled the touch controller in my custom overlay and can see that the driver is loaded and operating. When using evtest the display responds to touches successfully.
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 65535
Event code 1 (ABS_Y)
Value 0
Min 0
Max 65535
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 1
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 65535
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 65535
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1740675891.311570, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1740675891.311570, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 36864
Event: time 1740675891.311570, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 4943
Event: time 1740675891.311570, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1740675891.311570, type 3 (EV_ABS), code 0 (ABS_X), value 36864
Event: time 1740675891.311570, type 3 (EV_ABS), code 1 (ABS_Y), value 4943
Event: time 1740675891.311570, -------------- SYN_REPORT ------------
Event: time 1740675891.428191, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 4096
Event: time 1740675891.428191, type 3 (EV_ABS), code 0 (ABS_X), value 4096
Event: time 1740675891.428191, -------------- SYN_REPORT ------------
Event: time 1740675892.321833, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 34701
Event: time 1740675892.321833, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 7424
Event: time 1740675892.321833, type 3 (EV_ABS), code 0 (ABS_X), value 34701
Event: time 1740675892.321833, type 3 (EV_ABS), code 1 (ABS_Y), value 7424
Event: time 1740675892.321833, -------------- SYN_REPORT ------------
Event: time 1740675892.438764, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1933
Event: time 1740675892.438764, type 3 (EV_ABS), code 0 (ABS_X), value 1933
Event: time 1740675892.438764, -------------- SYN_REPORT ------------
Event: time 1740675893.796375, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 40137
Event: time 1740675893.796375, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 2098
Event: time 1740675893.796375, type 3 (EV_ABS), code 0 (ABS_X), value 40137
Event: time 1740675893.796375, type 3 (EV_ABS), code 1 (ABS_Y), value 2098
Event: time 1740675893.796375, -------------- SYN_REPORT ------------
Event: time 1740675893.908366, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 7369
Event: time 1740675893.908366, type 3 (EV_ABS), code 0 (ABS_X), value 7369
Event: time 1740675893.908366, -------------- SYN_REPORT ------------
I have then tried to run the touch calibration and followed the instructions here: Touch Calibration
However, when I press the crosshairs on the display nothing happens. I have included the output from the container.
HEAD: DSI-1
Date: 2025-02-27 UTC
[17:02:25.237] 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-10-g9452feba
[17:02:25.237] Command line: weston -Bdrm-backend.so -Swayland-0
[17:02:25.237] OS: Linux, 5.15.148-6.6.1-devel+git.23a8e831749d, #1-TorizonCore SMP PREEMPT Tue Jul 9 16:13:47 UTC 2024, aarch64
[17:02:25.237] Flight recorder: enabled
[17:02:25.237] warning: XDG_RUNTIME_DIR "/tmp/weston-xdg" is not configured
correctly. Unix access mode must be 0700 (current mode is 0755),
and must be owned by the user UID 0 (current owner is UID 0).
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
[17:02:25.238] Using config file '/etc/xdg/weston/weston.ini'
[17:02:25.238] Output repaint window is 7 ms maximum.
[17:02:25.239] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[17:02:25.261] initializing drm backend
[17:02:25.261] Trying libseat launcher...
[17:02:25.265] libseat: session control granted
[17:02:25.272] using /dev/dri/card1
[17:02:25.274] DRM: supports atomic modesetting
[17:02:25.275] DRM: does not support GBM modifiers
[17:02:25.276] DRM: supports picture aspect ratio
[17:02:25.277] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[17:02:25.301] EGL client extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[17:02:25.305] EGL device extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[17:02:25.305] EGL version: 1.5
[17:02:25.305] EGL vendor: Vivante Corporation
[17:02:25.305] EGL client APIs: OpenGL_ES OpenVG
[17:02:25.305] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
EGL_KHR_create_context EGL_KHR_no_config_context
EGL_KHR_surfaceless_context EGL_KHR_get_all_proc_addresses
EGL_EXT_buffer_age EGL_ANDROID_native_fence_sync
EGL_WL_bind_wayland_display
EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
EGL_EXT_swap_buffers_with_damage
EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float
[17:02:25.305] EGL_KHR_surfaceless_context available
[17:02:25.314] GL version: OpenGL ES 2.0 V6.4.3.p4.398061
[17:02:25.314] GLSL version: OpenGL ES GLSL ES 1.0.0
[17:02:25.314] GL vendor: Vivante Corporation
[17:02:25.314] GL renderer: Vivante GC7000NanoUltra
[17:02:25.314] GL extensions: GL_OES_vertex_half_float
GL_OES_element_index_uint GL_OES_mapbuffer
GL_OES_vertex_array_object GL_OES_compressed_ETC1_RGB8_texture
GL_OES_compressed_paletted_texture GL_OES_texture_npot
GL_OES_rgb8_rgba8 GL_OES_depth_texture
GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
GL_OES_get_program_binary GL_OES_fragment_precision_high
GL_OES_standard_derivatives GL_OES_EGL_image
GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3
GL_OES_EGL_sync GL_OES_required_internalformat
GL_OES_surfaceless_context GL_OES_texture_border_clamp
GL_EXT_texture_type_2_10_10_10_REV
GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
GL_EXT_multi_draw_arrays GL_EXT_frag_depth
GL_EXT_discard_framebuffer GL_EXT_blend_minmax
GL_EXT_multisampled_render_to_texture GL_EXT_robustness
GL_EXT_texture_sRGB_decode GL_EXT_texture_border_clamp
GL_EXT_texture_rg GL_EXT_unpack_subimage GL_VIV_direct_texture
[17:02:25.374] GL ES 2.0 - renderer features:
read-back format: BGRA
EGL Wayland extension: yes
[17:02:25.387] event1 - gpio-keys: is tagged by udev as: Keyboard
[17:02:25.387] event1 - gpio-keys: device is a keyboard
[17:02:25.391] event0 - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[17:02:25.391] event0 - 30370000.snvs:snvs-powerkey: device is a keyboard
[17:02:25.395] event2 - ILI210x Touchscreen: is tagged by udev as: Touchscreen
[17:02:25.395] event2 - ILI210x Touchscreen: device is a touch device
[17:02:25.396] event2 - ILI210x Touchscreen: applying calibration: 1.039948 0.011494 -0.031650 0.009743 -1.089353 1.047852
[17:02:25.420] libinput: configuring device "gpio-keys".
[17:02:25.420] libinput: configuring device "30370000.snvs:snvs-powerkey".
[17:02:25.420] Touchscreen - ILI210x Touchscreen - /sys/devices/platform/soc@0/30800000.bus/30a30000.i2c/i2c-1/1-0041/input/input2/event2
[17:02:25.420] libinput: configuring device "ILI210x Touchscreen".
[17:02:25.421] DRM: head 'DSI-1' updated, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[17:02:25.421] DRM: head 'DSI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[17:02:25.422] Registered plugin API 'weston_drm_output_api_v1' of size 24
[17:02:25.422] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[17:02:25.422] Color manager: no-op
[17:02:25.422] Loading module '/usr/lib/libgbm.so'
[17:02:25.422] Failed to load module: /usr/lib/libgbm.so: cannot open shared object file: No such file or directory
[17:02:25.423] Output 'DSI-1' using color profile: built-in default sRGB SDR profile
[17:02:25.425] Chosen EGL config details: id: 21 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x34325258)
[17:02:25.425] Output DSI-1 (crtc 33) video modes:
720x1280@60.0, preferred, current, 64.6 MHz
[17:02:25.426] associating input device event1 with output DSI-1 (none by udev)
[17:02:25.426] associating input device event0 with output DSI-1 (none by udev)
[17:02:25.426] associating input device event2 with output DSI-1 (none by udev)
[17:02:25.426] Output 'DSI-1' enabled with head(s) DSI-1
[17:02:25.426] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[17:02:25.427] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
[17:02:25.429] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
[17:02:25.434] Note: support for the deprecated wl_shell interface is disabled. If a legacy client still needs it, it can be re-enabled by passing -Ddeprecated-wl-shell=true to Meson when building Weston.
[17:02:25.434] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/xwayland.so'
[17:02:25.461] Registered plugin API 'weston_xwayland_v1' of size 32
[17:02:25.461] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[17:02:25.463] xserver listening on display :0
[17:02:25.464] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
wayland-0
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
[17:02:26.311] input device event2: applying calibration:
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
Everything appears to be okay here as well
P: /devices/platform/soc@0/30800000.bus/30a30000.i2c/i2c-1/1-0041/input/input2/event2
N: input/event2
L: 0
S: input/touchscreen0
S: input/by-path/platform-30a30000.i2c-event
E: DEVPATH=/devices/platform/soc@0/30800000.bus/30a30000.i2c/i2c-1/1-0041/input/input2/event2
E: DEVNAME=/dev/input/event2
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
E: USEC_INITIALIZED=9703484
E: ID_INPUT=1
E: ID_INPUT_TOUCHSCREEN=1
E: ID_PATH=platform-30a30000.i2c
E: ID_PATH_TAG=platform-30a30000_i2c
E: UDISKS_FILESYSTEM_SHARED=1
E: LIBINPUT_CALIBRATION_MATRIX=1.039948 0.011494 -0.031650 0.009743 -1.089353 1.047852
E: DEVLINKS=/dev/input/touchscreen0 /dev/input/by-path/platform-30a30000.i2c-event
It seems as though there is a ‘link’ missing between weston and the driver.
Any help would be much appreciated. Thanks in advance.