Touchscreen calibration not working in BSP 5

Hi! I have compiled a Linux image starting from the existing tdx-reference-multimedia-image by adding some Python packages and changing the device tree.

When booting I’ve seen that the touchscreen calibration is not displayed. Also, according to this page, I can call the calibration utility using the command weston-touch-calibrator. However, I get the following output:

sh-5.0# weston-touch-calibrator
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
weston-touch-calibrator error: the Wayland server does not expose the calibration interface.

Does anybody know what is the problem?

Hi @CristianM,

We did an update in the documentation - please check it here.

Unfortunately, it requires a change on the weston.ini configuration file.
The updated article also points to a script that assists in saving the new calibration.

Please let me know if that helped.

Best regards,
André Curvello

Hi. I have changed the /etc/xdg/weston/weston.ini file according to the script indicated in the article and even replaced the entire script with that indicated, but in both cases I got the same error.

Are there other configurations needed in weston.ini?

I forgot to add the save-calibration.sh file and it also needed a restart (or, at least, restarting the weston service). It works now. Thank you!

Good to know!

I’m glad to see that it’s now working.

Best regards,
André Curvello

Hi @CristianM,

Do you confirm that your weston.ini file is with this content:

[core]
idle-time=0
require-input=false
xwayland=true

[libinput]
touchscreen_calibrator=true
calibration_helper=/usr/bin/save-calibration.sh

[shell]
panel-position=top
locking=false
allow-zap=true
num-workspaces=1

And you also created the file /usr/bin/save-calibration.sh with execution permission (chmod +x /usr/bin/save-calibration.sh) with this content?

#!/bin/bash

# Store the transformation arguments for the resistive touchscreen as udev rule
echo 'SUBSYSTEM=="input", KERNEL=="event[0-9]*", ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="'$2 $3 $4 $5 $6 $7'"' >> /etc/udev/rules.d/touchscreen.rules

Then, you tried to execute weston-touch-calibrator and the error still remains?