当触摸不准时,需修改/etc/udev/rules.d/touchscreen.rules文件,此文件为校准参数存放位置,默认参数支持我司7寸MIPI DSI屏。在前面加上“#”注释,如下所示。
#SUBSYSTEM=="input",KERNEL=="event[0-9]*", ENV{ID_INPUT_TOUCHSCREEN}=="1",ENV{LIBINPUT_CALIBRATION_MATRIX}="-2.361751 -0.023618 1.009202 0.000000-3.000000 0.995000 "
修改完后重启开发板。如使用电容屏,一般无须校准,重启后可以直接使用;如使用电阻屏则需要通过如下命令修改weston-touch-calibrator,执行该命令前,需要修改/etc/xdg/weston/weston.ini文件,找到[libinput]后,取消#注释,如下所示。
[libinput]
# Uncomment below toenable touch screen calibrator(weston-touch-calibrator)
touchscreen_calibrator=true
calibration_helper=/bin/weston-calibration-helper.sh
重启桌面:
/etc/init.d/S50launcherstop
/etc/init.d/S50launcherstart
然后执行weston-touch-calibrator命令进行测试,对屏幕中的“+”进行点击,获取屏幕的校准参数。
weston-touch-calibrator
获取到校准参数“-0.000121-0.956017 0.980913 1.010802 0.014924 -0.028297”后,将其填入/etc/udev/rules.d/touchscreen.rules文件中,修改如下:
SUBSYSTEM=="input",KERNEL=="event[0-9]*", ENV{ID_INPUT_TOUCHSCREEN}=="1",ENV{LIBINPUT_CALIBRATION_MATRIX}="-0.000121 -0.956017 0.980913 1.0108020.014924 -0.028297 "
最后重启即可。