Hallo Leute,
nach einiger Frickelei habe ich ein Arch Linux (ARM) auf meinem ARCHOS-101G9-Tablet zum Laufen bekommen. Funktioniert nahezu prima, abgesehen vom Touchscreen. Der Kernel erkennt ihn aber (nach Laden des
pixcir_i2c_tsp-Moduls) und legt mir auch eine Device-Datei /dev/input/event8 dafür an und wenn ich die mit
evtest verfolge, kommen da auch fleißig Events an (ich habe einmal kurz den Finger über den Bildschirm gezogen):
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "pixcir_i2c_tsp"
Supported events:
Event type 0 (EV_SYN)
Event type 3 (EV_ABS)
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 3
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 128
Event code 50 (ABS_MT_WIDTH_MAJOR)
Value 0
Min 0
Max 128
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 1280
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 800
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Testing ... (interrupt to exit)
Event: time 1327.814300, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 12
Event: time 1327.814361, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1055
Event: time 1327.814392, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 156
Event: time 1327.814392, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 15
Event: time 1327.814392, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 21
Event: time 1327.814422, -------------- SYN_REPORT ------------
Event: time 1327.822479, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1061
Event: time 1327.822509, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 159
Event: time 1327.822509, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 14
Event: time 1327.822540, -------------- SYN_REPORT ------------
Event: time 1327.829132, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 13
Event: time 1327.829132, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 20
Event: time 1327.829162, -------------- SYN_REPORT ------------
Event: time 1327.836151, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 14
Event: time 1327.836212, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 21
Event: time 1327.836212, -------------- SYN_REPORT ------------
Event: time 1327.842926, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1070
Event: time 1327.842926, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 160
Event: time 1327.842987, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 22
Event: time 1327.842987, -------------- SYN_REPORT ------------
Event: time 1327.850158, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 161
Event: time 1327.850189, -------------- SYN_REPORT ------------
Event: time 1327.856842, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1077
Event: time 1327.856903, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 163
Event: time 1327.856933, -------------- SYN_REPORT ------------
Event: time 1327.864135, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1084
Event: time 1327.864166, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 164
Event: time 1327.864166, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 13
Event: time 1327.864196, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 21
Event: time 1327.864196, -------------- SYN_REPORT ------------
Event: time 1327.870758, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1089
Event: time 1327.870788, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 165
Event: time 1327.870788, -------------- SYN_REPORT ------------
Event: time 1327.877258, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1096
Event: time 1327.877258, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time 1327.877288, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 20
Event: time 1327.877288, -------------- SYN_REPORT ------------
Event: time 1327.884521, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1103
Event: time 1327.884521, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 19
Event: time 1327.884521, -------------- SYN_REPORT ------------
Event: time 1327.890899, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1111
Event: time 1327.890899, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 1327.890899, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 18
Event: time 1327.890930, -------------- SYN_REPORT ------------
Event: time 1327.895782, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1120
Event: time 1327.895782, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 164
Event: time 1327.895812, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 11
Event: time 1327.895812, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 17
Event: time 1327.895812, -------------- SYN_REPORT ------------
Event: time 1327.902404, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1128
Event: time 1327.902435, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 162
Event: time 1327.902435, -------------- SYN_REPORT ------------
Event: time 1327.908813, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1327.908843, -------------- SYN_REPORT ------------
Leider bekomme ich X, oder genauer gesagt, evdev, nicht dazu, das Device zu verwenden. Ich kann auf dem Bildschirm herumtippen und -wischen, wie ich will, aber passieren tut nichts. Ich habe mir dazu eine Datei
/etc/X11/xorg.conf.d/30-pixcir.conf mit folgendem Inhalt angelegt:
Section "InputClass"
Identifier "Pixcir Internal Touchscreen"
MatchDevicePath "/dev/input/event8"
Option "IgnoreRelativeAxes" "On"
Option "Calibration" "0 1280 0 800"
Option "Mode" "Absolute"
Driver "evdev"
EndSection
Das erkennt den Touchscreen auch als Zeigegerät (Ausschnitt aus der Xorg.0.log):
[ 861.097] (II) config/udev: Adding input device pixcir_i2c_tsp (/dev/input/event8)
[ 861.099] (**) pixcir_i2c_tsp: Applying InputClass "Pixcir Internal Touchscreen"
[ 861.099] (II) Using input driver 'evdev' for 'pixcir_i2c_tsp'
[ 861.099] (**) pixcir_i2c_tsp: always reports core events
[ 861.099] (**) evdev: pixcir_i2c_tsp: Device: "/dev/input/event8"
[ 861.100] (--) evdev: pixcir_i2c_tsp: Vendor 0 Product 0
[ 861.101] (**) Option "IgnoreRelativeAxes" "On"
[ 861.101] (--) evdev: pixcir_i2c_tsp: Found absolute axes
[ 861.101] (II) evdev: pixcir_i2c_tsp: Forcing absolute x/y axes to exist.
[ 861.101] (II) evdev: pixcir_i2c_tsp: Forcing relative x/y axes to exist.
[ 861.101] (II) evdev: pixcir_i2c_tsp: Configuring as mouse
[ 861.101] (**) Option "config_info" "udev:/sys/devices/virtual/input/input8/event8"
[ 861.101] (II) XINPUT: Adding extended input device "pixcir_i2c_tsp" (type: MOUSE, id 11)
[ 861.101] (**) Option "Mode" "Absolute"
[ 861.101] (II) evdev: pixcir_i2c_tsp: initialized for absolute axes.
[ 861.101] (**) pixcir_i2c_tsp: (accel) keeping acceleration scheme 1
[ 861.103] (**) pixcir_i2c_tsp: (accel) acceleration profile 0
[ 861.103] (**) pixcir_i2c_tsp: (accel) acceleration factor: 2.000
[ 861.103] (**) pixcir_i2c_tsp: (accel) acceleration threshold: 4
xinput zeigt ihn an:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HID 04f3:0103 id=9 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ pixcir_i2c_tsp id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ gpio-keys id=6 [slave keyboard (3)]
↳ twl6030_pwrbutton id=7 [slave keyboard (3)]
↳ HID 04f3:0103 id=8 [slave keyboard (3)]
Aber wenn ich
xinput test 11 ausführe und auf dem Bildschirm herumtippe/wische/wasauchimmer passiert nichts.
Version von X:
X.Org X Server 1.12.3
Release Date: 2012-07-09
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.38-6-ARCH armv7l
Current Operating System: Linux walhalla 3.0.8-QUINTUS-TABLET+ #12 SMP PREEMPT Thu Aug 2 12:20:53 CEST 2012 armv7l
Kernel command line: mem=512M init=/linuxrc debug omapdss.debug=0 omapfb.debug=0
Build Date: 10 July 2012 03:32:49PM
Current version of pixman: 0.26.2
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Bei Bedarf hänge ich auch gerne meine
/proc/config.gz an.
Kann mir jemand vielleicht einen Tipp geben, welche Konfigurationsdirektiven mir da noch fehlen?
Valete,
Marvin