1. 校准说明
xfce桌面系统是一个基于X11的较为轻量级的桌面系统,优点是占用系统资源少且运行流畅,通常是debian系统的标配。当然也运行在Ubuntu系统上。
xfce通常采用xorg作为XServer,而xorg通过xinput遍历下面两个目录里面的配置,去管理所有输入设备:
/etc/X11/xorg.conf.d/
/usr/share/X11/xorg.conf.d/
其中/usr/share/X11/xorg.conf.d/通常是给用户去管理输入设备的配置。可以通过在此目录下【增加一个配置文件】,对【指定的输入设备】进行管理。例如对某个触摸屏设备的坐标进【缩放】、【旋转】或【翻转】等转换。操作步骤如下:
首先创建一个名为99-touchscreen.conf的配置:
sudo vi /usr/share/X11/xorg.conf.d/99-touchscreen.conf
再在里面填入如下内容:
Section "InputClass"
Identifier "Touchscreen Configuration" #任意描述性名称
MatchProduct "ILITEK ILITEK-TP" # 使用 xinput 列表中的名称
# 或者使用更精确的匹配规则(二选一,这个更可靠)
# MatchIsTouchscreen "on"
# MatchUSBID "222a:0001"
# 指定驱动,现在普遍使用 libinput
Driver "libinput"
# 针对 libinput 的选项
Option "Accel Profile" "flat" # 触摸屏禁用加速度
Option "CalibrationMatrix" "0.765 0.0 0.0 0.0 0.843 0.0 0.0 0.0 1.0" # 校准矩阵
EndSection
* 注意:校准矩阵必须是要9个数据。
然后重启设备:
sync
sudo reboot
最后确认就【校准矩阵】是否生效:
xinput list-props "ILITEK ILITEK-TP"

* 确认矩阵是否与配置文件内的配置项一致。
另外关于旋转和翻转,可以看往期文章++《xfce桌面旋转说明》++。
1.1 xinput
xinput是xorg用于管理输入设备的工具,上述例子提到的"ILITEK ILITEK-TP"设备名称,就是可以通过xinput命令查看,具体如下:
xinput list

关于xinput的更多操作,可以通过加--help参数查看:
xinput --help
还有一个基于xinput校准工具:xinput_calibrator。这个工具默认不自带,需要进行联网安装:
sudo apt-get update
sudo apt-get install xinput-calibrator -y
按照下方执行命令,启动程序:
xinput_calibrator
根据画面提示【点击触摸屏】进行校准,校准完毕后,终端则会生成一份配置:

把这份配置拷贝到/usr/share/X11/xorg.conf.d/99-touchscreen.conf里面,把原来的替换掉也是一样的效果。
2. 一些导致触摸屏不准的其他情况
在嵌入式平台,特别容易受某些硬件配置的原因,导致触摸屏坐标不正常。
2.1 隐藏的DSI屏幕
DSI屏幕一旦在设备树上被配置,就算物理上没接DSI屏,它也会在配置中默认开启。而USB触摸屏,算上它的坐标,就会产生触摸屏不准确的问题,详情可以查看++《记录一次因隐藏的DSI屏,导致的USB触摸屏坐标异常》++