Тачскрин и xorg 1.7
Letum 13 декабря, 2009 - 17:31
Кто-нибудь может подсказать, как нынче настраивать тачскрин в 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.