Главная Облако тегов     Подписка на ленту обновлений (RSS) XMPP (Jabber) совместимые службы мгновенных сообщений. К примеру Google Talk, Gizmo, jabber.org Пишите письма О сайте

Использование TouchScreen совместно с X-Server

Возникла у меня задача, подружить пингвина с тачскрином. Имени его я к сожалению не знаю, производитель предположительно Clear Tek. Тач скрин подключается к обычному последовательному порту (у меня /dev/ttyS0) на скорости 9600.

В xfree86 v4.3.0 идущем с knoppix 4 всё нужное уже есть. В ubuntu 6.06, где используется xorg 7.0, драйвер по умолчанию не установлен.

Драйвер в xorg 7.0

xorg 7.0 входящий в состав ubuntu 6.06 drapper не содержит в своём составе драйвера mutouch. Но он есть в xorg 6.8.2 входящий в состав ubuntu breezy.

  • Добавляем в /etc/apt/sources.lst ссылку на репозиторий breezy
deb http://archive.ubuntu.com/ubuntu/ breezy main restricted
  • Обновляем репозитории
# apt-get update
  • Устанавливаем драйвер
# apt-get install xserver-xorg-input-mutouch
  • xorg 6.8 и xorg 7.0 имеют разные пути установки. Поэтому создаём символическую ссылку на файл драйвера
# cd /usr/lib/xorg/modules/input
# ln -s /usr/X11R6/lib/modules/input/mutouch_drv.o

Конфигурирование

В интернете нашел XFree86-Touch-Screen-HOWTO. Но к сожалению не всё оказалось гладко. Непосредственно воспользоваться HOWTO не удалось, и пришлось повозиться.

Для начала я скачал предложенную программу настроек touchcal-0.1.tar.gz, но у меня она заработала не корректно. А именно - указатель оказывался все время в одном месте. Но это не беда. Когда касание распознаётся, программа выдаёт координаты касания. Потыкав в углы экрана и собрав статистику координат, я получил искомое: минимальные и максимальные координаты экрана.

В конфигурационный файл x-server'а нужно добавить секцию.

Section "InputDevice"
	Identifier	"TouchScreen"
	Driver	"mutouch"
	Option	"Device"	"/dev/ttyS0"
	Option	"Type"	"finger"
	Option	"MinX"	"14281"
	Option	"MaxX"	"3045"
	Option	"MinY"	"13964"
	Option	"MaxY"	"3738"
	Option	"SendCoreEvents"	"yes"
	Option	"Type"	"finger"
EndSection

По сравнению с предложенной в HOWTO здесь добавилась опция Option «Type» «finger», без неё у меня иксы вылетали с ошибкой. И вместо длинных опций типа MinimumXPosition применены короткие. Опять же, потому что длинные не воспринимались.

Указываем использовать это устройство.

Section "ServerLayout"
...
        InputDevice    "TouchScreen" "CorePointer"
...
EndSection

Мышь и тачскрин прекрасно дружат, и не спорят друг с другом.

Подбирать значения MinX, MaxX, MinY, MaxY следует тщательно. С первого раза наверняка не получится.

~~LINKBACK~~

Дискуссия

aim, 2007/04/17 15:56

Интересно, а есть ли какой-либо “научный” способ всем этим управлять? всмысле настройкой геометрии тачскрина. наверняка есть какая-то документация по вычислению этих значений.

luch, 2007/04/17 16:23

по поводу подборки крайних значений, на самом деле я ничего не мог найти в свой время, так что ту вычислять действительно не так уж и просто...

Ivan A-R, 2007/04/17 19:26

Теоретически, touchcal должен выводить крест в то место экрана, куда нужно ткнуть пальцем. Но это тоже настраивается далеко не с первого раза. Потому как палец толстый.

Enter your comment (wiki syntax is allowed):
Краткая справка
  • **полужирный**
  • //курсив//
  • > цитата
  • [[http://link | Заголовок ссылки]]
Больше о синтаксисе...
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
touch-screen.txt · Последние изменения: 2007/11/07 12:57 (внешнее изменение)