3

github( https://github.com/kergoth/tslib/commits/master )からtslibの最新のコミットをクロスコンパイルしました。タッチスクリーンが組み込みボードに接続されており、ベンダーのドライバーを有効にしました。起動して「cat/dev / input / touchscreen」の出力を見ると、画面上で指を動かすことで大量の出力が生成されていることがわかります。カーネルは、「finger1」と「finger2」の適切にフォーマットされたメッセージもコンソールに出力します。

ただし、キャリブレーションはできません。以下に示すように環境変数を設定して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)

'cat / proc / bus / input / devices'を実行すると、タッチスクリーンが表示されますが、ABSエントリのみ(KEYなし)であり、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
4

3 に答える 3

2

追加してみる

input_dev = input_allocate_device();
[..]
set_bit(EV_ABS, input_dev->evbit);
set_bit(EV_KEY, input_dev->evbit);

そのため、tslib はデバイスが EV_ABS と EV_KEY イベントの両方をサポートしていると見なします (実際には両方を送信しない場合でも)。

さらに質問がある場合は、私に連絡する方法を知っています... ;)

于 2012-08-13T20:41:57.360 に答える
0

これは基本的に、古いバージョンの tslib のバグです。最近のバージョンは問題なく動作するはずです。

于 2017-10-20T11:39:36.943 に答える