旧文-linux 触摸屏校准-2010年02月09日 13:59

时间:2021-02-12 11:44:11
最近更新了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。