Использование 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~~







Дискуссия
Интересно, а есть ли какой-либо “научный” способ всем этим управлять? всмысле настройкой геометрии тачскрина. наверняка есть какая-то документация по вычислению этих значений.
по поводу подборки крайних значений, на самом деле я ничего не мог найти в свой время, так что ту вычислять действительно не так уж и просто...
Теоретически, touchcal должен выводить крест в то место экрана, куда нужно ткнуть пальцем. Но это тоже настраивается далеко не с первого раза. Потому как палец толстый.
- **полужирный**
- //курсив//
- > цитата
- [[http://link | Заголовок ссылки]]
Больше о синтаксисе...