我已經從github(https://github.com/kergoth/tslib/commits/master)交叉編譯了tslib的最新提交。我的觸摸屏連接到我的嵌入式主板,並啓用了供應商提供的驅動程序。當我啓動並查看'cat/dev/input/touchscreen'的輸出時,我可以看到大量的輸出是通過在屏幕上移動我的手指而產生的。內核還向控制檯輸出針對「finger1」和「finger2」的格式良好的消息。已安裝觸摸屏和驅動程序,但tslib無法校準
但我無法校準。當我設置我的環境變量如下圖所示並運行ts_calibrate時,它會吐出消息'xres = 640,yres = 480 tslib:所選設備不是觸摸屏(必須支持ABS和KEY事件類型)',並且什麼都不做。
因此,Linux知道我的設備存在,我可以看到滾動輸出,但tslib無法校準。我做錯了什麼,我該如何解決這個問題?
# ls -rlt /dev/input/touchscreen
lrwxrwxrwx 1 root root 6 Jan 17 21:06 /dev/input/touchscreen -> event1
# chmod 777 /dev/input/touchscreen
# chmod 777 /dev/input/event1
# cat /dev/input/touchscreen | hexdump
0000000 9011 3883 565f 0001 0003 0030 0001 0000
0000010 9011 3883 565f 0001 0003 0032 0001 0000
0000020 9011 3883 565f 0001 0003 0035 04c9 0000
0000030 9011 3883 565f 0001 0003 0036 0c3f 0000
0000040 9011 3883 565f 0001 0000 0002 0000 0000
0000050 9011 3883 565f 0001 0000 0000 0000 0000
0000060 9011 3883 90a9 0001 0003 0030 0001 0000
0000070 9011 3883 90a9 0001 0003 0032 0001 0000
# cat /sys/devices/virtual/input/input1/uevent
PRODUCT=0/0/0/0
NAME="aura-touchscreen"
PROP=0
EV=9
ABS=650000 0
MODALIAS=input:b0000v0000p0000e0000-e0,3,kra30,32,35,36,mlsfw
# cat /etc/ts.conf
# Uncomment if you wish to use the linux input layer event interface
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_TSDEVICE=/dev/input/touchscreen
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none
export TSTS_INFO_FILE=/sys/devices/virtual/input/input1/uevent
export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen
export PATH=$PATH:/usr/bin
ts_calibrate
xres = 640, yres = 480
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
有趣的,如果我做「貓的/ proc /巴士/輸入/設備」,那麼我可以看到我的觸摸屏,但只有一個ABS項目(無鑰匙)tslib的說,我既需要。我可以以某種方式在這裏分配一個'KEY'條目嗎?
# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0001 Version=0003
N: Name="TWL4030 Keypad"
P: Phys=twl4030_keypad/input0
S: Sysfs=/devices/platform/omap/omap_i2c.1/i2c-1/1-004a/twl4030_keypad/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=100013
B: KEY=ffc
B: MSC=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="aura-touchscreen"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1
B: PROP=0
B: EV=9
B: ABS=650000 0
謝謝 - 我添加了以下內容,以獲得ts_calibrate不抱怨設備不是觸摸屏:set_bit(EV_KEY,aura.input_dev-> evbit); set_bit(ABS_X,aura.input_dev-> absbit); set_bit(ABS_Y,aura.input_dev-> absbit); set_bit(BTN_TOUCH,aura.input_dev-> keybit); 我仍在努力讓ts_calibrate接受輸入。 – PhilBot 2012-08-14 14:25:04