Тачскрин и xorg 1.7

Кто-нибудь может подсказать, как нынче настраивать тачскрин в X?
Насколько я понимаю, раньше тачскрин адекватно работал через evtouch. Теперь данный драйвер в портедже отсутствует. Теперь остался лишь evdev и tslib.
Если собирать систему с поддержкой tslib, то не собирается xf86-input-tslib. Если побирать evtouch вручную, то он тоже не собирается. Всё валится на идентичной ошибке.

 x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -O2 -pipe -fvisibility=hidden -I/usr/include/xorg -I/usr/include/pixman-1 -I../src -MT tslib.lo -MD -MP -MF .deps/tslib.Tpo -c tslib.c  -fPIC -DPIC -o .libs/tslib.o
tslib.c: In function 'xf86TslibControlProc':
tslib.c:312: warning: passing argument 3 of 'InitButtonClassDeviceStruct' from incompatible pointer type
/usr/include/xorg/input.h:274: note: expected 'Atom *' but argument is of type 'unsigned char *'
tslib.c:312: error: too few arguments to function 'InitButtonClassDeviceStruct'
tslib.c:322: error: too few arguments to function 'InitValuatorClassDeviceStruct'
tslib.c:343: error: too few arguments to function 'InitValuatorAxisStruct'
tslib.c:349: error: too few arguments to function 'InitValuatorAxisStruct'
make[2]: *** [tslib.lo] Error 1
make[2]: Leaving directory `/var/tmp/portage/x11-drivers/xf86-input-tslib-0.0.5-r1/work/xf86-input-tslib-0.0.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/x11-drivers/xf86-input-tslib-0.0.5-r1/work/xf86-input-tslib-0.0.5'
make: *** [all] Error 2
 * ERROR: x11-drivers/xf86-input-tslib-0.0.5-r1 failed:
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line   55:  Called src_compile
 *   environment, line 4084:  Called x-modular_src_compile
 *   environment, line 5031:  Called x-modular_src_make
 *   environment, line 5069:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"

Evdev же тачскрин видит, но определяет его как тачпад. Курсор двигается, но экран не откалиброван и не действуют нажатия. Есть идеи по поводу настройки?

PS. есть скомпиленный tslib_drv.so для 1.6.3 xorg'a, его можно как-нибудь принудительно заставить работать в 1.7?

У меня аналогичная

У меня аналогичная проблема..

Насколько я знаю EVTOUCH и не соберется... для работы с этим драйвером нужен xorg-server-1.5.x (не новее).

Более поздние версии работают только с драйвером EVDEV. К сожалению, его корректно завести мне так и не удалось. У меня тачскрин eGalax упорно определяется либо как тачпад либо как Tablet и не реагирует на нажатия.

Единственный рабочий драйвер - родной закрытый. Под названием eGalax. но его я так и не смог откалибровать..

Какой у Вас тачпад и есть ли какие-нибудь успехи в настройке?

Свои эксперименты с тачскрином я описал тут http://www.gentoo.ru/node/17584 попробйте, может что из этого у вас заработает

совсем забыл... Единственный

совсем забыл...

Единственный вариант на мой взгляд - сделать даунгрейд xorg-server до 1.5.х

Но у меня полностью корректно это сделать не получилось.. Точнее иксы и тачпад работали но вот восстановить работу 3-D, эффектов рабочего стола КДЕ и переключения мониторов через xrandr у меня не получилось.

Если будут успехи - сообщите ;-)

Я уже давно справился.

Я уже давно справился. Пропатчил tslib для совместимости под 1.7
Собственно пач:

Index: xf86-input-tslib-0.0.5/src/tslib.c
===================================================================
--- xf86-input-tslib-0.0.5/src/tslib.c 2009-12-16 16:29:12.000000000 +0300
+++ xf86-input-tslib-0.0.5/src/tslib.c 2009-12-16 16:49:34.000000000 +0300
@@ -49,6 +49,7 @@
 #include <X11/keysym.h>
 #include <mipointer.h>
 #include <randrstr.h>
+#include <xserver-properties.h>
 
 #include <tslib.h>
 #include <sys/time.h>
@@ -295,6 +296,16 @@
        unsigned char map[MAXBUTTONS + 1];
        int i, axiswidth, axisheight;
        struct ts_priv *priv;
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+       Atom buttons[MAXBUTTONS];
+       Atom axes[2];
+
+       axes[0] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X);
+       axes[1] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y);
+
+       buttons[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
+#endif
+
 
        ErrorF("%s\n", __FUNCTION__);
        pInfo = device->public.devicePrivate;
@@ -308,16 +319,20 @@
                        map[i + 1] = i + 1;
                }
 
-               if (InitButtonClassDeviceStruct(device,
-                                               MAXBUTTONS, map) == FALSE) {
+                if (InitButtonClassDeviceStruct(device, MAXBUTTONS,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+                                               buttons,
+#endif
+                                               map) == FALSE) {
                        ErrorF("unable to allocate Button class device\n");
                        return !Success;
                }
 
-               if (InitValuatorClassDeviceStruct(device,
-                                                 2,
-#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
-                                                 xf86GetMotionEvents,
+               if (InitValuatorClassDeviceStruct(device, 2,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+                                               axes,
+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
+                                               xf86GetMotionEvents,
 #endif
                                                  0, Absolute) == FALSE) {
                        ErrorF("unable to allocate Valuator class device\n");
@@ -336,17 +351,25 @@
                        break;
                }
 
-               InitValuatorAxisStruct(device, 0, 0,            /* min val */
-                                              axiswidth - 1,   /* max val */
-                                              axiswidth,       /* resolution */
-                                              0,               /* min_res */
-                                              axiswidth);      /* max_res */
-
-               InitValuatorAxisStruct(device, 1, 0,            /* min val */
-                                              axisheight - 1,  /* max val */
-                                              axisheight,      /* resolution */
-                                              0,               /* min_res */
-                                              axisheight);     /* max_res */
+               InitValuatorAxisStruct(device, 0,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+                                       axes[0],
+#endif
+                                       0,                      /* min val */
+                                       priv->width - 1,            /* max val */
+                                       priv->width,            /* resolution */
+                                       0,                      /* min_res */
+                                       priv->width);           /* max_res */
+
+               InitValuatorAxisStruct(device, 1,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+                                       axes[1],
+#endif
+                                       0,                  /* min val */
+                                       priv->height - 1,   /* max val */
+                                       priv->height,       /* resolution */
+                                       0,                  /* min_res */
+                                       priv->height);      /* max_res */
 
                if (InitProximityClassDeviceStruct (device) == FALSE) {
                        ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");

Насчет evtouch, гляньте к

Насчет evtouch, гляньте к примеру здесь - http://aur.archlinux.org/packages.php?ID=22758
Лично мне для работающего тачскрина хватило http://aur.archlinux.org/packages/xf86-input-evtouch/xf86-input-evtouch/debian_patches.diff + немного ручной работы)

to m1sterx А какую версию

to m1sterx

А какую версию xorg-server вы используете и что за тачскрин?

Как минимум с xorg-server

Как минимум с xorg-server 1.6, но думаю не будет проблем завести и под 1.7.
Использовал сенсорные мониторы Lilliput, также сенсорные панели AiM Touch и Soundgraph.

Спасибо за

Спасибо за ссылку!

Действительно помогло, спасибо, господа!

И как я сам на нее не наткнулся. Теперь все работает как прежде...

тачскрин на lilliput (Prology PCM-750T)

помогите плз, уже что только не делал, никак не получается завести
вот такой: http://www.magnitola.ru/Prology-PCM-750T-p-7341.html
тачскрин, подключается через ком-порт с переходником usb, видится как /dev/ttyUSB0
облазил весь инет, на каком чипе и какие драйвера нужны нигде не нашел
запускал с дровами по методу тыка
пытался ковырять evtouch, не получилось
логи сейчас к сожаление предоставить не могу, все это происходит в машине :)
xorg 1.7

да, ts_* (детект, калибрейт)

да, ts_* (детект, калибрейт) и тп вываливаются с segmentation fault

помогите плз кто знает, уже

помогите плз кто знает, уже все перепробовал (

?

А вы про какой тачскрин? Можно узрить? У меня например от мат-платы асусной валяется какойто.

У меня для портативного

У меня для портативного девайса. Тачскрин на базе процессора smdk6410.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".