最近更新了sam9263的angstrom,导致触摸屏不好用了,表现为触摸不准。当然启动的时候是有触摸校准的。google了一番,好像是最新的X是使用Xorg了,不能直接支持tslib了,要使用X的Xf86-input-tslib驱动才行,使用openembedded编译了该驱动,并将其加入到了文件系统中,修改xorg.conf为:
Section "ServerLayout"
Identifier "default"
InputDevice "atmel-ts" "CorePointer"
EndSection
#Section "InputDevice"
# Identifier "atmel-ts"
# Driver "evdev"
# Option "SwapAxes" "1"
# Option "Device" "/dev/input/touchscreen0"
#Option "Calibrate" "1"
#EndSection
Section "InputDevice"
Identifier "atmel-ts"
Driver "tslib"
Option "CorePointer" "true"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/touchscreen0"
Option "Protocol" "Auto"
Option "Width" "240"
Option "Height" "320"
Option "EmulateRightButton" "1"
#EndSection
启动后,更加不行了,查看var/log/Xorg.0.log,加载也没有问题。有可能是编译xorg时没有使能tslib。
在xorg.conf中看到,默认是使用的evdev驱动,google了半天其校准的方法,貌似xinput-calibrator才是正道,编译,复制到文件系统,在串口终端中运行DISPLAY=:0 xinput_calibrator,会出现校准窗口,校准完后就OK了,不过貌似这样每次启动后都需要重新校准,无需重新校准的方法,运行xinput_calibrator时会提示的,一种是使用hal,创建一个touchscreen.fdi文件,一种是之间写到xorg.conf中。
这样就OK了!!
原来默认启动时的校准窗口是tslib的校准,仅适用于xf86-input-tslib。